Rickard's Projects

This site hosts my projects.

Projects

Recent events

2025-11-26 08:32 Rickard pushed to rlworkbench

commit b2f7de78800d4a2fbafa4bd3667332f8c006e201
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 26 08:27:22 2025 +0100

    Limit platform_draw_text to characters that fit the screen

diff --git a/src/workbench.c b/src/workbench.c
index d993099..c0c72dc 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -53,7 +53,7 @@ static WorkbenchColor WORKBENCH_COLOR_MAGENTA = {211, 54, 130};
 static WorkbenchColor WORKBENCH_COLOR_GREEN = {133, 153, 0};
 static WorkbenchColor WORKBENCH_COLOR_GRAY = {147, 161, 161};
 
-void workbench_render(Workbench* state) {
+void workbench_render(Workbench* state, int w, int h) {
     int padding = WORKBENCH_FONT_SIZE / 3;
     int i;
     int x = padding;
@@ -95,7 +95,7 @@ void workbench_render(Workbench* state) {
             y += WORKBENCH_FONT_SIZE;
             y += padding/2;
             x = padding;
-        } else {
+        } else if (x < w && y < h) {
             platform_draw_text(
                 &state->parse_state->input_buffer->buffer[i],
                 1,
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
index bd3a6ac..4f4a7a2 100644
--- a/src/workbench_sdl.c
+++ b/src/workbench_sdl.c
@@ -63,7 +63,9 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv) {
 }
 
 SDL_AppResult SDL_AppIterate(void *appstate) {
-    workbench_render(appstate);
+    int w, h;
+    SDL_GetRenderOutputSize(renderer, &w, &h);
+    workbench_render(appstate, w, h);
     SDL_RenderPresent(renderer);
     return SDL_APP_CONTINUE;
 }

commit a3d12dde5682336c8dfae91dcc670fa8e6c0b3e7
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 26 08:24:29 2025 +0100

    Add platform_clear and add solarized colors

diff --git a/src/workbench.c b/src/workbench.c
index d5d0f03..d993099 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -13,6 +13,7 @@ typedef struct {
     int b;
 } WorkbenchColor;
 
+void platform_clear(WorkbenchColor* color);
 void platform_draw_text(char* c, size_t count, int* x, int* y, WorkbenchColor* color);
 
 MetaParseFunction get_parse_function(int argc, char** argv) {
@@ -42,14 +43,15 @@ void* workbench_init(int argc, char** argv) {
     return NULL;
 }
 
-static WorkbenchColor WORKBENCH_COLOR_BLUE = {0, 0, 255};
-static WorkbenchColor WORKBENCH_COLOR_YELLOW = {255, 255, 0};
-static WorkbenchColor WORKBENCH_COLOR_CYAN = {0, 255, 255};
+static WorkbenchColor WORKBENCH_COLOR_BG_DARK = {0, 43, 54};
+static WorkbenchColor WORKBENCH_COLOR_BLUE = {38, 139, 210};
+static WorkbenchColor WORKBENCH_COLOR_YELLOW = {181, 137, 0};
+static WorkbenchColor WORKBENCH_COLOR_CYAN = {42, 161, 152};
 static WorkbenchColor WORKBENCH_COLOR_WHITE = {255, 255, 255};
-static WorkbenchColor WORKBENCH_COLOR_RED = {255, 0, 0};
-static WorkbenchColor WORKBENCH_COLOR_MAGENTA = {255, 0, 255};
-static WorkbenchColor WORKBENCH_COLOR_GREEN = {0, 255, 0};
-static WorkbenchColor WORKBENCH_COLOR_GRAY = {50, 50, 50};
+static WorkbenchColor WORKBENCH_COLOR_RED = {220, 50, 47};
+static WorkbenchColor WORKBENCH_COLOR_MAGENTA = {211, 54, 130};
+static WorkbenchColor WORKBENCH_COLOR_GREEN = {133, 153, 0};
+static WorkbenchColor WORKBENCH_COLOR_GRAY = {147, 161, 161};
 
 void workbench_render(Workbench* state) {
     int padding = WORKBENCH_FONT_SIZE / 3;
@@ -60,6 +62,7 @@ void workbench_render(Workbench* state) {
     if (state == NULL) {
         return;
     }
+    platform_clear(&WORKBENCH_COLOR_BG_DARK);
     for (i=0; i<state->parse_state->input_buffer->size; i++) {
         switch (state->parse_state->highlight[i]) {
             case MetaHighlight_RuleName:
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
index 00ab4d6..bd3a6ac 100644
--- a/src/workbench_sdl.c
+++ b/src/workbench_sdl.c
@@ -9,6 +9,11 @@ static SDL_Window *window = NULL;
 static SDL_Renderer *renderer = NULL;
 static TTF_Font *font = NULL;
 
+void platform_clear(WorkbenchColor* color) {
+    SDL_SetRenderDrawColor(renderer, color->r, color->g, color->b, SDL_ALPHA_OPAQUE);
+    SDL_RenderClear(renderer);
+}
+
 void platform_draw_text(char* c, size_t count, int* x, int* y, WorkbenchColor* color) {
     SDL_Surface *text = NULL;
     SDL_Texture *texture = NULL;
@@ -58,8 +63,6 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv) {
 }
 
 SDL_AppResult SDL_AppIterate(void *appstate) {
-    SDL_SetRenderDrawColorFloat(renderer, 0.5, 0.1, 0.1, SDL_ALPHA_OPAQUE_FLOAT);
-    SDL_RenderClear(renderer);
     workbench_render(appstate);
     SDL_RenderPresent(renderer);
     return SDL_APP_CONTINUE;

commit 2d7af69862a138210ebc7e857effbac1248ebe73
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 26 08:16:40 2025 +0100

    Nicer interface with platform_draw_text

diff --git a/src/workbench.c b/src/workbench.c
index 51c1936..d5d0f03 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -7,6 +7,14 @@ typedef struct {
     MetaParseState* parse_state;
 } Workbench;
 
+typedef struct {
+    int r;
+    int g;
+    int b;
+} WorkbenchColor;
+
+void platform_draw_text(char* c, size_t count, int* x, int* y, WorkbenchColor* color);
+
 MetaParseFunction get_parse_function(int argc, char** argv) {
     if (argc >= 2) {
         if (strcmp(argv[1], "c") == 0) {
@@ -34,12 +42,6 @@ void* workbench_init(int argc, char** argv) {
     return NULL;
 }
 
-typedef struct {
-    int r;
-    int g;
-    int b;
-} WorkbenchColor;
-
 static WorkbenchColor WORKBENCH_COLOR_BLUE = {0, 0, 255};
 static WorkbenchColor WORKBENCH_COLOR_YELLOW = {255, 255, 0};
 static WorkbenchColor WORKBENCH_COLOR_CYAN = {0, 255, 255};
@@ -91,14 +93,12 @@ void workbench_render(Workbench* state) {
             y += padding/2;
             x = padding;
         } else {
-            put_char(
+            platform_draw_text(
                 &state->parse_state->input_buffer->buffer[i],
                 1,
                 &x,
                 &y,
-                color->r,
-                color->g,
-                color->b
+                color
             );
         }
     }
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
index dd8d6b4..00ab4d6 100644
--- a/src/workbench_sdl.c
+++ b/src/workbench_sdl.c
@@ -3,24 +3,26 @@
 #include <SDL3/SDL_main.h>
 #include <SDL3_ttf/SDL_ttf.h>
 
+#include "workbench.c"
+
 static SDL_Window *window = NULL;
 static SDL_Renderer *renderer = NULL;
 static TTF_Font *font = NULL;
 
-void put_char(char* c, size_t count, int* x, int* y, int r, int g, int b) {
+void platform_draw_text(char* c, size_t count, int* x, int* y, WorkbenchColor* color) {
     SDL_Surface *text = NULL;
     SDL_Texture *texture = NULL;
-    SDL_Color color;
+    SDL_Color sdl_color;
     SDL_FRect dst;
 
-    color.r = r;
-    color.g = g;
-    color.b = b;
-    color.a = SDL_ALPHA_OPAQUE;
+    sdl_color.r = color->r;
+    sdl_color.g = color->g;
+    sdl_color.b = color->b;
+    sdl_color.a = SDL_ALPHA_OPAQUE;
     dst.x = *x;
     dst.y = *y;
 
-    text = TTF_RenderText_Blended(font, c, count, color);
+    text = TTF_RenderText_Blended(font, c, count, sdl_color);
     if (text) {
         texture = SDL_CreateTextureFromSurface(renderer, text);
         SDL_DestroySurface(text);
@@ -34,8 +36,6 @@ void put_char(char* c, size_t count, int* x, int* y, int r, int g, int b) {
     *x += dst.w;
 }
 
-#include "workbench.c"
-
 SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv) {
     if (!SDL_Init(SDL_INIT_VIDEO)) {
         return SDL_APP_FAILURE;

2025-11-26 08:11 Rickard pushed to rlworkbench

commit d0795ba2c0992c37c62aa6e3dfbe01bf2b585fa5
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 26 08:07:58 2025 +0100

    Extract WORKBENCH_FONT_SIZE and base some calculations on it

diff --git a/src/workbench.c b/src/workbench.c
index 7d6b0aa..51c1936 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -1,5 +1,7 @@
 #include "languages.c"
 
+static int WORKBENCH_FONT_SIZE = 20;
+
 typedef struct {
     Arena arena;
     MetaParseState* parse_state;
@@ -48,7 +50,7 @@ static WorkbenchColor WORKBENCH_COLOR_GREEN = {0, 255, 0};
 static WorkbenchColor WORKBENCH_COLOR_GRAY = {50, 50, 50};
 
 void workbench_render(Workbench* state) {
-    int padding = 10;
+    int padding = WORKBENCH_FONT_SIZE / 3;
     int i;
     int x = padding;
     int y = padding;
@@ -85,7 +87,8 @@ void workbench_render(Workbench* state) {
                 break;
         }
         if (state->parse_state->input_buffer->buffer[i] == '\n') {
-            y += 15;
+            y += WORKBENCH_FONT_SIZE;
+            y += padding/2;
             x = padding;
         } else {
             put_char(
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
index 96f7ed7..dd8d6b4 100644
--- a/src/workbench_sdl.c
+++ b/src/workbench_sdl.c
@@ -43,7 +43,7 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv) {
     if (!TTF_Init()) {
         return SDL_APP_FAILURE;
     }
-    font = TTF_OpenFont("/usr/share/fonts/dejavu-sans-mono-fonts/DejaVuSansMono.ttf", 18);
+    font = TTF_OpenFont("/usr/share/fonts/dejavu-sans-mono-fonts/DejaVuSansMono.ttf", WORKBENCH_FONT_SIZE);
     if (!font) {
         return SDL_APP_FAILURE;
     }

commit b18b158af2fc06d98622acde23e77e0a5c8f0a00
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 26 08:03:22 2025 +0100

    Render highlighted text in SDL window (the start of the workbench application)

diff --git a/src/workbench.c b/src/workbench.c
new file mode 100644
index 0000000..7d6b0aa
--- /dev/null
+++ b/src/workbench.c
@@ -0,0 +1,102 @@
+#include "languages.c"
+
+typedef struct {
+    Arena arena;
+    MetaParseState* parse_state;
+} Workbench;
+
+MetaParseFunction get_parse_function(int argc, char** argv) {
+    if (argc >= 2) {
+        if (strcmp(argv[1], "c") == 0) {
+            return c_rule_main;
+        } else if (strcmp(argv[1], "meta") == 0) {
+            return meta_rule_main;
+        } else {
+            fprintf(stderr, "ERROR: unknown language %s\n", argv[1]);
+        }
+    } else {
+        fprintf(stderr, "ERROR: no language specified\n");
+    }
+    return NULL;
+}
+
+void* workbench_init(int argc, char** argv) {
+    static Workbench state;
+    MetaParseFunction parse = get_parse_function(argc, argv);
+    if (parse) {
+        state.arena = arena_create(2<<25);
+        state.parse_state = meta_parse_state_from_stdin(&state.arena);
+        parse(state.parse_state);
+        return &state;
+    }
+    return NULL;
+}
+
+typedef struct {
+    int r;
+    int g;
+    int b;
+} WorkbenchColor;
+
+static WorkbenchColor WORKBENCH_COLOR_BLUE = {0, 0, 255};
+static WorkbenchColor WORKBENCH_COLOR_YELLOW = {255, 255, 0};
+static WorkbenchColor WORKBENCH_COLOR_CYAN = {0, 255, 255};
+static WorkbenchColor WORKBENCH_COLOR_WHITE = {255, 255, 255};
+static WorkbenchColor WORKBENCH_COLOR_RED = {255, 0, 0};
+static WorkbenchColor WORKBENCH_COLOR_MAGENTA = {255, 0, 255};
+static WorkbenchColor WORKBENCH_COLOR_GREEN = {0, 255, 0};
+static WorkbenchColor WORKBENCH_COLOR_GRAY = {50, 50, 50};
+
+void workbench_render(Workbench* state) {
+    int padding = 10;
+    int i;
+    int x = padding;
+    int y = padding;
+    WorkbenchColor* color;
+    if (state == NULL) {
+        return;
+    }
+    for (i=0; i<state->parse_state->input_buffer->size; i++) {
+        switch (state->parse_state->highlight[i]) {
+            case MetaHighlight_RuleName:
+                color = &WORKBENCH_COLOR_BLUE;
+                break;
+            case MetaHighlight_VariableName:
+                color = &WORKBENCH_COLOR_YELLOW;
+                break;
+            case MetaHighlight_String:
+                color = &WORKBENCH_COLOR_CYAN;
+                break;
+            case MetaHighlight_CharString:
+                color = &WORKBENCH_COLOR_WHITE;
+                break;
+            case MetaHighlight_Escape:
+                color = &WORKBENCH_COLOR_RED;
+                break;
+            case MetaHighlight_Meta:
+                color = &WORKBENCH_COLOR_MAGENTA;
+                break;
+            case MetaHighlight_Reserved:
+                color = &WORKBENCH_COLOR_GREEN;
+                break;
+            case MetaHighlight_Unset:
+            case MetaHighlight_None:
+                color = &WORKBENCH_COLOR_GRAY;
+                break;
+        }
+        if (state->parse_state->input_buffer->buffer[i] == '\n') {
+            y += 15;
+            x = padding;
+        } else {
+            put_char(
+                &state->parse_state->input_buffer->buffer[i],
+                1,
+                &x,
+                &y,
+                color->r,
+                color->g,
+                color->b
+            );
+        }
+    }
+}
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
index 2c4e251..96f7ed7 100644
--- a/src/workbench_sdl.c
+++ b/src/workbench_sdl.c
@@ -7,6 +7,35 @@ static SDL_Window *window = NULL;
 static SDL_Renderer *renderer = NULL;
 static TTF_Font *font = NULL;
 
+void put_char(char* c, size_t count, int* x, int* y, int r, int g, int b) {
+    SDL_Surface *text = NULL;
+    SDL_Texture *texture = NULL;
+    SDL_Color color;
+    SDL_FRect dst;
+
+    color.r = r;
+    color.g = g;
+    color.b = b;
+    color.a = SDL_ALPHA_OPAQUE;
+    dst.x = *x;
+    dst.y = *y;
+
+    text = TTF_RenderText_Blended(font, c, count, color);
+    if (text) {
+        texture = SDL_CreateTextureFromSurface(renderer, text);
+        SDL_DestroySurface(text);
+    }
+    if (!texture) {
+        return;
+    }
+    SDL_GetTextureSize(texture, &dst.w, &dst.h);
+    SDL_RenderTexture(renderer, texture, NULL, &dst);
+    SDL_DestroyTexture(texture);
+    *x += dst.w;
+}
+
+#include "workbench.c"
+
 SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv) {
     if (!SDL_Init(SDL_INIT_VIDEO)) {
         return SDL_APP_FAILURE;
@@ -14,7 +43,7 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv) {
     if (!TTF_Init()) {
         return SDL_APP_FAILURE;
     }
-    font = TTF_OpenFont("/usr/share/fonts/dejavu-sans-mono-fonts/DejaVuSansMono.ttf", 15);
+    font = TTF_OpenFont("/usr/share/fonts/dejavu-sans-mono-fonts/DejaVuSansMono.ttf", 18);
     if (!font) {
         return SDL_APP_FAILURE;
     }
@@ -24,29 +53,14 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv) {
     if (!SDL_CreateWindowAndRenderer("rlworkbench", 800, 600, SDL_WINDOW_RESIZABLE, &window, &renderer)) {
         return SDL_APP_FAILURE;
     }
+    *appstate = workbench_init(argc, argv);
     return SDL_APP_CONTINUE;
 }
 
 SDL_AppResult SDL_AppIterate(void *appstate) {
-    SDL_Surface *text = NULL;
-    SDL_Texture *texture = NULL;
-    SDL_Color color = {0, 0, 0, SDL_ALPHA_OPAQUE};
-    SDL_FRect dst = {10, 10};
-
     SDL_SetRenderDrawColorFloat(renderer, 0.5, 0.1, 0.1, SDL_ALPHA_OPAQUE_FLOAT);
     SDL_RenderClear(renderer);
-
-    text = TTF_RenderText_Blended(font, "Hello World!", 0, color);
-    if (text) {
-        texture = SDL_CreateTextureFromSurface(renderer, text);
-        SDL_DestroySurface(text);
-    }
-    if (!texture) {
-        return SDL_APP_FAILURE;
-    }
-    SDL_GetTextureSize(texture, &dst.w, &dst.h);
-    SDL_RenderTexture(renderer, texture, NULL, &dst);
-
+    workbench_render(appstate);
     SDL_RenderPresent(renderer);
     return SDL_APP_CONTINUE;
 }

2025-11-26 07:07 Rickard pushed to rlworkbench

commit 83de8cb202f25588d1ddca72ee22c674f069d212
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 26 07:06:45 2025 +0100

    First version of SDL platform

diff --git a/Dockerfile.ci b/Dockerfile.ci
index af14fd0..3c2d5cf 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -1,5 +1,5 @@
 FROM fedora
 
-RUN dnf install -y gcc diff
+RUN dnf install -y gcc diff SDL3-devel SDL3_ttf-devel
 
 CMD ["./make.sh"]
diff --git a/make.sh b/make.sh
index fb616b7..51fa79b 100755
--- a/make.sh
+++ b/make.sh
@@ -11,6 +11,7 @@ main() {
     examples
     highlight
     dotall
+    workbench_sdl
 }
 
 dotall() {
@@ -20,6 +21,11 @@ dotall() {
     echo 12345 | ./out/dotall
 }
 
+workbench_sdl() {
+    banner "workbench_sdl"
+    c_compile src/workbench_sdl.c out/workbench_sdl -lSDL3 -lSDL3_ttf
+}
+
 experiments() {
     experiment sizes
     experiment strings
@@ -100,8 +106,12 @@ meta_compile() {
 }
 
 c_compile() {
-    echo "Compiling $1 -> $2"
-    gcc -Iout -Isrc -std=c89 -Wfatal-errors -Wall -Werror -pedantic -o $2 $1
+    in=$1
+    shift
+    out=$1
+    shift
+    echo "Compiling $in -> $out"
+    gcc -Iout -Isrc -std=c89 -Wfatal-errors -Wall -Werror -pedantic $@ -o $out $in
 }
 
 main
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
new file mode 100644
index 0000000..2c4e251
--- /dev/null
+++ b/src/workbench_sdl.c
@@ -0,0 +1,65 @@
+#include <SDL3/SDL.h>
+#define SDL_MAIN_USE_CALLBACKS
+#include <SDL3/SDL_main.h>
+#include <SDL3_ttf/SDL_ttf.h>
+
+static SDL_Window *window = NULL;
+static SDL_Renderer *renderer = NULL;
+static TTF_Font *font = NULL;
+
+SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv) {
+    if (!SDL_Init(SDL_INIT_VIDEO)) {
+        return SDL_APP_FAILURE;
+    }
+    if (!TTF_Init()) {
+        return SDL_APP_FAILURE;
+    }
+    font = TTF_OpenFont("/usr/share/fonts/dejavu-sans-mono-fonts/DejaVuSansMono.ttf", 15);
+    if (!font) {
+        return SDL_APP_FAILURE;
+    }
+    if (!SDL_SetAppMetadata("rlworkbench", "0.0.1", "rlworkbench")) {
+        return SDL_APP_FAILURE;
+    }
+    if (!SDL_CreateWindowAndRenderer("rlworkbench", 800, 600, SDL_WINDOW_RESIZABLE, &window, &renderer)) {
+        return SDL_APP_FAILURE;
+    }
+    return SDL_APP_CONTINUE;
+}
+
+SDL_AppResult SDL_AppIterate(void *appstate) {
+    SDL_Surface *text = NULL;
+    SDL_Texture *texture = NULL;
+    SDL_Color color = {0, 0, 0, SDL_ALPHA_OPAQUE};
+    SDL_FRect dst = {10, 10};
+
+    SDL_SetRenderDrawColorFloat(renderer, 0.5, 0.1, 0.1, SDL_ALPHA_OPAQUE_FLOAT);
+    SDL_RenderClear(renderer);
+
+    text = TTF_RenderText_Blended(font, "Hello World!", 0, color);
+    if (text) {
+        texture = SDL_CreateTextureFromSurface(renderer, text);
+        SDL_DestroySurface(text);
+    }
+    if (!texture) {
+        return SDL_APP_FAILURE;
+    }
+    SDL_GetTextureSize(texture, &dst.w, &dst.h);
+    SDL_RenderTexture(renderer, texture, NULL, &dst);
+
+    SDL_RenderPresent(renderer);
+    return SDL_APP_CONTINUE;
+}
+
+SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) {
+    if (event->type == SDL_EVENT_QUIT) {
+        return SDL_APP_SUCCESS;
+    } else {
+        return SDL_APP_CONTINUE;
+    }
+}
+
+void SDL_AppQuit(void *appstate, SDL_AppResult result)
+{
+    TTF_CloseFont(font);
+}

2025-11-24 22:05 Rickard pushed to rlworkbench

commit 8987c604ab850d1e91a4ff816354b7e051299950
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 24 21:52:41 2025 +0100

    Allow rules with no matching and only an action

diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index d86df76..8089a98 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -119,397 +119,412 @@ static String meta_string_77 = {11, "MetaAction "};
 static String meta_string_78 = {32, "(MetaParseState* parse_state) {\n"};
 static String meta_string_79 = {31, "unsigned int or_backtrack_pos;\n"};
 static String meta_string_80 = {31, "unsigned int action_start_pos;\n"};
-static String meta_string_81 = {14, "MetaAction _;\n"};
-static String meta_string_82 = {26, "MetaHighlight highlight = "};
-static String meta_string_83 = {2, ";\n"};
-static String meta_string_84 = {37, "return meta_action_create_invalid();\n"};
-static String meta_string_85 = {2, "}\n"};
-static String meta_string_86 = {1, "\n"};
-static String meta_string_87 = {1, "["};
-static String meta_string_88 = {1, "]"};
-static String meta_string_89 = {14, "MetaHighlight_"};
-static String meta_string_90 = {18, "MetaHighlight_None"};
-static String meta_string_91 = {37, "or_backtrack_pos = parse_state->pos;\n"};
-static String meta_string_92 = {59, "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n"};
-static String meta_string_93 = {37, "action_start_pos = parse_state->pos;\n"};
-static String meta_string_94 = {7, "struct "};
-static String meta_string_95 = {6, "Action"};
-static String meta_string_96 = {7, "Vars {\n"};
-static String meta_string_97 = {3, "};\n"};
-static String meta_string_98 = {15, "if (_.valid) {\n"};
-static String meta_string_99 = {2, "}\n"};
+static String meta_string_81 = {26, "MetaHighlight highlight = "};
+static String meta_string_82 = {2, ";\n"};
+static String meta_string_83 = {37, "return meta_action_create_invalid();\n"};
+static String meta_string_84 = {2, "}\n"};
+static String meta_string_85 = {1, "\n"};
+static String meta_string_86 = {1, "["};
+static String meta_string_87 = {1, "]"};
+static String meta_string_88 = {14, "MetaHighlight_"};
+static String meta_string_89 = {18, "MetaHighlight_None"};
+static String meta_string_90 = {37, "or_backtrack_pos = parse_state->pos;\n"};
+static String meta_string_91 = {59, "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n"};
+static String meta_string_92 = {37, "action_start_pos = parse_state->pos;\n"};
+static String meta_string_93 = {7, "struct "};
+static String meta_string_94 = {6, "Action"};
+static String meta_string_95 = {7, "Vars {\n"};
+static String meta_string_96 = {3, "};\n"};
+static String meta_string_97 = {15, "if (_.valid) {\n"};
+static String meta_string_98 = {2, "}\n"};
+static String meta_string_99 = {29, "unsigned int nlookahead_pos;\n"};
 static String meta_string_100 = {29, "unsigned int nlookahead_pos;\n"};
-static String meta_string_101 = {29, "unsigned int nlookahead_pos;\n"};
-static String meta_string_102 = {35, "nlookahead_pos = parse_state->pos;\n"};
-static String meta_string_103 = {15, "if (_.valid) {\n"};
-static String meta_string_104 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_105 = {9, "} else {\n"};
-static String meta_string_106 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
-static String meta_string_107 = {2, "}\n"};
-static String meta_string_108 = {57, "meta_parse_state_backtrack(parse_state, nlookahead_pos);\n"};
-static String meta_string_109 = {28, "unsigned int lookahead_pos;\n"};
+static String meta_string_101 = {14, "MetaAction _;\n"};
+static String meta_string_102 = {14, "MetaAction _;\n"};
+static String meta_string_103 = {35, "nlookahead_pos = parse_state->pos;\n"};
+static String meta_string_104 = {15, "if (_.valid) {\n"};
+static String meta_string_105 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_106 = {9, "} else {\n"};
+static String meta_string_107 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
+static String meta_string_108 = {2, "}\n"};
+static String meta_string_109 = {57, "meta_parse_state_backtrack(parse_state, nlookahead_pos);\n"};
 static String meta_string_110 = {28, "unsigned int lookahead_pos;\n"};
-static String meta_string_111 = {34, "lookahead_pos = parse_state->pos;\n"};
-static String meta_string_112 = {15, "if (_.valid) {\n"};
-static String meta_string_113 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
-static String meta_string_114 = {9, "} else {\n"};
-static String meta_string_115 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_116 = {2, "}\n"};
-static String meta_string_117 = {56, "meta_parse_state_backtrack(parse_state, lookahead_pos);\n"};
-static String meta_string_118 = {11, "MetaAction "};
-static String meta_string_119 = {2, ";\n"};
-static String meta_string_120 = {9, "((struct "};
-static String meta_string_121 = {6, "Action"};
-static String meta_string_122 = {10, "Vars*)vars"};
-static String meta_string_123 = {3, ")->"};
-static String meta_string_124 = {6, " = _;\n"};
-static String meta_string_125 = {22, "List* star_variables;\n"};
-static String meta_string_126 = {22, "List* star_variables;\n"};
-static String meta_string_127 = {23, "unsigned int star_pos;\n"};
-static String meta_string_128 = {23, "unsigned int star_pos;\n"};
-static String meta_string_129 = {29, "unsigned int star_start_pos;\n"};
-static String meta_string_130 = {29, "unsigned int star_start_pos;\n"};
-static String meta_string_131 = {50, "star_variables = list_create(parse_state->arena);\n"};
-static String meta_string_132 = {35, "star_start_pos = parse_state->pos;\n"};
-static String meta_string_133 = {12, "while (1) {\n"};
-static String meta_string_134 = {29, "star_pos = parse_state->pos;\n"};
-static String meta_string_135 = {16, "if (!_.valid) {\n"};
-static String meta_string_136 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
-static String meta_string_137 = {7, "break;\n"};
-static String meta_string_138 = {2, "}\n"};
-static String meta_string_139 = {112, "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n"};
-static String meta_string_140 = {2, "}\n"};
-static String meta_string_141 = {114, "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
-static String meta_string_142 = {23, "unsigned int star_pos;\n"};
-static String meta_string_143 = {23, "unsigned int star_pos;\n"};
-static String meta_string_144 = {29, "unsigned int star_start_pos;\n"};
-static String meta_string_145 = {29, "unsigned int star_start_pos;\n"};
-static String meta_string_146 = {35, "star_start_pos = parse_state->pos;\n"};
-static String meta_string_147 = {12, "while (1) {\n"};
-static String meta_string_148 = {29, "star_pos = parse_state->pos;\n"};
-static String meta_string_149 = {16, "if (!_.valid) {\n"};
-static String meta_string_150 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
-static String meta_string_151 = {7, "break;\n"};
-static String meta_string_152 = {2, "}\n"};
-static String meta_string_153 = {2, "}\n"};
-static String meta_string_154 = {97, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
-static String meta_string_155 = {1, ":"};
-static String meta_string_156 = {1, "*"};
-static String meta_string_157 = {1, "&"};
-static String meta_string_158 = {1, "!"};
-static String meta_string_159 = {1, "."};
-static String meta_string_160 = {1, "|"};
-static String meta_string_161 = {2, "->"};
-static String meta_string_162 = {1, "_"};
-static String meta_string_163 = {18, "bitpattern <<= 1;\n"};
-static String meta_string_164 = {15, "bitmask <<= 1;\n"};
-static String meta_string_165 = {14, "bitmask |= 1;\n"};
-static String meta_string_166 = {1, "0"};
-static String meta_string_167 = {1, "1"};
-static String meta_string_168 = {17, "bitpattern |= 1;\n"};
-static String meta_string_169 = {4, "_ = "};
-static String meta_string_170 = {15, "(parse_state);\n"};
-static String meta_string_171 = {2, "0b"};
-static String meta_string_172 = {26, "unsigned char bitpattern;\n"};
-static String meta_string_173 = {26, "unsigned char bitpattern;\n"};
-static String meta_string_174 = {23, "unsigned char bitmask;\n"};
-static String meta_string_175 = {23, "unsigned char bitmask;\n"};
-static String meta_string_176 = {16, "bitpattern = 0;\n"};
-static String meta_string_177 = {13, "bitmask = 0;\n"};
-static String meta_string_178 = {162, "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n"};
-static String meta_string_179 = {23, "parse_state->pos += 1;\n"};
-static String meta_string_180 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
-static String meta_string_181 = {9, "} else {\n"};
-static String meta_string_182 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_183 = {2, "}\n"};
-static String meta_string_184 = {58, "if (parse_state->pos < parse_state->input_buffer->size) {\n"};
-static String meta_string_185 = {23, "parse_state->pos += 1;\n"};
-static String meta_string_186 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
-static String meta_string_187 = {9, "} else {\n"};
-static String meta_string_188 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_189 = {2, "}\n"};
-static String meta_string_190 = {14, "String* data;\n"};
-static String meta_string_191 = {14, "String* data;\n"};
-static String meta_string_192 = {14, "String slice;\n"};
-static String meta_string_193 = {14, "String slice;\n"};
-static String meta_string_194 = {7, "data = "};
-static String meta_string_195 = {2, ";\n"};
-static String meta_string_196 = {96, "string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);\n"};
-static String meta_string_197 = {102, "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {\n"};
-static String meta_string_198 = {32, "parse_state->pos += data->size;\n"};
-static String meta_string_199 = {110, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"};
+static String meta_string_111 = {28, "unsigned int lookahead_pos;\n"};
+static String meta_string_112 = {14, "MetaAction _;\n"};
+static String meta_string_113 = {14, "MetaAction _;\n"};
+static String meta_string_114 = {34, "lookahead_pos = parse_state->pos;\n"};
+static String meta_string_115 = {15, "if (_.valid) {\n"};
+static String meta_string_116 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
+static String meta_string_117 = {9, "} else {\n"};
+static String meta_string_118 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_119 = {2, "}\n"};
+static String meta_string_120 = {56, "meta_parse_state_backtrack(parse_state, lookahead_pos);\n"};
+static String meta_string_121 = {11, "MetaAction "};
+static String meta_string_122 = {2, ";\n"};
+static String meta_string_123 = {9, "((struct "};
+static String meta_string_124 = {6, "Action"};
+static String meta_string_125 = {10, "Vars*)vars"};
+static String meta_string_126 = {3, ")->"};
+static String meta_string_127 = {6, " = _;\n"};
+static String meta_string_128 = {22, "List* star_variables;\n"};
+static String meta_string_129 = {22, "List* star_variables;\n"};
+static String meta_string_130 = {23, "unsigned int star_pos;\n"};
+static String meta_string_131 = {23, "unsigned int star_pos;\n"};
+static String meta_string_132 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_133 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_134 = {14, "MetaAction _;\n"};
+static String meta_string_135 = {14, "MetaAction _;\n"};
+static String meta_string_136 = {50, "star_variables = list_create(parse_state->arena);\n"};
+static String meta_string_137 = {35, "star_start_pos = parse_state->pos;\n"};
+static String meta_string_138 = {12, "while (1) {\n"};
+static String meta_string_139 = {29, "star_pos = parse_state->pos;\n"};
+static String meta_string_140 = {16, "if (!_.valid) {\n"};
+static String meta_string_141 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
+static String meta_string_142 = {7, "break;\n"};
+static String meta_string_143 = {2, "}\n"};
+static String meta_string_144 = {112, "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n"};
+static String meta_string_145 = {2, "}\n"};
+static String meta_string_146 = {114, "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
+static String meta_string_147 = {23, "unsigned int star_pos;\n"};
+static String meta_string_148 = {23, "unsigned int star_pos;\n"};
+static String meta_string_149 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_150 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_151 = {14, "MetaAction _;\n"};
+static String meta_string_152 = {14, "MetaAction _;\n"};
+static String meta_string_153 = {35, "star_start_pos = parse_state->pos;\n"};
+static String meta_string_154 = {12, "while (1) {\n"};
+static String meta_string_155 = {29, "star_pos = parse_state->pos;\n"};
+static String meta_string_156 = {16, "if (!_.valid) {\n"};
+static String meta_string_157 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
+static String meta_string_158 = {7, "break;\n"};
+static String meta_string_159 = {2, "}\n"};
+static String meta_string_160 = {2, "}\n"};
+static String meta_string_161 = {97, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
+static String meta_string_162 = {1, ":"};
+static String meta_string_163 = {1, "*"};
+static String meta_string_164 = {1, "&"};
+static String meta_string_165 = {1, "!"};
+static String meta_string_166 = {1, "."};
+static String meta_string_167 = {1, "|"};
+static String meta_string_168 = {2, "->"};
+static String meta_string_169 = {1, "_"};
+static String meta_string_170 = {18, "bitpattern <<= 1;\n"};
+static String meta_string_171 = {15, "bitmask <<= 1;\n"};
+static String meta_string_172 = {14, "bitmask |= 1;\n"};
+static String meta_string_173 = {1, "0"};
+static String meta_string_174 = {1, "1"};
+static String meta_string_175 = {17, "bitpattern |= 1;\n"};
+static String meta_string_176 = {14, "MetaAction _;\n"};
+static String meta_string_177 = {14, "MetaAction _;\n"};
+static String meta_string_178 = {4, "_ = "};
+static String meta_string_179 = {15, "(parse_state);\n"};
+static String meta_string_180 = {2, "0b"};
+static String meta_string_181 = {26, "unsigned char bitpattern;\n"};
+static String meta_string_182 = {26, "unsigned char bitpattern;\n"};
+static String meta_string_183 = {23, "unsigned char bitmask;\n"};
+static String meta_string_184 = {23, "unsigned char bitmask;\n"};
+static String meta_string_185 = {14, "MetaAction _;\n"};
+static String meta_string_186 = {14, "MetaAction _;\n"};
+static String meta_string_187 = {16, "bitpattern = 0;\n"};
+static String meta_string_188 = {13, "bitmask = 0;\n"};
+static String meta_string_189 = {162, "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n"};
+static String meta_string_190 = {23, "parse_state->pos += 1;\n"};
+static String meta_string_191 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
+static String meta_string_192 = {9, "} else {\n"};
+static String meta_string_193 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_194 = {2, "}\n"};
+static String meta_string_195 = {14, "MetaAction _;\n"};
+static String meta_string_196 = {14, "MetaAction _;\n"};
+static String meta_string_197 = {58, "if (parse_state->pos < parse_state->input_buffer->size) {\n"};
+static String meta_string_198 = {23, "parse_state->pos += 1;\n"};
+static String meta_string_199 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
 static String meta_string_200 = {9, "} else {\n"};
 static String meta_string_201 = {34, "_ = meta_action_create_invalid();\n"};
 static String meta_string_202 = {2, "}\n"};
-static String meta_string_203 = {1, "{"};
-static String meta_string_204 = {1, "}"};
-static String meta_string_205 = {5, "void "};
-static String meta_string_206 = {7, "action_"};
-static String meta_string_207 = {35, "(void* runtime, void* variables) {\n"};
-static String meta_string_208 = {2, "}\n"};
-static String meta_string_209 = {1, "\n"};
-static String meta_string_210 = {10, "void* vars"};
-static String meta_string_211 = {9, " = NULL;\n"};
-static String meta_string_212 = {4, "vars"};
-static String meta_string_213 = {49, " = arena_alloc(parse_state->arena, sizeof(struct "};
-static String meta_string_214 = {6, "Action"};
-static String meta_string_215 = {8, "Vars));\n"};
-static String meta_string_216 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
-static String meta_string_217 = {26, "return meta_action_create("};
-static String meta_string_218 = {7, "action_"};
-static String meta_string_219 = {6, ", vars"};
-static String meta_string_220 = {66, ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
-static String meta_string_221 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
-static String meta_string_222 = {102, "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
-static String meta_string_223 = {2, "(("};
-static String meta_string_224 = {17, "Runtime*)runtime)"};
-static String meta_string_225 = {9, "nonEmpty("};
-static String meta_string_226 = {6, ") -> {"};
-static String meta_string_227 = {1, "}"};
-static String meta_string_228 = {4, "if ("};
-static String meta_string_229 = {23, "->named_string_builder_"};
-static String meta_string_230 = {21, "->pre_first->next) {\n"};
-static String meta_string_231 = {2, "}\n"};
-static String meta_string_232 = {7, "unseen("};
-static String meta_string_233 = {6, ") -> {"};
-static String meta_string_234 = {1, "}"};
-static String meta_string_235 = {19, "MetaAction action;\n"};
-static String meta_string_236 = {19, "MetaAction action;\n"};
-static String meta_string_237 = {14, "String slice;\n"};
-static String meta_string_238 = {14, "String slice;\n"};
-static String meta_string_239 = {9, "action = "};
-static String meta_string_240 = {2, ";\n"};
-static String meta_string_241 = {69, "string_slice(action.input_buffer, action.start, action.end, &slice);\n"};
-static String meta_string_242 = {29, "if (!string_builder_contains("};
-static String meta_string_243 = {37, "->current_string_builder, &slice)) {\n"};
-static String meta_string_244 = {2, "}\n"};
-static String meta_string_245 = {7, "unique("};
-static String meta_string_246 = {1, ")"};
-static String meta_string_247 = {29, "if (!string_builder_contains("};
-static String meta_string_248 = {26, "->current_string_builder, "};
-static String meta_string_249 = {5, ")) {\n"};
-static String meta_string_250 = {22, "string_builder_append("};
-static String meta_string_251 = {26, "->current_string_builder, "};
-static String meta_string_252 = {9, "->arena, "};
-static String meta_string_253 = {12, ", 0, NULL);\n"};
-static String meta_string_254 = {2, "}\n"};
-static String meta_string_255 = {1, ">"};
-static String meta_string_256 = {1, "{"};
-static String meta_string_257 = {1, "}"};
-static String meta_string_258 = {36, "StringBuilder* last_string_builder;\n"};
-static String meta_string_259 = {36, "StringBuilder* last_string_builder;\n"};
-static String meta_string_260 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_261 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_262 = {22, "last_string_builder = "};
-static String meta_string_263 = {26, "->current_string_builder;\n"};
-static String meta_string_264 = {17, "string_builder = "};
-static String meta_string_265 = {23, "->named_string_builder_"};
-static String meta_string_266 = {2, ";\n"};
-static String meta_string_267 = {43, "->current_string_builder = string_builder;\n"};
-static String meta_string_268 = {48, "->current_string_builder = last_string_builder;\n"};
-static String meta_string_269 = {1, "<"};
-static String meta_string_270 = {22, "string_builder_append("};
-static String meta_string_271 = {26, "->current_string_builder, "};
-static String meta_string_272 = {18, "->arena, NULL, 0, "};
-static String meta_string_273 = {23, "->named_string_builder_"};
-static String meta_string_274 = {3, ");\n"};
-static String meta_string_275 = {1, "$"};
+static String meta_string_203 = {14, "String* data;\n"};
+static String meta_string_204 = {14, "String* data;\n"};
+static String meta_string_205 = {14, "String slice;\n"};
+static String meta_string_206 = {14, "String slice;\n"};
+static String meta_string_207 = {14, "MetaAction _;\n"};
+static String meta_string_208 = {14, "MetaAction _;\n"};
+static String meta_string_209 = {7, "data = "};
+static String meta_string_210 = {2, ";\n"};
+static String meta_string_211 = {96, "string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);\n"};
+static String meta_string_212 = {102, "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {\n"};
+static String meta_string_213 = {32, "parse_state->pos += data->size;\n"};
+static String meta_string_214 = {110, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"};
+static String meta_string_215 = {9, "} else {\n"};
+static String meta_string_216 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_217 = {2, "}\n"};
+static String meta_string_218 = {1, "{"};
+static String meta_string_219 = {1, "}"};
+static String meta_string_220 = {5, "void "};
+static String meta_string_221 = {7, "action_"};
+static String meta_string_222 = {35, "(void* runtime, void* variables) {\n"};
+static String meta_string_223 = {2, "}\n"};
+static String meta_string_224 = {1, "\n"};
+static String meta_string_225 = {10, "void* vars"};
+static String meta_string_226 = {9, " = NULL;\n"};
+static String meta_string_227 = {4, "vars"};
+static String meta_string_228 = {49, " = arena_alloc(parse_state->arena, sizeof(struct "};
+static String meta_string_229 = {6, "Action"};
+static String meta_string_230 = {8, "Vars));\n"};
+static String meta_string_231 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
+static String meta_string_232 = {26, "return meta_action_create("};
+static String meta_string_233 = {7, "action_"};
+static String meta_string_234 = {6, ", vars"};
+static String meta_string_235 = {66, ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
+static String meta_string_236 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
+static String meta_string_237 = {102, "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
+static String meta_string_238 = {2, "(("};
+static String meta_string_239 = {17, "Runtime*)runtime)"};
+static String meta_string_240 = {9, "nonEmpty("};
+static String meta_string_241 = {6, ") -> {"};
+static String meta_string_242 = {1, "}"};
+static String meta_string_243 = {4, "if ("};
+static String meta_string_244 = {23, "->named_string_builder_"};
+static String meta_string_245 = {21, "->pre_first->next) {\n"};
+static String meta_string_246 = {2, "}\n"};
+static String meta_string_247 = {7, "unseen("};
+static String meta_string_248 = {6, ") -> {"};
+static String meta_string_249 = {1, "}"};
+static String meta_string_250 = {19, "MetaAction action;\n"};
+static String meta_string_251 = {19, "MetaAction action;\n"};
+static String meta_string_252 = {14, "String slice;\n"};
+static String meta_string_253 = {14, "String slice;\n"};
+static String meta_string_254 = {9, "action = "};
+static String meta_string_255 = {2, ";\n"};
+static String meta_string_256 = {69, "string_slice(action.input_buffer, action.start, action.end, &slice);\n"};
+static String meta_string_257 = {29, "if (!string_builder_contains("};
+static String meta_string_258 = {37, "->current_string_builder, &slice)) {\n"};
+static String meta_string_259 = {2, "}\n"};
+static String meta_string_260 = {7, "unique("};
+static String meta_string_261 = {1, ")"};
+static String meta_string_262 = {29, "if (!string_builder_contains("};
+static String meta_string_263 = {26, "->current_string_builder, "};
+static String meta_string_264 = {5, ")) {\n"};
+static String meta_string_265 = {22, "string_builder_append("};
+static String meta_string_266 = {26, "->current_string_builder, "};
+static String meta_string_267 = {9, "->arena, "};
+static String meta_string_268 = {12, ", 0, NULL);\n"};
+static String meta_string_269 = {2, "}\n"};
+static String meta_string_270 = {1, ">"};
+static String meta_string_271 = {1, "{"};
+static String meta_string_272 = {1, "}"};
+static String meta_string_273 = {36, "StringBuilder* last_string_builder;\n"};
+static String meta_string_274 = {36, "StringBuilder* last_string_builder;\n"};
+static String meta_string_275 = {31, "StringBuilder* string_builder;\n"};
 static String meta_string_276 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_277 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_278 = {39, "string_builder = string_builder_create("};
-static String meta_string_279 = {10, "->arena);\n"};
+static String meta_string_277 = {22, "last_string_builder = "};
+static String meta_string_278 = {26, "->current_string_builder;\n"};
+static String meta_string_279 = {17, "string_builder = "};
 static String meta_string_280 = {23, "->named_string_builder_"};
-static String meta_string_281 = {19, " = string_builder;\n"};
-static String meta_string_282 = {22, "string_builder_append("};
-static String meta_string_283 = {26, "->current_string_builder, "};
-static String meta_string_284 = {29, "->arena, string_from_integer("};
-static String meta_string_285 = {9, "->arena, "};
-static String meta_string_286 = {13, "), 0, NULL);\n"};
-static String meta_string_287 = {17, "meta_action_run(&"};
-static String meta_string_288 = {11, ", runtime, "};
-static String meta_string_289 = {26, "->current_string_builder, "};
-static String meta_string_290 = {10, "->arena);\n"};
-static String meta_string_291 = {17, "void placeholder_"};
-static String meta_string_292 = {34, "(void* runtime, void* variables);\n"};
-static String meta_string_293 = {17, "void placeholder_"};
-static String meta_string_294 = {35, "(void* runtime, void* variables) {\n"};
-static String meta_string_295 = {2, "}\n"};
-static String meta_string_296 = {1, "\n"};
-static String meta_string_297 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_298 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_299 = {39, "string_builder = string_builder_create("};
-static String meta_string_300 = {10, "->arena);\n"};
-static String meta_string_301 = {24, "meta_placeholder_append("};
-static String meta_string_302 = {9, "->arena, "};
-static String meta_string_303 = {63, "->placeholders, string_builder, meta_action_create(placeholder_"};
-static String meta_string_304 = {27, ", variables, NULL, 0, 0));\n"};
-static String meta_string_305 = {22, "string_builder_append("};
-static String meta_string_306 = {26, "->current_string_builder, "};
-static String meta_string_307 = {35, "->arena, NULL, 0, string_builder);\n"};
-static String meta_string_308 = {22, "string_builder_append("};
-static String meta_string_309 = {26, "->current_string_builder, "};
-static String meta_string_310 = {9, "->arena, "};
-static String meta_string_311 = {12, ", 0, NULL);\n"};
-static String meta_string_312 = {1, "#"};
-static String meta_string_313 = {1, "("};
-static String meta_string_314 = {1, " "};
-static String meta_string_315 = {1, ")"};
-static String meta_string_316 = {4, "->W_"};
-static String meta_string_317 = {8, " = meta_"};
-static String meta_string_318 = {1, "("};
-static String meta_string_319 = {4, "->W_"};
-static String meta_string_320 = {3, " ? "};
-static String meta_string_321 = {4, "->W_"};
-static String meta_string_322 = {6, " : 0, "};
-static String meta_string_323 = {3, ");\n"};
-static String meta_string_324 = {1, ">"};
-static String meta_string_325 = {1, "<"};
-static String meta_string_326 = {22, "string_builder_append("};
-static String meta_string_327 = {26, "->current_string_builder, "};
-static String meta_string_328 = {25, "->arena, NULL, 1, NULL);\n"};
-static String meta_string_329 = {22, "string_builder_append("};
-static String meta_string_330 = {26, "->current_string_builder, "};
-static String meta_string_331 = {26, "->arena, NULL, -1, NULL);\n"};
-static String meta_string_332 = {36, "StringBuilder* named_string_builder_"};
-static String meta_string_333 = {2, ";\n"};
-static String meta_string_334 = {1, "0"};
-static String meta_string_335 = {1, "1"};
-static String meta_string_336 = {1, "2"};
-static String meta_string_337 = {1, "3"};
-static String meta_string_338 = {1, "4"};
-static String meta_string_339 = {1, "5"};
-static String meta_string_340 = {1, "6"};
-static String meta_string_341 = {1, "7"};
-static String meta_string_342 = {1, "8"};
-static String meta_string_343 = {1, "9"};
-static String meta_string_344 = {1, "{"};
-static String meta_string_345 = {1, "*"};
-static String meta_string_346 = {1, "}"};
-static String meta_string_347 = {7, "int i;\n"};
-static String meta_string_348 = {7, "int i;\n"};
-static String meta_string_349 = {14, "for (i=0; i < "};
-static String meta_string_350 = {9, "; i++) {\n"};
-static String meta_string_351 = {22, "string_builder_append("};
-static String meta_string_352 = {26, "->current_string_builder, "};
-static String meta_string_353 = {9, "->arena, "};
-static String meta_string_354 = {12, ", 0, NULL);\n"};
-static String meta_string_355 = {2, "}\n"};
-static String meta_string_356 = {1, "("};
-static String meta_string_357 = {4, "->W_"};
-static String meta_string_358 = {3, " ? "};
-static String meta_string_359 = {4, "->W_"};
-static String meta_string_360 = {5, " : 0)"};
-static String meta_string_361 = {1, "("};
-static String meta_string_362 = {1, "-"};
-static String meta_string_363 = {1, ")"};
-static String meta_string_364 = {2, "(("};
-static String meta_string_365 = {4, "->W_"};
-static String meta_string_366 = {3, " ? "};
-static String meta_string_367 = {4, "->W_"};
-static String meta_string_368 = {6, " : 0)-"};
-static String meta_string_369 = {1, ")"};
-static String meta_string_370 = {7, "number("};
-static String meta_string_371 = {1, ")"};
-static String meta_string_372 = {2, "(0"};
-static String meta_string_373 = {1, ")"};
-static String meta_string_374 = {25, "+(meta_action_first_byte("};
-static String meta_string_375 = {1, ")"};
-static String meta_string_376 = {1, ")"};
-static String meta_string_377 = {2, "<<"};
-static String meta_string_378 = {1, "\""};
-static String meta_string_379 = {1, "\""};
-static String meta_string_380 = {14, "static String "};
-static String meta_string_381 = {7, "string_"};
-static String meta_string_382 = {4, " = {"};
-static String meta_string_383 = {3, ", \""};
-static String meta_string_384 = {4, "\"};\n"};
-static String meta_string_385 = {2, "(&"};
-static String meta_string_386 = {7, "string_"};
-static String meta_string_387 = {1, ")"};
-static String meta_string_388 = {1, "("};
-static String meta_string_389 = {1, ")"};
-static String meta_string_390 = {10, "(((struct "};
-static String meta_string_391 = {6, "Action"};
-static String meta_string_392 = {18, "Vars*)variables)->"};
-static String meta_string_393 = {1, ")"};
-static String meta_string_394 = {4, ".len"};
-static String meta_string_395 = {15, "meta_action_len"};
-static String meta_string_396 = {6, ".count"};
-static String meta_string_397 = {17, "meta_action_count"};
-static String meta_string_398 = {2, "W["};
-static String meta_string_399 = {1, "]"};
-static String meta_string_400 = {15, "unsigned int W_"};
-static String meta_string_401 = {2, ";\n"};
-static String meta_string_402 = {1, "\""};
-static String meta_string_403 = {1, "\'"};
-static String meta_string_404 = {1, "\'"};
-static String meta_string_405 = {14, "static String "};
-static String meta_string_406 = {7, "string_"};
-static String meta_string_407 = {4, " = {"};
-static String meta_string_408 = {3, ", \""};
-static String meta_string_409 = {4, "\"};\n"};
-static String meta_string_410 = {2, "(&"};
-static String meta_string_411 = {7, "string_"};
-static String meta_string_412 = {1, ")"};
-static String meta_string_413 = {1, "\""};
-static String meta_string_414 = {2, "\\\""};
-static String meta_string_415 = {1, "\'"};
-static String meta_string_416 = {1, "\\"};
-static String meta_string_417 = {5, "rule_"};
-static String meta_string_418 = {1, "a"};
-static String meta_string_419 = {1, "b"};
-static String meta_string_420 = {1, "c"};
-static String meta_string_421 = {1, "d"};
-static String meta_string_422 = {1, "e"};
-static String meta_string_423 = {1, "f"};
-static String meta_string_424 = {1, "g"};
-static String meta_string_425 = {1, "h"};
-static String meta_string_426 = {1, "i"};
-static String meta_string_427 = {1, "j"};
-static String meta_string_428 = {1, "k"};
-static String meta_string_429 = {1, "l"};
-static String meta_string_430 = {1, "m"};
-static String meta_string_431 = {1, "n"};
-static String meta_string_432 = {1, "o"};
-static String meta_string_433 = {1, "p"};
-static String meta_string_434 = {1, "q"};
-static String meta_string_435 = {1, "r"};
-static String meta_string_436 = {1, "s"};
-static String meta_string_437 = {1, "t"};
-static String meta_string_438 = {1, "u"};
-static String meta_string_439 = {1, "v"};
-static String meta_string_440 = {1, "w"};
-static String meta_string_441 = {1, "x"};
-static String meta_string_442 = {1, "y"};
-static String meta_string_443 = {1, "z"};
-static String meta_string_444 = {1, "A"};
-static String meta_string_445 = {1, "B"};
-static String meta_string_446 = {1, "C"};
-static String meta_string_447 = {1, "D"};
-static String meta_string_448 = {1, "E"};
-static String meta_string_449 = {1, "F"};
-static String meta_string_450 = {1, "G"};
-static String meta_string_451 = {1, "H"};
-static String meta_string_452 = {1, "I"};
-static String meta_string_453 = {1, "J"};
-static String meta_string_454 = {1, "K"};
-static String meta_string_455 = {1, "L"};
-static String meta_string_456 = {1, "M"};
-static String meta_string_457 = {1, "N"};
-static String meta_string_458 = {1, "O"};
-static String meta_string_459 = {1, "P"};
-static String meta_string_460 = {1, "Q"};
-static String meta_string_461 = {1, "R"};
-static String meta_string_462 = {1, "S"};
-static String meta_string_463 = {1, "T"};
-static String meta_string_464 = {1, "U"};
-static String meta_string_465 = {1, "V"};
-static String meta_string_466 = {1, "W"};
-static String meta_string_467 = {1, "X"};
-static String meta_string_468 = {1, "Y"};
-static String meta_string_469 = {1, "Z"};
-static String meta_string_470 = {1, " "};
-static String meta_string_471 = {1, "\n"};
+static String meta_string_281 = {2, ";\n"};
+static String meta_string_282 = {43, "->current_string_builder = string_builder;\n"};
+static String meta_string_283 = {48, "->current_string_builder = last_string_builder;\n"};
+static String meta_string_284 = {1, "<"};
+static String meta_string_285 = {22, "string_builder_append("};
+static String meta_string_286 = {26, "->current_string_builder, "};
+static String meta_string_287 = {18, "->arena, NULL, 0, "};
+static String meta_string_288 = {23, "->named_string_builder_"};
+static String meta_string_289 = {3, ");\n"};
+static String meta_string_290 = {1, "$"};
+static String meta_string_291 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_292 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_293 = {39, "string_builder = string_builder_create("};
+static String meta_string_294 = {10, "->arena);\n"};
+static String meta_string_295 = {23, "->named_string_builder_"};
+static String meta_string_296 = {19, " = string_builder;\n"};
+static String meta_string_297 = {22, "string_builder_append("};
+static String meta_string_298 = {26, "->current_string_builder, "};
+static String meta_string_299 = {29, "->arena, string_from_integer("};
+static String meta_string_300 = {9, "->arena, "};
+static String meta_string_301 = {13, "), 0, NULL);\n"};
+static String meta_string_302 = {17, "meta_action_run(&"};
+static String meta_string_303 = {11, ", runtime, "};
+static String meta_string_304 = {26, "->current_string_builder, "};
+static String meta_string_305 = {10, "->arena);\n"};
+static String meta_string_306 = {17, "void placeholder_"};
+static String meta_string_307 = {34, "(void* runtime, void* variables);\n"};
+static String meta_string_308 = {17, "void placeholder_"};
+static String meta_string_309 = {35, "(void* runtime, void* variables) {\n"};
+static String meta_string_310 = {2, "}\n"};
+static String meta_string_311 = {1, "\n"};
+static String meta_string_312 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_313 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_314 = {39, "string_builder = string_builder_create("};
+static String meta_string_315 = {10, "->arena);\n"};
+static String meta_string_316 = {24, "meta_placeholder_append("};
+static String meta_string_317 = {9, "->arena, "};
+static String meta_string_318 = {63, "->placeholders, string_builder, meta_action_create(placeholder_"};
+static String meta_string_319 = {27, ", variables, NULL, 0, 0));\n"};
+static String meta_string_320 = {22, "string_builder_append("};
+static String meta_string_321 = {26, "->current_string_builder, "};
+static String meta_string_322 = {35, "->arena, NULL, 0, string_builder);\n"};
+static String meta_string_323 = {22, "string_builder_append("};
+static String meta_string_324 = {26, "->current_string_builder, "};
+static String meta_string_325 = {9, "->arena, "};
+static String meta_string_326 = {12, ", 0, NULL);\n"};
+static String meta_string_327 = {1, "#"};
+static String meta_string_328 = {1, "("};
+static String meta_string_329 = {1, " "};
+static String meta_string_330 = {1, ")"};
+static String meta_string_331 = {4, "->W_"};
+static String meta_string_332 = {8, " = meta_"};
+static String meta_string_333 = {1, "("};
+static String meta_string_334 = {4, "->W_"};
+static String meta_string_335 = {3, " ? "};
+static String meta_string_336 = {4, "->W_"};
+static String meta_string_337 = {6, " : 0, "};
+static String meta_string_338 = {3, ");\n"};
+static String meta_string_339 = {1, ">"};
+static String meta_string_340 = {1, "<"};
+static String meta_string_341 = {22, "string_builder_append("};
+static String meta_string_342 = {26, "->current_string_builder, "};
+static String meta_string_343 = {25, "->arena, NULL, 1, NULL);\n"};
+static String meta_string_344 = {22, "string_builder_append("};
+static String meta_string_345 = {26, "->current_string_builder, "};
+static String meta_string_346 = {26, "->arena, NULL, -1, NULL);\n"};
+static String meta_string_347 = {36, "StringBuilder* named_string_builder_"};
+static String meta_string_348 = {2, ";\n"};
+static String meta_string_349 = {1, "0"};
+static String meta_string_350 = {1, "1"};
+static String meta_string_351 = {1, "2"};
+static String meta_string_352 = {1, "3"};
+static String meta_string_353 = {1, "4"};
+static String meta_string_354 = {1, "5"};
+static String meta_string_355 = {1, "6"};
+static String meta_string_356 = {1, "7"};
+static String meta_string_357 = {1, "8"};
+static String meta_string_358 = {1, "9"};
+static String meta_string_359 = {1, "{"};
+static String meta_string_360 = {1, "*"};
+static String meta_string_361 = {1, "}"};
+static String meta_string_362 = {7, "int i;\n"};
+static String meta_string_363 = {7, "int i;\n"};
+static String meta_string_364 = {14, "for (i=0; i < "};
+static String meta_string_365 = {9, "; i++) {\n"};
+static String meta_string_366 = {22, "string_builder_append("};
+static String meta_string_367 = {26, "->current_string_builder, "};
+static String meta_string_368 = {9, "->arena, "};
+static String meta_string_369 = {12, ", 0, NULL);\n"};
+static String meta_string_370 = {2, "}\n"};
+static String meta_string_371 = {1, "("};
+static String meta_string_372 = {4, "->W_"};
+static String meta_string_373 = {3, " ? "};
+static String meta_string_374 = {4, "->W_"};
+static String meta_string_375 = {5, " : 0)"};
+static String meta_string_376 = {1, "("};
+static String meta_string_377 = {1, "-"};
+static String meta_string_378 = {1, ")"};
+static String meta_string_379 = {2, "(("};
+static String meta_string_380 = {4, "->W_"};
+static String meta_string_381 = {3, " ? "};
+static String meta_string_382 = {4, "->W_"};
+static String meta_string_383 = {6, " : 0)-"};
+static String meta_string_384 = {1, ")"};
+static String meta_string_385 = {7, "number("};
+static String meta_string_386 = {1, ")"};
+static String meta_string_387 = {2, "(0"};
+static String meta_string_388 = {1, ")"};
+static String meta_string_389 = {25, "+(meta_action_first_byte("};
+static String meta_string_390 = {1, ")"};
+static String meta_string_391 = {1, ")"};
+static String meta_string_392 = {2, "<<"};
+static String meta_string_393 = {1, "\""};
+static String meta_string_394 = {1, "\""};
+static String meta_string_395 = {14, "static String "};
+static String meta_string_396 = {7, "string_"};
+static String meta_string_397 = {4, " = {"};
+static String meta_string_398 = {3, ", \""};
+static String meta_string_399 = {4, "\"};\n"};
+static String meta_string_400 = {2, "(&"};
+static String meta_string_401 = {7, "string_"};
+static String meta_string_402 = {1, ")"};
+static String meta_string_403 = {1, "("};
+static String meta_string_404 = {1, ")"};
+static String meta_string_405 = {10, "(((struct "};
+static String meta_string_406 = {6, "Action"};
+static String meta_string_407 = {18, "Vars*)variables)->"};
+static String meta_string_408 = {1, ")"};
+static String meta_string_409 = {4, ".len"};
+static String meta_string_410 = {15, "meta_action_len"};
+static String meta_string_411 = {6, ".count"};
+static String meta_string_412 = {17, "meta_action_count"};
+static String meta_string_413 = {2, "W["};
+static String meta_string_414 = {1, "]"};
+static String meta_string_415 = {15, "unsigned int W_"};
+static String meta_string_416 = {2, ";\n"};
+static String meta_string_417 = {1, "\""};
+static String meta_string_418 = {1, "\'"};
+static String meta_string_419 = {1, "\'"};
+static String meta_string_420 = {14, "static String "};
+static String meta_string_421 = {7, "string_"};
+static String meta_string_422 = {4, " = {"};
+static String meta_string_423 = {3, ", \""};
+static String meta_string_424 = {4, "\"};\n"};
+static String meta_string_425 = {2, "(&"};
+static String meta_string_426 = {7, "string_"};
+static String meta_string_427 = {1, ")"};
+static String meta_string_428 = {1, "\""};
+static String meta_string_429 = {2, "\\\""};
+static String meta_string_430 = {1, "\'"};
+static String meta_string_431 = {1, "\\"};
+static String meta_string_432 = {5, "rule_"};
+static String meta_string_433 = {1, "a"};
+static String meta_string_434 = {1, "b"};
+static String meta_string_435 = {1, "c"};
+static String meta_string_436 = {1, "d"};
+static String meta_string_437 = {1, "e"};
+static String meta_string_438 = {1, "f"};
+static String meta_string_439 = {1, "g"};
+static String meta_string_440 = {1, "h"};
+static String meta_string_441 = {1, "i"};
+static String meta_string_442 = {1, "j"};
+static String meta_string_443 = {1, "k"};
+static String meta_string_444 = {1, "l"};
+static String meta_string_445 = {1, "m"};
+static String meta_string_446 = {1, "n"};
+static String meta_string_447 = {1, "o"};
+static String meta_string_448 = {1, "p"};
+static String meta_string_449 = {1, "q"};
+static String meta_string_450 = {1, "r"};
+static String meta_string_451 = {1, "s"};
+static String meta_string_452 = {1, "t"};
+static String meta_string_453 = {1, "u"};
+static String meta_string_454 = {1, "v"};
+static String meta_string_455 = {1, "w"};
+static String meta_string_456 = {1, "x"};
+static String meta_string_457 = {1, "y"};
+static String meta_string_458 = {1, "z"};
+static String meta_string_459 = {1, "A"};
+static String meta_string_460 = {1, "B"};
+static String meta_string_461 = {1, "C"};
+static String meta_string_462 = {1, "D"};
+static String meta_string_463 = {1, "E"};
+static String meta_string_464 = {1, "F"};
+static String meta_string_465 = {1, "G"};
+static String meta_string_466 = {1, "H"};
+static String meta_string_467 = {1, "I"};
+static String meta_string_468 = {1, "J"};
+static String meta_string_469 = {1, "K"};
+static String meta_string_470 = {1, "L"};
+static String meta_string_471 = {1, "M"};
+static String meta_string_472 = {1, "N"};
+static String meta_string_473 = {1, "O"};
+static String meta_string_474 = {1, "P"};
+static String meta_string_475 = {1, "Q"};
+static String meta_string_476 = {1, "R"};
+static String meta_string_477 = {1, "S"};
+static String meta_string_478 = {1, "T"};
+static String meta_string_479 = {1, "U"};
+static String meta_string_480 = {1, "V"};
+static String meta_string_481 = {1, "W"};
+static String meta_string_482 = {1, "X"};
+static String meta_string_483 = {1, "Y"};
+static String meta_string_484 = {1, "Z"};
+static String meta_string_485 = {1, " "};
+static String meta_string_486 = {1, "\n"};
 MetaAction meta_rule_main(MetaParseState* parse_state);
 struct meta_Action1Vars {
     MetaAction xs;
@@ -888,30 +903,29 @@ void meta_action_4(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_79), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_80), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_81), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_82), 0, NULL);
     meta_action_run(&(((struct meta_Action4Vars*)variables)->h), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_83), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_82), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations);
     meta_action_run(&(((struct meta_Action4Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_84), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_83), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_84), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_85), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_86), 0, NULL);
 }
 
 void meta_action_5(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_89), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_88), 0, NULL);
     meta_action_run(&(((struct meta_Action5Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_6(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_90), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_89), 0, NULL);
 }
 
 void meta_action_8(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_91), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_90), 0, NULL);
     meta_action_run(&(((struct meta_Action8Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     meta_action_run(&(((struct meta_Action8Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
@@ -929,8 +943,8 @@ void meta_action_13(void* runtime, void* variables) {
     ((meta_Runtime*)runtime)->W_0 = meta_inc(((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0, 1);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_variables = string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_91), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_92), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_93), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_orInit = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_orInit);
@@ -939,26 +953,26 @@ void meta_action_13(void* runtime, void* variables) {
         last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
         string_builder = ((meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
         ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_94), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_93), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_95), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_94), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_96), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_95), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_variables);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_97), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_96), 0, NULL);
         ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     }
 }
 
 void meta_action_14(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action14Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_98), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_97), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action14Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_99), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_98), 0, NULL);
 }
 
 void meta_action_15(void* runtime, void* variables) {
@@ -971,22 +985,25 @@ void meta_action_16(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_100))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_101), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_99))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_100), 0, NULL);
+    }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_101))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_102), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_102), 0, NULL);
-    meta_action_run(&(((struct meta_Action16Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_103), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    meta_action_run(&(((struct meta_Action16Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_104), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_105), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_106), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_105), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_106), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_107), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_108), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_109), 0, NULL);
 }
 
 void meta_action_17(void* runtime, void* variables) {
@@ -995,22 +1012,25 @@ void meta_action_17(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_109))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_110), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_110))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_111), 0, NULL);
+    }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_112))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_113), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_111), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_114), 0, NULL);
     meta_action_run(&(((struct meta_Action17Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_112), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_115), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_113), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_116), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_114), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_117), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_115), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_118), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_116), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_117), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_119), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_120), 0, NULL);
 }
 
 void meta_action_18(void* runtime, void* variables) {
@@ -1024,19 +1044,19 @@ void meta_action_19(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_variables;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_118), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_121), 0, NULL);
     meta_action_run(&(((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_119), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_122), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_120), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_123), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_121), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_124), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_122), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_125), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_123), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_126), 0, NULL);
     meta_action_run(&(((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_124), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_127), 0, NULL);
 }
 
 void meta_action_20(void* runtime, void* variables) {
@@ -1048,32 +1068,35 @@ void meta_action_21(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_125))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_126), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_128))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_129), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_127))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_128), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_130))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_131), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_129))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_130), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_132))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_133), 0, NULL);
+    }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_134))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_135), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_131), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_132), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_133), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_134), 0, NULL);
-    meta_action_run(&(((struct meta_Action21Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_135), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_136), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_137), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_138), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_139), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    meta_action_run(&(((struct meta_Action21Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_140), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_141), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_142), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_143), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_144), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_145), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_146), 0, NULL);
 }
 
 void meta_action_22(void* runtime, void* variables) {
@@ -1082,27 +1105,30 @@ void meta_action_22(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_142))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_143), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_147))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_148), 0, NULL);
+    }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_149))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_150), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_144))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_145), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_151))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_152), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_146), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_147), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_153), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_154), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_148), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_155), 0, NULL);
     meta_action_run(&(((struct meta_Action22Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_149), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_156), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_150), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_151), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_157), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_158), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_152), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_159), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_153), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_154), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_160), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_161), 0, NULL);
 }
 
 void meta_action_23(void* runtime, void* variables) {
@@ -1110,14 +1136,14 @@ void meta_action_23(void* runtime, void* variables) {
 }
 
 void meta_action_31(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_163), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_164), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_170), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_171), 0, NULL);
     meta_action_run(&(((struct meta_Action31Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_32(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action32Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_165), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_172), 0, NULL);
 }
 
 void meta_action_33(void* runtime, void* variables) {
@@ -1127,13 +1153,22 @@ void meta_action_34(void* runtime, void* variables) {
 }
 
 void meta_action_35(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_168), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_175), 0, NULL);
 }
 
 void meta_action_36(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_169), 0, NULL);
+    StringBuilder* last_string_builder;
+    StringBuilder* string_builder;
+    last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
+    ((meta_Runtime*)runtime)->current_string_builder = string_builder;
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_176))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_177), 0, NULL);
+    }
+    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_178), 0, NULL);
     meta_action_run(&(((struct meta_Action36Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_170), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_179), 0, NULL);
 }
 
 void meta_action_37(void* runtime, void* variables) {
@@ -1142,39 +1177,51 @@ void meta_action_37(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_172))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_173), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_181))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_182), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_174))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_175), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_183))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_184), 0, NULL);
+    }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_185))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_186), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_176), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_177), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_187), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_188), 0, NULL);
     meta_action_run(&(((struct meta_Action37Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_178), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_189), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_179), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_180), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_190), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_191), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_181), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_192), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_182), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_193), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_183), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_194), 0, NULL);
 }
 
 void meta_action_38(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_184), 0, NULL);
+    StringBuilder* last_string_builder;
+    StringBuilder* string_builder;
+    last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
+    ((meta_Runtime*)runtime)->current_string_builder = string_builder;
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_195))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_196), 0, NULL);
+    }
+    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_197), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_185), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_186), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_198), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_199), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_187), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_200), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_188), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_201), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_189), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_202), 0, NULL);
 }
 
 void meta_action_39(void* runtime, void* variables) {
@@ -1183,27 +1230,30 @@ void meta_action_39(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_190))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_191), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_203))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_204), 0, NULL);
+    }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_205))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_206), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_192))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_193), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_207))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_208), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_194), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_209), 0, NULL);
     meta_action_run(&(((struct meta_Action39Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_195), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_196), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_197), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_210), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_211), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_212), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_198), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_199), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_213), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_214), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_200), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_215), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_201), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_216), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_202), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_217), 0, NULL);
 }
 
 void meta_action_40(void* runtime, void* variables) {
@@ -1212,71 +1262,71 @@ void meta_action_40(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_205), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_220), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_206), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_221), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_207), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_222), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations);
     meta_action_run(&(((struct meta_Action40Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_208), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_209), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_223), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_224), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_210), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_225), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_211), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_226), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_orInit;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (((meta_Runtime*)runtime)->named_string_builder_variables->pre_first->next) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_212), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_227), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_213), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_228), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_214), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_229), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_215), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_230), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_216), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_217), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_231), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_232), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_218), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_233), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_219), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_234), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_220), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_235), 0, NULL);
 }
 
 void meta_action_41(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_221), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_222), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_236), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_237), 0, NULL);
 }
 
 void meta_action_42(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_223), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_238), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_224), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_239), 0, NULL);
 }
 
 void meta_action_43(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_228), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_243), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_229), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_244), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_230), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_245), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_231), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_246), 0, NULL);
 }
 
 void meta_action_44(void* runtime, void* variables) {
@@ -1285,42 +1335,42 @@ void meta_action_44(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_235))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_236), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_250))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_251), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_237))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_238), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_252))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_253), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_239), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_254), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_240), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_241), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_242), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_255), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_256), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_257), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_243), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_258), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_244), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_259), 0, NULL);
 }
 
 void meta_action_45(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_247), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_262), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_248), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_263), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_249), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_264), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_250), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_265), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_251), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_266), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_252), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_267), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_253), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_268), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_254), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_269), 0, NULL);
 }
 
 void meta_action_46(void* runtime, void* variables) {
@@ -1329,38 +1379,38 @@ void meta_action_46(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_258))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_259), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_273))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_274), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_260))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_261), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_275))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_276), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_262), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_277), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_263), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_264), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_278), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_279), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_265), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_280), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_266), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_281), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_267), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_282), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_268), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_283), 0, NULL);
 }
 
 void meta_action_47(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_270), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_285), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_271), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_286), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_272), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_287), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_273), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_288), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_274), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_289), 0, NULL);
 }
 
 void meta_action_48(void* runtime, void* variables) {
@@ -1369,39 +1419,39 @@ void meta_action_48(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_276))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_277), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_291))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_292), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_278), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_293), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_279), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_294), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_280), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_295), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_281), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_296), 0, NULL);
 }
 
 void meta_action_49(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_282), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_297), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_283), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_298), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_284), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_299), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_285), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_300), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_286), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_301), 0, NULL);
 }
 
 void meta_action_50(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_287), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_302), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_288), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_303), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_289), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_304), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_290), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_305), 0, NULL);
 }
 
 void meta_action_51(void* runtime, void* variables) {
@@ -1411,90 +1461,90 @@ void meta_action_51(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_291), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_306), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_292), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_307), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholders;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_293), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_308), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_294), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_309), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_placeholderVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_placeholderVars);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_295), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_296), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_310), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_311), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_297))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_298), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_312))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_313), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_299), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_314), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_300), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_301), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_315), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_316), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_302), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_317), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_303), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_318), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_304), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_305), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_319), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_320), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_306), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_321), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_307), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_322), 0, NULL);
 }
 
 void meta_action_52(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_308), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_323), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_309), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_324), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_310), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_325), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_311), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_326), 0, NULL);
 }
 
 void meta_action_53(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_316), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_331), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_317), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_332), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_318), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_333), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_319), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_334), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_320), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_335), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_321), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_336), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_322), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_337), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_323), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_338), 0, NULL);
 }
 
 void meta_action_54(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_326), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_341), 0, NULL);
     meta_action_run(&(((struct meta_Action54Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_327), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_342), 0, NULL);
     meta_action_run(&(((struct meta_Action54Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_328), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_343), 0, NULL);
     meta_action_run(&(((struct meta_Action54Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_329), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_344), 0, NULL);
     meta_action_run(&(((struct meta_Action54Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_330), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_345), 0, NULL);
     meta_action_run(&(((struct meta_Action54Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_331), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_346), 0, NULL);
 }
 
 void meta_action_55(void* runtime, void* variables) {
@@ -1508,9 +1558,9 @@ void meta_action_55(void* runtime, void* variables) {
     action = (((struct meta_Action55Vars*)variables)->x);
     string_slice(action.input_buffer, action.start, action.end, &slice);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, &slice)) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_332), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_347), 0, NULL);
         meta_action_run(&(((struct meta_Action55Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_333), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_348), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     meta_action_run(&(((struct meta_Action55Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
@@ -1526,49 +1576,49 @@ void meta_action_68(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholderVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_347))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_348), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_362))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_363), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_349), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_364), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_350), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_365), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_351), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_366), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_352), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_367), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_353), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_368), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_354), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_369), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_355), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_370), 0, NULL);
 }
 
 void meta_action_69(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_356), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_371), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_357), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_372), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_358), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_373), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_359), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_374), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_360), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_375), 0, NULL);
 }
 
 void meta_action_70(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_364), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_379), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_365), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_380), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_366), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_381), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_367), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_382), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_368), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_383), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_369), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_384), 0, NULL);
 }
 
 void meta_action_71(void* runtime, void* variables) {
@@ -1576,17 +1626,17 @@ void meta_action_71(void* runtime, void* variables) {
 }
 
 void meta_action_72(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_372), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_387), 0, NULL);
     meta_action_run(&(((struct meta_Action72Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_373), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_388), 0, NULL);
 }
 
 void meta_action_73(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_374), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_389), 0, NULL);
     meta_action_run(&(((struct meta_Action73Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_375), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_390), 0, NULL);
     meta_action_run(&(((struct meta_Action73Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_376), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_391), 0, NULL);
 }
 
 void meta_action_75(void* runtime, void* variables) {
@@ -1599,46 +1649,46 @@ void meta_action_76(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_380), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_395), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_381), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_396), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_382), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_397), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, meta_action_count((((struct meta_Action76Vars*)variables)->xs))), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_383), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_398), 0, NULL);
     meta_action_run(&(((struct meta_Action76Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_384), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_399), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_385), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_400), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_386), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_401), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_387), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_402), 0, NULL);
 }
 
 void meta_action_77(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action77Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_388), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_403), 0, NULL);
     meta_action_run(&(((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_389), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_404), 0, NULL);
 }
 
 void meta_action_78(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_390), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_405), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_391), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_406), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_392), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_407), 0, NULL);
     meta_action_run(&(((struct meta_Action78Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_393), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_408), 0, NULL);
 }
 
 void meta_action_79(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_395), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_410), 0, NULL);
 }
 
 void meta_action_80(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_397), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_412), 0, NULL);
 }
 
 void meta_action_81(void* runtime, void* variables) {
@@ -1652,9 +1702,9 @@ void meta_action_81(void* runtime, void* variables) {
     action = (((struct meta_Action81Vars*)variables)->x);
     string_slice(action.input_buffer, action.start, action.end, &slice);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, &slice)) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_400), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_415), 0, NULL);
         meta_action_run(&(((struct meta_Action81Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_401), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_416), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     meta_action_run(&(((struct meta_Action81Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
@@ -1667,41 +1717,41 @@ void meta_action_84(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_405), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_420), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_406), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_421), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_407), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_422), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, meta_action_count((((struct meta_Action84Vars*)variables)->xs))), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_408), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_423), 0, NULL);
     meta_action_run(&(((struct meta_Action84Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_409), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_424), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_410), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_425), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_411), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_426), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_412), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_427), 0, NULL);
 }
 
 void meta_action_86(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_414), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_429), 0, NULL);
 }
 
 void meta_action_89(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_417), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_432), 0, NULL);
     meta_action_run(&(((struct meta_Action89Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 MetaAction meta_rule_main(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    MetaAction _;
     void* vars1 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -1734,10 +1784,10 @@ MetaAction meta_rule_main(MetaParseState* parse_state) {
 MetaAction meta_rule_metaField(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    MetaAction _;
     void* vars2 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -1765,11 +1815,11 @@ MetaAction meta_rule_metaField(MetaParseState* parse_state) {
 MetaAction meta_rule_file(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    MetaAction _;
     unsigned int nlookahead_pos;
     void* vars3 = NULL;
     or_backtrack_pos = parse_state->pos;
@@ -1817,8 +1867,8 @@ MetaAction meta_rule_file(MetaParseState* parse_state) {
 MetaAction meta_rule_rule(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     String* data;
     String slice;
     void* vars4 = NULL;
@@ -1878,17 +1928,17 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
 MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    MetaAction _;
     void* vars5 = NULL;
     void* vars6 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars5 = arena_alloc(parse_state->arena, sizeof(struct meta_Action5Vars));
-    data = (&meta_string_87);
+    data = (&meta_string_86);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -1900,7 +1950,7 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
         _ = meta_rule_metaName(parse_state);
         ((struct meta_Action5Vars*)vars5)->x = _;
         if (_.valid) {
-            data = (&meta_string_88);
+            data = (&meta_string_87);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -1924,8 +1974,8 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
 MetaAction meta_rule_metaName(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Meta;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
@@ -1940,8 +1990,8 @@ MetaAction meta_rule_metaName(MetaParseState* parse_state) {
 MetaAction meta_rule_ors(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -1980,8 +2030,8 @@ MetaAction meta_rule_ors(MetaParseState* parse_state) {
 MetaAction meta_rule_restorcase(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars9 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -2002,8 +2052,8 @@ MetaAction meta_rule_restorcase(MetaParseState* parse_state) {
 MetaAction meta_rule_maybeorbar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars11 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -2023,8 +2073,8 @@ MetaAction meta_rule_maybeorbar(MetaParseState* parse_state) {
 MetaAction meta_rule_orbar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
@@ -2042,8 +2092,8 @@ MetaAction meta_rule_orbar(MetaParseState* parse_state) {
 MetaAction meta_rule_orcase(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars13 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -2061,8 +2111,8 @@ MetaAction meta_rule_orcase(MetaParseState* parse_state) {
 MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars14 = NULL;
     void* vars15 = NULL;
     or_backtrack_pos = parse_state->pos;
@@ -2097,8 +2147,8 @@ MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
 MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars16 = NULL;
     void* vars17 = NULL;
     void* vars18 = NULL;
@@ -2146,8 +2196,8 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
 MetaAction meta_rule_matchAssign(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars19 = NULL;
     void* vars20 = NULL;
     or_backtrack_pos = parse_state->pos;
@@ -2173,8 +2223,8 @@ MetaAction meta_rule_matchAssign(MetaParseState* parse_state) {
 MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     unsigned int lookahead_pos;
     void* vars21 = NULL;
     void* vars22 = NULL;
@@ -2229,14 +2279,14 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
 MetaAction meta_rule_opBind(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     String slice;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_155);
+    data = (&meta_string_162);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2254,14 +2304,14 @@ MetaAction meta_rule_opBind(MetaParseState* parse_state) {
 MetaAction meta_rule_opStar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     String slice;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_156);
+    data = (&meta_string_163);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2279,14 +2329,14 @@ MetaAction meta_rule_opStar(MetaParseState* parse_state) {
 MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     String slice;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_157);
+    data = (&meta_string_164);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2304,14 +2354,14 @@ MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
 MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     String slice;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_158);
+    data = (&meta_string_165);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2329,14 +2379,14 @@ MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
 MetaAction meta_rule_opAny(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     String slice;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_159);
+    data = (&meta_string_166);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2354,14 +2404,14 @@ MetaAction meta_rule_opAny(MetaParseState* parse_state) {
 MetaAction meta_rule_opOr(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     String slice;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_160);
+    data = (&meta_string_167);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2379,14 +2429,14 @@ MetaAction meta_rule_opOr(MetaParseState* parse_state) {
 MetaAction meta_rule_opAction(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     String slice;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_161);
+    data = (&meta_string_168);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2404,10 +2454,10 @@ MetaAction meta_rule_opAction(MetaParseState* parse_state) {
 MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    MetaAction _;
     String* data;
     String slice;
     void* vars31 = NULL;
@@ -2418,7 +2468,7 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = (&meta_string_162);
+        data = (&meta_string_169);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2446,8 +2496,8 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
 MetaAction meta_rule_maybeBit(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars32 = NULL;
     void* vars33 = NULL;
     or_backtrack_pos = parse_state->pos;
@@ -2473,16 +2523,16 @@ MetaAction meta_rule_maybeBit(MetaParseState* parse_state) {
 MetaAction meta_rule_bit(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    MetaAction _;
     void* vars34 = NULL;
     void* vars35 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_166);
+    data = (&meta_string_173);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2496,7 +2546,7 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_167);
+    data = (&meta_string_174);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2514,8 +2564,8 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
 MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars36 = NULL;
     String* data;
     String slice;
@@ -2538,7 +2588,7 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
-    data = (&meta_string_171);
+    data = (&meta_string_180);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2587,8 +2637,8 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
 MetaAction meta_rule_action(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     String* data;
     String slice;
     List* star_variables;
@@ -2606,7 +2656,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
         if (_.valid) {
             _ = meta_rule_space(parse_state);
             if (_.valid) {
-                data = (&meta_string_203);
+                data = (&meta_string_218);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -2631,7 +2681,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_204);
+                            data = (&meta_string_219);
                             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
@@ -2659,38 +2709,21 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
 MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
-    unsigned int lookahead_pos;
     void* vars42 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    lookahead_pos = parse_state->pos;
-    if (parse_state->pos < parse_state->input_buffer->size) {
-        parse_state->pos += 1;
-        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
-    } else {
-        _ = meta_action_create_invalid();
-    }
-    if (_.valid) {
-        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
-    } else {
-        _ = meta_action_create_invalid();
-    }
-    meta_parse_state_backtrack(parse_state, lookahead_pos);
-    if (_.valid) {
-        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_42, vars42, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
+    meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+    return meta_action_create(meta_action_42, vars42, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     String* data;
     String slice;
     List* star_variables;
@@ -2714,7 +2747,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_225);
+        data = (&meta_string_240);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2726,7 +2759,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_stringBuilderName(parse_state);
             ((struct meta_Action43Vars*)vars43)->x = _;
             if (_.valid) {
-                data = (&meta_string_226);
+                data = (&meta_string_241);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -2751,7 +2784,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_227);
+                            data = (&meta_string_242);
                             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
@@ -2778,7 +2811,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_232);
+        data = (&meta_string_247);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2790,7 +2823,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_nameAsActionLookup(parse_state);
             ((struct meta_Action44Vars*)vars44)->x = _;
             if (_.valid) {
-                data = (&meta_string_233);
+                data = (&meta_string_248);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -2815,7 +2848,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_234);
+                            data = (&meta_string_249);
                             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
@@ -2842,7 +2875,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_245);
+        data = (&meta_string_260);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2854,7 +2887,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_string(parse_state);
             ((struct meta_Action45Vars*)vars45)->x = _;
             if (_.valid) {
-                data = (&meta_string_246);
+                data = (&meta_string_261);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -2878,7 +2911,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_255);
+        data = (&meta_string_270);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2892,7 +2925,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = (&meta_string_256);
+                    data = (&meta_string_271);
                     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
@@ -2917,7 +2950,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                         if (_.valid) {
                             _ = meta_rule_space(parse_state);
                             if (_.valid) {
-                                data = (&meta_string_257);
+                                data = (&meta_string_272);
                                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                     parse_state->pos += data->size;
@@ -2945,7 +2978,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_269);
+        data = (&meta_string_284);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2971,7 +3004,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars48 = arena_alloc(parse_state->arena, sizeof(struct meta_Action48Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_275);
+        data = (&meta_string_290);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -3061,7 +3094,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_312);
+        data = (&meta_string_327);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -3073,7 +3106,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_name(parse_state);
             ((struct meta_Action53Vars*)vars53)->x = _;
             if (_.valid) {
-                data = (&meta_string_313);
+                data = (&meta_string_328);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -3085,7 +3118,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     _ = meta_rule_wvar(parse_state);
                     ((struct meta_Action53Vars*)vars53)->y = _;
                     if (_.valid) {
-                        data = (&meta_string_314);
+                        data = (&meta_string_329);
                         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                             parse_state->pos += data->size;
@@ -3097,7 +3130,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                             _ = meta_rule_actionPrimitiveExpression(parse_state);
                             ((struct meta_Action53Vars*)vars53)->z = _;
                             if (_.valid) {
-                                data = (&meta_string_315);
+                                data = (&meta_string_330);
                                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                     parse_state->pos += data->size;
@@ -3125,7 +3158,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars54 = arena_alloc(parse_state->arena, sizeof(struct meta_Action54Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_324);
+        data = (&meta_string_339);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -3150,7 +3183,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = (&meta_string_325);
+                    data = (&meta_string_340);
                     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
@@ -3176,8 +3209,8 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
 MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars55 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -3195,8 +3228,8 @@ MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state) {
 MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars56 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -3221,14 +3254,14 @@ MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
 MetaAction meta_rule_digit(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_334);
+    data = (&meta_string_349);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3242,7 +3275,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_335);
+    data = (&meta_string_350);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3256,7 +3289,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_336);
+    data = (&meta_string_351);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3270,7 +3303,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_337);
+    data = (&meta_string_352);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3284,7 +3317,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_338);
+    data = (&meta_string_353);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3298,7 +3331,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_339);
+    data = (&meta_string_354);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3312,7 +3345,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_340);
+    data = (&meta_string_355);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3326,7 +3359,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_341);
+    data = (&meta_string_356);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3340,7 +3373,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_342);
+    data = (&meta_string_357);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3354,7 +3387,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_343);
+    data = (&meta_string_358);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3372,16 +3405,16 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
 MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    MetaAction _;
     void* vars68 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars68 = arena_alloc(parse_state->arena, sizeof(struct meta_Action68Vars));
-    data = (&meta_string_344);
+    data = (&meta_string_359);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3395,7 +3428,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
             _ = meta_rule_string(parse_state);
             ((struct meta_Action68Vars*)vars68)->x = _;
             if (_.valid) {
-                data = (&meta_string_345);
+                data = (&meta_string_360);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -3409,7 +3442,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_346);
+                            data = (&meta_string_361);
                             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
@@ -3437,8 +3470,8 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
 MetaAction meta_rule_expr(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars69 = NULL;
     String* data;
     String slice;
@@ -3465,7 +3498,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars70 = arena_alloc(parse_state->arena, sizeof(struct meta_Action70Vars));
-    data = (&meta_string_361);
+    data = (&meta_string_376);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3477,7 +3510,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
         _ = meta_rule_wvar(parse_state);
         ((struct meta_Action70Vars*)vars70)->x = _;
         if (_.valid) {
-            data = (&meta_string_362);
+            data = (&meta_string_377);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3489,7 +3522,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
                 _ = meta_rule_dotname(parse_state);
                 ((struct meta_Action70Vars*)vars70)->y = _;
                 if (_.valid) {
-                    data = (&meta_string_363);
+                    data = (&meta_string_378);
                     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
@@ -3521,7 +3554,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars72 = arena_alloc(parse_state->arena, sizeof(struct meta_Action72Vars));
-    data = (&meta_string_370);
+    data = (&meta_string_385);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3544,7 +3577,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         ((struct meta_Action72Vars*)vars72)->xs = _;
         if (_.valid) {
-            data = (&meta_string_371);
+            data = (&meta_string_386);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3564,8 +3597,8 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
 MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars73 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -3590,15 +3623,15 @@ MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
 MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    MetaAction _;
     void* vars75 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_377);
+    data = (&meta_string_392);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3623,10 +3656,10 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
 MetaAction meta_rule_string(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_String;
     String* data;
     String slice;
+    MetaAction _;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -3635,7 +3668,7 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars76 = arena_alloc(parse_state->arena, sizeof(struct meta_Action76Vars));
-    data = (&meta_string_378);
+    data = (&meta_string_393);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3658,7 +3691,7 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         ((struct meta_Action76Vars*)vars76)->xs = _;
         if (_.valid) {
-            data = (&meta_string_379);
+            data = (&meta_string_394);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3682,8 +3715,8 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
 MetaAction meta_rule_dotname(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars77 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -3705,8 +3738,8 @@ MetaAction meta_rule_dotname(MetaParseState* parse_state) {
 MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     void* vars78 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -3724,17 +3757,17 @@ MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
 MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    MetaAction _;
     unsigned int nlookahead_pos;
     void* vars79 = NULL;
     void* vars80 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_394);
+    data = (&meta_string_409);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3758,7 +3791,7 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_396);
+    data = (&meta_string_411);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3786,16 +3819,16 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
 MetaAction meta_rule_wvar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    MetaAction _;
     void* vars81 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars81 = arena_alloc(parse_state->arena, sizeof(struct meta_Action81Vars));
-    data = (&meta_string_398);
+    data = (&meta_string_413);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3812,7 +3845,7 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
         }
         ((struct meta_Action81Vars*)vars81)->x = _;
         if (_.valid) {
-            data = (&meta_string_399);
+            data = (&meta_string_414);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3832,8 +3865,8 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
 MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     unsigned int nlookahead_pos;
     String* data;
     String slice;
@@ -3848,7 +3881,7 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = (&meta_string_402);
+    data = (&meta_string_417);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3880,10 +3913,10 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
 MetaAction meta_rule_charString(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_CharString;
     String* data;
     String slice;
+    MetaAction _;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -3892,7 +3925,7 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars84 = arena_alloc(parse_state->arena, sizeof(struct meta_Action84Vars));
-    data = (&meta_string_403);
+    data = (&meta_string_418);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3915,7 +3948,7 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         ((struct meta_Action84Vars*)vars84)->xs = _;
         if (_.valid) {
-            data = (&meta_string_404);
+            data = (&meta_string_419);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3935,8 +3968,8 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
 MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     String* data;
     String slice;
     void* vars86 = NULL;
@@ -3951,7 +3984,7 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_413);
+    data = (&meta_string_428);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3966,7 +3999,7 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = (&meta_string_415);
+    data = (&meta_string_430);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3998,14 +4031,14 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
 MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Escape;
     String* data;
     String slice;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_416);
+    data = (&meta_string_431);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4031,8 +4064,8 @@ MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
 MetaAction meta_rule_ruleName(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_RuleName;
+    MetaAction _;
     void* vars89 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -4050,8 +4083,8 @@ MetaAction meta_rule_ruleName(MetaParseState* parse_state) {
 MetaAction meta_rule_variableName(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_VariableName;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
@@ -4066,8 +4099,8 @@ MetaAction meta_rule_variableName(MetaParseState* parse_state) {
 MetaAction meta_rule_name(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
@@ -4096,8 +4129,8 @@ MetaAction meta_rule_name(MetaParseState* parse_state) {
 MetaAction meta_rule_char(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
@@ -4119,14 +4152,14 @@ MetaAction meta_rule_char(MetaParseState* parse_state) {
 MetaAction meta_rule_lower(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_418);
+    data = (&meta_string_433);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4140,7 +4173,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_419);
+    data = (&meta_string_434);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4154,7 +4187,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_420);
+    data = (&meta_string_435);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4168,7 +4201,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_421);
+    data = (&meta_string_436);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4182,7 +4215,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_422);
+    data = (&meta_string_437);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4196,7 +4229,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_423);
+    data = (&meta_string_438);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4210,7 +4243,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_424);
+    data = (&meta_string_439);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4224,7 +4257,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_425);
+    data = (&meta_string_440);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4238,7 +4271,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_426);
+    data = (&meta_string_441);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4252,7 +4285,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_427);
+    data = (&meta_string_442);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4266,7 +4299,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_428);
+    data = (&meta_string_443);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4280,7 +4313,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_429);
+    data = (&meta_string_444);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4294,7 +4327,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_430);
+    data = (&meta_string_445);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4308,7 +4341,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_431);
+    data = (&meta_string_446);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4322,7 +4355,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_432);
+    data = (&meta_string_447);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4336,7 +4369,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_433);
+    data = (&meta_string_448);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4350,7 +4383,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_434);
+    data = (&meta_string_449);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4364,7 +4397,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_435);
+    data = (&meta_string_450);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4378,7 +4411,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_436);
+    data = (&meta_string_451);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4392,7 +4425,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_437);
+    data = (&meta_string_452);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4406,7 +4439,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_438);
+    data = (&meta_string_453);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4420,7 +4453,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_439);
+    data = (&meta_string_454);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4434,7 +4467,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_440);
+    data = (&meta_string_455);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4448,7 +4481,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_441);
+    data = (&meta_string_456);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4462,7 +4495,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_442);
+    data = (&meta_string_457);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4476,7 +4509,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_443);
+    data = (&meta_string_458);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4494,14 +4527,14 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
 MetaAction meta_rule_upper(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_444);
+    data = (&meta_string_459);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4515,7 +4548,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_445);
+    data = (&meta_string_460);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4529,7 +4562,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_446);
+    data = (&meta_string_461);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4543,7 +4576,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_447);
+    data = (&meta_string_462);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4557,7 +4590,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_448);
+    data = (&meta_string_463);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4571,7 +4604,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_449);
+    data = (&meta_string_464);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4585,7 +4618,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_450);
+    data = (&meta_string_465);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4599,7 +4632,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_451);
+    data = (&meta_string_466);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4613,7 +4646,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_452);
+    data = (&meta_string_467);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4627,7 +4660,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_453);
+    data = (&meta_string_468);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4641,7 +4674,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_454);
+    data = (&meta_string_469);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4655,7 +4688,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_455);
+    data = (&meta_string_470);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4669,7 +4702,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_456);
+    data = (&meta_string_471);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4683,7 +4716,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_457);
+    data = (&meta_string_472);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4697,7 +4730,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_458);
+    data = (&meta_string_473);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4711,7 +4744,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_459);
+    data = (&meta_string_474);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4725,7 +4758,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_460);
+    data = (&meta_string_475);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4739,7 +4772,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_461);
+    data = (&meta_string_476);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4753,7 +4786,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_462);
+    data = (&meta_string_477);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4767,7 +4800,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_463);
+    data = (&meta_string_478);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4781,7 +4814,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_464);
+    data = (&meta_string_479);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4795,7 +4828,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_465);
+    data = (&meta_string_480);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4809,7 +4842,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_466);
+    data = (&meta_string_481);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4823,7 +4856,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_467);
+    data = (&meta_string_482);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4837,7 +4870,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_468);
+    data = (&meta_string_483);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4851,7 +4884,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_469);
+    data = (&meta_string_484);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4869,8 +4902,8 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
 MetaAction meta_rule_number(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    MetaAction _;
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
@@ -4899,10 +4932,10 @@ MetaAction meta_rule_number(MetaParseState* parse_state) {
 MetaAction meta_rule_space(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
@@ -4926,14 +4959,14 @@ MetaAction meta_rule_space(MetaParseState* parse_state) {
 MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    MetaAction _;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_470);
+    data = (&meta_string_485);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4947,7 +4980,7 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_471);
+    data = (&meta_string_486);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 3acb370..2749338 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -95,7 +95,6 @@ rule = space ruleName:x highlight:h space '=' space ors:y space ';' -> {
     "MetaAction " x "(MetaParseState* parse_state) {\n" >
         "unsigned int or_backtrack_pos;\n"
         "unsigned int action_start_pos;\n"
-        "MetaAction _;\n"
         "MetaHighlight highlight = " h ";\n"
         $ruleDeclarations
         <ruleDeclarations
@@ -159,6 +158,7 @@ matchExpr =
     | opNegativeLookahead matchExprPrimitive:x -> {
         >ruleDeclarations {
             unique("unsigned int nlookahead_pos;\n")
+            unique("MetaAction _;\n")
         }
         "nlookahead_pos = parse_state->pos;\n"
         x
@@ -172,6 +172,7 @@ matchExpr =
     | opLookahead matchExprPrimitive:x -> {
         >ruleDeclarations {
             unique("unsigned int lookahead_pos;\n")
+            unique("MetaAction _;\n")
         }
         "lookahead_pos = parse_state->pos;\n"
         x
@@ -201,6 +202,7 @@ matchExprRepeat =
             unique("List* star_variables;\n")
             unique("unsigned int star_pos;\n")
             unique("unsigned int star_start_pos;\n")
+            unique("MetaAction _;\n")
         }
         "star_variables = list_create(parse_state->arena);\n"
         "star_start_pos = parse_state->pos;\n"
@@ -219,6 +221,7 @@ matchExprRepeat =
         >ruleDeclarations {
             unique("unsigned int star_pos;\n")
             unique("unsigned int star_start_pos;\n")
+            unique("MetaAction _;\n")
         }
         "star_start_pos = parse_state->pos;\n"
         "while (1) {\n" >
@@ -262,12 +265,16 @@ bit =
 
 matchExprPrimitive =
     | ruleName:x       -> {
+        >ruleDeclarations {
+            unique("MetaAction _;\n")
+        }
         "_ = " x "(parse_state);\n"
     }
     | '0b' sepBit*:xs -> {
         >ruleDeclarations {
             unique("unsigned char bitpattern;\n")
             unique("unsigned char bitmask;\n")
+            unique("MetaAction _;\n")
         }
         "bitpattern = 0;\n"
         "bitmask = 0;\n"
@@ -280,6 +287,9 @@ matchExprPrimitive =
         < "}\n"
     }
     | opAny -> {
+        >ruleDeclarations {
+            unique("MetaAction _;\n")
+        }
         "if (parse_state->pos < parse_state->input_buffer->size) {\n" >
             "parse_state->pos += 1;\n"
             "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"
@@ -291,6 +301,7 @@ matchExprPrimitive =
         >ruleDeclarations {
             unique("String* data;\n")
             unique("String slice;\n")
+            unique("MetaAction _;\n")
         }
         "data = " x ";\n"
         "string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);\n"
@@ -330,7 +341,7 @@ action =
     }
     ;
 
-genRuntime = &. -> { "((" <prefix "Runtime*)runtime)" };
+genRuntime = -> { "((" <prefix "Runtime*)runtime)" };
 
 actionexpr =
     | space 'nonEmpty(' stringBuilderName:x ') -> {' actionexpr*:ys space '}' genRuntime:runtime -> {

commit fddab44ebd24abfb0d0d1751bbf4b3821545ef20
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 24 21:46:51 2025 +0100

    Cleaner generation of rule name

diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index f5c61e6..d86df76 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -114,404 +114,402 @@ static String meta_string_72 = {7, "#endif\n"};
 static String meta_string_73 = {1, "="};
 static String meta_string_74 = {1, ";"};
 static String meta_string_75 = {11, "MetaAction "};
-static String meta_string_76 = {5, "rule_"};
-static String meta_string_77 = {31, "(MetaParseState* parse_state);\n"};
-static String meta_string_78 = {11, "MetaAction "};
-static String meta_string_79 = {5, "rule_"};
-static String meta_string_80 = {32, "(MetaParseState* parse_state) {\n"};
-static String meta_string_81 = {31, "unsigned int or_backtrack_pos;\n"};
-static String meta_string_82 = {31, "unsigned int action_start_pos;\n"};
-static String meta_string_83 = {14, "MetaAction _;\n"};
-static String meta_string_84 = {26, "MetaHighlight highlight = "};
-static String meta_string_85 = {2, ";\n"};
-static String meta_string_86 = {37, "return meta_action_create_invalid();\n"};
-static String meta_string_87 = {2, "}\n"};
-static String meta_string_88 = {1, "\n"};
-static String meta_string_89 = {1, "["};
-static String meta_string_90 = {1, "]"};
-static String meta_string_91 = {14, "MetaHighlight_"};
-static String meta_string_92 = {18, "MetaHighlight_None"};
-static String meta_string_93 = {37, "or_backtrack_pos = parse_state->pos;\n"};
-static String meta_string_94 = {59, "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n"};
-static String meta_string_95 = {37, "action_start_pos = parse_state->pos;\n"};
-static String meta_string_96 = {7, "struct "};
-static String meta_string_97 = {6, "Action"};
-static String meta_string_98 = {7, "Vars {\n"};
-static String meta_string_99 = {3, "};\n"};
-static String meta_string_100 = {15, "if (_.valid) {\n"};
-static String meta_string_101 = {2, "}\n"};
-static String meta_string_102 = {29, "unsigned int nlookahead_pos;\n"};
-static String meta_string_103 = {29, "unsigned int nlookahead_pos;\n"};
-static String meta_string_104 = {35, "nlookahead_pos = parse_state->pos;\n"};
-static String meta_string_105 = {15, "if (_.valid) {\n"};
-static String meta_string_106 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_107 = {9, "} else {\n"};
-static String meta_string_108 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
-static String meta_string_109 = {2, "}\n"};
-static String meta_string_110 = {57, "meta_parse_state_backtrack(parse_state, nlookahead_pos);\n"};
-static String meta_string_111 = {28, "unsigned int lookahead_pos;\n"};
-static String meta_string_112 = {28, "unsigned int lookahead_pos;\n"};
-static String meta_string_113 = {34, "lookahead_pos = parse_state->pos;\n"};
-static String meta_string_114 = {15, "if (_.valid) {\n"};
-static String meta_string_115 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
-static String meta_string_116 = {9, "} else {\n"};
-static String meta_string_117 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_118 = {2, "}\n"};
-static String meta_string_119 = {56, "meta_parse_state_backtrack(parse_state, lookahead_pos);\n"};
-static String meta_string_120 = {11, "MetaAction "};
-static String meta_string_121 = {2, ";\n"};
-static String meta_string_122 = {9, "((struct "};
-static String meta_string_123 = {6, "Action"};
-static String meta_string_124 = {10, "Vars*)vars"};
-static String meta_string_125 = {3, ")->"};
-static String meta_string_126 = {6, " = _;\n"};
-static String meta_string_127 = {22, "List* star_variables;\n"};
-static String meta_string_128 = {22, "List* star_variables;\n"};
-static String meta_string_129 = {23, "unsigned int star_pos;\n"};
-static String meta_string_130 = {23, "unsigned int star_pos;\n"};
-static String meta_string_131 = {29, "unsigned int star_start_pos;\n"};
-static String meta_string_132 = {29, "unsigned int star_start_pos;\n"};
-static String meta_string_133 = {50, "star_variables = list_create(parse_state->arena);\n"};
-static String meta_string_134 = {35, "star_start_pos = parse_state->pos;\n"};
-static String meta_string_135 = {12, "while (1) {\n"};
-static String meta_string_136 = {29, "star_pos = parse_state->pos;\n"};
-static String meta_string_137 = {16, "if (!_.valid) {\n"};
-static String meta_string_138 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
-static String meta_string_139 = {7, "break;\n"};
+static String meta_string_76 = {31, "(MetaParseState* parse_state);\n"};
+static String meta_string_77 = {11, "MetaAction "};
+static String meta_string_78 = {32, "(MetaParseState* parse_state) {\n"};
+static String meta_string_79 = {31, "unsigned int or_backtrack_pos;\n"};
+static String meta_string_80 = {31, "unsigned int action_start_pos;\n"};
+static String meta_string_81 = {14, "MetaAction _;\n"};
+static String meta_string_82 = {26, "MetaHighlight highlight = "};
+static String meta_string_83 = {2, ";\n"};
+static String meta_string_84 = {37, "return meta_action_create_invalid();\n"};
+static String meta_string_85 = {2, "}\n"};
+static String meta_string_86 = {1, "\n"};
+static String meta_string_87 = {1, "["};
+static String meta_string_88 = {1, "]"};
+static String meta_string_89 = {14, "MetaHighlight_"};
+static String meta_string_90 = {18, "MetaHighlight_None"};
+static String meta_string_91 = {37, "or_backtrack_pos = parse_state->pos;\n"};
+static String meta_string_92 = {59, "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n"};
+static String meta_string_93 = {37, "action_start_pos = parse_state->pos;\n"};
+static String meta_string_94 = {7, "struct "};
+static String meta_string_95 = {6, "Action"};
+static String meta_string_96 = {7, "Vars {\n"};
+static String meta_string_97 = {3, "};\n"};
+static String meta_string_98 = {15, "if (_.valid) {\n"};
+static String meta_string_99 = {2, "}\n"};
+static String meta_string_100 = {29, "unsigned int nlookahead_pos;\n"};
+static String meta_string_101 = {29, "unsigned int nlookahead_pos;\n"};
+static String meta_string_102 = {35, "nlookahead_pos = parse_state->pos;\n"};
+static String meta_string_103 = {15, "if (_.valid) {\n"};
+static String meta_string_104 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_105 = {9, "} else {\n"};
+static String meta_string_106 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
+static String meta_string_107 = {2, "}\n"};
+static String meta_string_108 = {57, "meta_parse_state_backtrack(parse_state, nlookahead_pos);\n"};
+static String meta_string_109 = {28, "unsigned int lookahead_pos;\n"};
+static String meta_string_110 = {28, "unsigned int lookahead_pos;\n"};
+static String meta_string_111 = {34, "lookahead_pos = parse_state->pos;\n"};
+static String meta_string_112 = {15, "if (_.valid) {\n"};
+static String meta_string_113 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
+static String meta_string_114 = {9, "} else {\n"};
+static String meta_string_115 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_116 = {2, "}\n"};
+static String meta_string_117 = {56, "meta_parse_state_backtrack(parse_state, lookahead_pos);\n"};
+static String meta_string_118 = {11, "MetaAction "};
+static String meta_string_119 = {2, ";\n"};
+static String meta_string_120 = {9, "((struct "};
+static String meta_string_121 = {6, "Action"};
+static String meta_string_122 = {10, "Vars*)vars"};
+static String meta_string_123 = {3, ")->"};
+static String meta_string_124 = {6, " = _;\n"};
+static String meta_string_125 = {22, "List* star_variables;\n"};
+static String meta_string_126 = {22, "List* star_variables;\n"};
+static String meta_string_127 = {23, "unsigned int star_pos;\n"};
+static String meta_string_128 = {23, "unsigned int star_pos;\n"};
+static String meta_string_129 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_130 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_131 = {50, "star_variables = list_create(parse_state->arena);\n"};
+static String meta_string_132 = {35, "star_start_pos = parse_state->pos;\n"};
+static String meta_string_133 = {12, "while (1) {\n"};
+static String meta_string_134 = {29, "star_pos = parse_state->pos;\n"};
+static String meta_string_135 = {16, "if (!_.valid) {\n"};
+static String meta_string_136 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
+static String meta_string_137 = {7, "break;\n"};
+static String meta_string_138 = {2, "}\n"};
+static String meta_string_139 = {112, "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n"};
 static String meta_string_140 = {2, "}\n"};
-static String meta_string_141 = {112, "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n"};
-static String meta_string_142 = {2, "}\n"};
-static String meta_string_143 = {114, "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
-static String meta_string_144 = {23, "unsigned int star_pos;\n"};
-static String meta_string_145 = {23, "unsigned int star_pos;\n"};
-static String meta_string_146 = {29, "unsigned int star_start_pos;\n"};
-static String meta_string_147 = {29, "unsigned int star_start_pos;\n"};
-static String meta_string_148 = {35, "star_start_pos = parse_state->pos;\n"};
-static String meta_string_149 = {12, "while (1) {\n"};
-static String meta_string_150 = {29, "star_pos = parse_state->pos;\n"};
-static String meta_string_151 = {16, "if (!_.valid) {\n"};
-static String meta_string_152 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
-static String meta_string_153 = {7, "break;\n"};
-static String meta_string_154 = {2, "}\n"};
-static String meta_string_155 = {2, "}\n"};
-static String meta_string_156 = {97, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
-static String meta_string_157 = {1, ":"};
-static String meta_string_158 = {1, "*"};
-static String meta_string_159 = {1, "&"};
-static String meta_string_160 = {1, "!"};
-static String meta_string_161 = {1, "."};
-static String meta_string_162 = {1, "|"};
-static String meta_string_163 = {2, "->"};
-static String meta_string_164 = {1, "_"};
-static String meta_string_165 = {18, "bitpattern <<= 1;\n"};
-static String meta_string_166 = {15, "bitmask <<= 1;\n"};
-static String meta_string_167 = {14, "bitmask |= 1;\n"};
-static String meta_string_168 = {1, "0"};
-static String meta_string_169 = {1, "1"};
-static String meta_string_170 = {17, "bitpattern |= 1;\n"};
-static String meta_string_171 = {4, "_ = "};
-static String meta_string_172 = {5, "rule_"};
-static String meta_string_173 = {15, "(parse_state);\n"};
-static String meta_string_174 = {2, "0b"};
-static String meta_string_175 = {26, "unsigned char bitpattern;\n"};
-static String meta_string_176 = {26, "unsigned char bitpattern;\n"};
-static String meta_string_177 = {23, "unsigned char bitmask;\n"};
-static String meta_string_178 = {23, "unsigned char bitmask;\n"};
-static String meta_string_179 = {16, "bitpattern = 0;\n"};
-static String meta_string_180 = {13, "bitmask = 0;\n"};
-static String meta_string_181 = {162, "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n"};
-static String meta_string_182 = {23, "parse_state->pos += 1;\n"};
-static String meta_string_183 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
-static String meta_string_184 = {9, "} else {\n"};
-static String meta_string_185 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_186 = {2, "}\n"};
-static String meta_string_187 = {58, "if (parse_state->pos < parse_state->input_buffer->size) {\n"};
-static String meta_string_188 = {23, "parse_state->pos += 1;\n"};
-static String meta_string_189 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
-static String meta_string_190 = {9, "} else {\n"};
-static String meta_string_191 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_192 = {2, "}\n"};
-static String meta_string_193 = {14, "String* data;\n"};
-static String meta_string_194 = {14, "String* data;\n"};
-static String meta_string_195 = {14, "String slice;\n"};
-static String meta_string_196 = {14, "String slice;\n"};
-static String meta_string_197 = {7, "data = "};
-static String meta_string_198 = {2, ";\n"};
-static String meta_string_199 = {96, "string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);\n"};
-static String meta_string_200 = {102, "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {\n"};
-static String meta_string_201 = {32, "parse_state->pos += data->size;\n"};
-static String meta_string_202 = {110, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"};
-static String meta_string_203 = {9, "} else {\n"};
-static String meta_string_204 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_205 = {2, "}\n"};
-static String meta_string_206 = {1, "{"};
-static String meta_string_207 = {1, "}"};
-static String meta_string_208 = {5, "void "};
-static String meta_string_209 = {7, "action_"};
-static String meta_string_210 = {35, "(void* runtime, void* variables) {\n"};
-static String meta_string_211 = {2, "}\n"};
-static String meta_string_212 = {1, "\n"};
-static String meta_string_213 = {10, "void* vars"};
-static String meta_string_214 = {9, " = NULL;\n"};
-static String meta_string_215 = {4, "vars"};
-static String meta_string_216 = {49, " = arena_alloc(parse_state->arena, sizeof(struct "};
-static String meta_string_217 = {6, "Action"};
-static String meta_string_218 = {8, "Vars));\n"};
-static String meta_string_219 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
-static String meta_string_220 = {26, "return meta_action_create("};
-static String meta_string_221 = {7, "action_"};
-static String meta_string_222 = {6, ", vars"};
-static String meta_string_223 = {66, ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
-static String meta_string_224 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
-static String meta_string_225 = {102, "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
-static String meta_string_226 = {2, "(("};
-static String meta_string_227 = {17, "Runtime*)runtime)"};
-static String meta_string_228 = {9, "nonEmpty("};
-static String meta_string_229 = {6, ") -> {"};
-static String meta_string_230 = {1, "}"};
-static String meta_string_231 = {4, "if ("};
-static String meta_string_232 = {23, "->named_string_builder_"};
-static String meta_string_233 = {21, "->pre_first->next) {\n"};
-static String meta_string_234 = {2, "}\n"};
-static String meta_string_235 = {7, "unseen("};
-static String meta_string_236 = {6, ") -> {"};
-static String meta_string_237 = {1, "}"};
-static String meta_string_238 = {19, "MetaAction action;\n"};
-static String meta_string_239 = {19, "MetaAction action;\n"};
-static String meta_string_240 = {14, "String slice;\n"};
-static String meta_string_241 = {14, "String slice;\n"};
-static String meta_string_242 = {9, "action = "};
-static String meta_string_243 = {2, ";\n"};
-static String meta_string_244 = {69, "string_slice(action.input_buffer, action.start, action.end, &slice);\n"};
-static String meta_string_245 = {29, "if (!string_builder_contains("};
-static String meta_string_246 = {37, "->current_string_builder, &slice)) {\n"};
-static String meta_string_247 = {2, "}\n"};
-static String meta_string_248 = {7, "unique("};
-static String meta_string_249 = {1, ")"};
-static String meta_string_250 = {29, "if (!string_builder_contains("};
+static String meta_string_141 = {114, "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
+static String meta_string_142 = {23, "unsigned int star_pos;\n"};
+static String meta_string_143 = {23, "unsigned int star_pos;\n"};
+static String meta_string_144 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_145 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_146 = {35, "star_start_pos = parse_state->pos;\n"};
+static String meta_string_147 = {12, "while (1) {\n"};
+static String meta_string_148 = {29, "star_pos = parse_state->pos;\n"};
+static String meta_string_149 = {16, "if (!_.valid) {\n"};
+static String meta_string_150 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
+static String meta_string_151 = {7, "break;\n"};
+static String meta_string_152 = {2, "}\n"};
+static String meta_string_153 = {2, "}\n"};
+static String meta_string_154 = {97, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
+static String meta_string_155 = {1, ":"};
+static String meta_string_156 = {1, "*"};
+static String meta_string_157 = {1, "&"};
+static String meta_string_158 = {1, "!"};
+static String meta_string_159 = {1, "."};
+static String meta_string_160 = {1, "|"};
+static String meta_string_161 = {2, "->"};
+static String meta_string_162 = {1, "_"};
+static String meta_string_163 = {18, "bitpattern <<= 1;\n"};
+static String meta_string_164 = {15, "bitmask <<= 1;\n"};
+static String meta_string_165 = {14, "bitmask |= 1;\n"};
+static String meta_string_166 = {1, "0"};
+static String meta_string_167 = {1, "1"};
+static String meta_string_168 = {17, "bitpattern |= 1;\n"};
+static String meta_string_169 = {4, "_ = "};
+static String meta_string_170 = {15, "(parse_state);\n"};
+static String meta_string_171 = {2, "0b"};
+static String meta_string_172 = {26, "unsigned char bitpattern;\n"};
+static String meta_string_173 = {26, "unsigned char bitpattern;\n"};
+static String meta_string_174 = {23, "unsigned char bitmask;\n"};
+static String meta_string_175 = {23, "unsigned char bitmask;\n"};
+static String meta_string_176 = {16, "bitpattern = 0;\n"};
+static String meta_string_177 = {13, "bitmask = 0;\n"};
+static String meta_string_178 = {162, "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n"};
+static String meta_string_179 = {23, "parse_state->pos += 1;\n"};
+static String meta_string_180 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
+static String meta_string_181 = {9, "} else {\n"};
+static String meta_string_182 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_183 = {2, "}\n"};
+static String meta_string_184 = {58, "if (parse_state->pos < parse_state->input_buffer->size) {\n"};
+static String meta_string_185 = {23, "parse_state->pos += 1;\n"};
+static String meta_string_186 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
+static String meta_string_187 = {9, "} else {\n"};
+static String meta_string_188 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_189 = {2, "}\n"};
+static String meta_string_190 = {14, "String* data;\n"};
+static String meta_string_191 = {14, "String* data;\n"};
+static String meta_string_192 = {14, "String slice;\n"};
+static String meta_string_193 = {14, "String slice;\n"};
+static String meta_string_194 = {7, "data = "};
+static String meta_string_195 = {2, ";\n"};
+static String meta_string_196 = {96, "string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);\n"};
+static String meta_string_197 = {102, "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {\n"};
+static String meta_string_198 = {32, "parse_state->pos += data->size;\n"};
+static String meta_string_199 = {110, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"};
+static String meta_string_200 = {9, "} else {\n"};
+static String meta_string_201 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_202 = {2, "}\n"};
+static String meta_string_203 = {1, "{"};
+static String meta_string_204 = {1, "}"};
+static String meta_string_205 = {5, "void "};
+static String meta_string_206 = {7, "action_"};
+static String meta_string_207 = {35, "(void* runtime, void* variables) {\n"};
+static String meta_string_208 = {2, "}\n"};
+static String meta_string_209 = {1, "\n"};
+static String meta_string_210 = {10, "void* vars"};
+static String meta_string_211 = {9, " = NULL;\n"};
+static String meta_string_212 = {4, "vars"};
+static String meta_string_213 = {49, " = arena_alloc(parse_state->arena, sizeof(struct "};
+static String meta_string_214 = {6, "Action"};
+static String meta_string_215 = {8, "Vars));\n"};
+static String meta_string_216 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
+static String meta_string_217 = {26, "return meta_action_create("};
+static String meta_string_218 = {7, "action_"};
+static String meta_string_219 = {6, ", vars"};
+static String meta_string_220 = {66, ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
+static String meta_string_221 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
+static String meta_string_222 = {102, "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
+static String meta_string_223 = {2, "(("};
+static String meta_string_224 = {17, "Runtime*)runtime)"};
+static String meta_string_225 = {9, "nonEmpty("};
+static String meta_string_226 = {6, ") -> {"};
+static String meta_string_227 = {1, "}"};
+static String meta_string_228 = {4, "if ("};
+static String meta_string_229 = {23, "->named_string_builder_"};
+static String meta_string_230 = {21, "->pre_first->next) {\n"};
+static String meta_string_231 = {2, "}\n"};
+static String meta_string_232 = {7, "unseen("};
+static String meta_string_233 = {6, ") -> {"};
+static String meta_string_234 = {1, "}"};
+static String meta_string_235 = {19, "MetaAction action;\n"};
+static String meta_string_236 = {19, "MetaAction action;\n"};
+static String meta_string_237 = {14, "String slice;\n"};
+static String meta_string_238 = {14, "String slice;\n"};
+static String meta_string_239 = {9, "action = "};
+static String meta_string_240 = {2, ";\n"};
+static String meta_string_241 = {69, "string_slice(action.input_buffer, action.start, action.end, &slice);\n"};
+static String meta_string_242 = {29, "if (!string_builder_contains("};
+static String meta_string_243 = {37, "->current_string_builder, &slice)) {\n"};
+static String meta_string_244 = {2, "}\n"};
+static String meta_string_245 = {7, "unique("};
+static String meta_string_246 = {1, ")"};
+static String meta_string_247 = {29, "if (!string_builder_contains("};
+static String meta_string_248 = {26, "->current_string_builder, "};
+static String meta_string_249 = {5, ")) {\n"};
+static String meta_string_250 = {22, "string_builder_append("};
 static String meta_string_251 = {26, "->current_string_builder, "};
-static String meta_string_252 = {5, ")) {\n"};
-static String meta_string_253 = {22, "string_builder_append("};
-static String meta_string_254 = {26, "->current_string_builder, "};
-static String meta_string_255 = {9, "->arena, "};
-static String meta_string_256 = {12, ", 0, NULL);\n"};
-static String meta_string_257 = {2, "}\n"};
-static String meta_string_258 = {1, ">"};
-static String meta_string_259 = {1, "{"};
-static String meta_string_260 = {1, "}"};
-static String meta_string_261 = {36, "StringBuilder* last_string_builder;\n"};
-static String meta_string_262 = {36, "StringBuilder* last_string_builder;\n"};
-static String meta_string_263 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_264 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_265 = {22, "last_string_builder = "};
-static String meta_string_266 = {26, "->current_string_builder;\n"};
-static String meta_string_267 = {17, "string_builder = "};
-static String meta_string_268 = {23, "->named_string_builder_"};
-static String meta_string_269 = {2, ";\n"};
-static String meta_string_270 = {43, "->current_string_builder = string_builder;\n"};
-static String meta_string_271 = {48, "->current_string_builder = last_string_builder;\n"};
-static String meta_string_272 = {1, "<"};
-static String meta_string_273 = {22, "string_builder_append("};
-static String meta_string_274 = {26, "->current_string_builder, "};
-static String meta_string_275 = {18, "->arena, NULL, 0, "};
-static String meta_string_276 = {23, "->named_string_builder_"};
-static String meta_string_277 = {3, ");\n"};
-static String meta_string_278 = {1, "$"};
-static String meta_string_279 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_280 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_281 = {39, "string_builder = string_builder_create("};
-static String meta_string_282 = {10, "->arena);\n"};
-static String meta_string_283 = {23, "->named_string_builder_"};
-static String meta_string_284 = {19, " = string_builder;\n"};
-static String meta_string_285 = {22, "string_builder_append("};
-static String meta_string_286 = {26, "->current_string_builder, "};
-static String meta_string_287 = {29, "->arena, string_from_integer("};
-static String meta_string_288 = {9, "->arena, "};
-static String meta_string_289 = {13, "), 0, NULL);\n"};
-static String meta_string_290 = {17, "meta_action_run(&"};
-static String meta_string_291 = {11, ", runtime, "};
-static String meta_string_292 = {26, "->current_string_builder, "};
-static String meta_string_293 = {10, "->arena);\n"};
-static String meta_string_294 = {17, "void placeholder_"};
-static String meta_string_295 = {34, "(void* runtime, void* variables);\n"};
-static String meta_string_296 = {17, "void placeholder_"};
-static String meta_string_297 = {35, "(void* runtime, void* variables) {\n"};
-static String meta_string_298 = {2, "}\n"};
-static String meta_string_299 = {1, "\n"};
-static String meta_string_300 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_301 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_302 = {39, "string_builder = string_builder_create("};
-static String meta_string_303 = {10, "->arena);\n"};
-static String meta_string_304 = {24, "meta_placeholder_append("};
-static String meta_string_305 = {9, "->arena, "};
-static String meta_string_306 = {63, "->placeholders, string_builder, meta_action_create(placeholder_"};
-static String meta_string_307 = {27, ", variables, NULL, 0, 0));\n"};
+static String meta_string_252 = {9, "->arena, "};
+static String meta_string_253 = {12, ", 0, NULL);\n"};
+static String meta_string_254 = {2, "}\n"};
+static String meta_string_255 = {1, ">"};
+static String meta_string_256 = {1, "{"};
+static String meta_string_257 = {1, "}"};
+static String meta_string_258 = {36, "StringBuilder* last_string_builder;\n"};
+static String meta_string_259 = {36, "StringBuilder* last_string_builder;\n"};
+static String meta_string_260 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_261 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_262 = {22, "last_string_builder = "};
+static String meta_string_263 = {26, "->current_string_builder;\n"};
+static String meta_string_264 = {17, "string_builder = "};
+static String meta_string_265 = {23, "->named_string_builder_"};
+static String meta_string_266 = {2, ";\n"};
+static String meta_string_267 = {43, "->current_string_builder = string_builder;\n"};
+static String meta_string_268 = {48, "->current_string_builder = last_string_builder;\n"};
+static String meta_string_269 = {1, "<"};
+static String meta_string_270 = {22, "string_builder_append("};
+static String meta_string_271 = {26, "->current_string_builder, "};
+static String meta_string_272 = {18, "->arena, NULL, 0, "};
+static String meta_string_273 = {23, "->named_string_builder_"};
+static String meta_string_274 = {3, ");\n"};
+static String meta_string_275 = {1, "$"};
+static String meta_string_276 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_277 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_278 = {39, "string_builder = string_builder_create("};
+static String meta_string_279 = {10, "->arena);\n"};
+static String meta_string_280 = {23, "->named_string_builder_"};
+static String meta_string_281 = {19, " = string_builder;\n"};
+static String meta_string_282 = {22, "string_builder_append("};
+static String meta_string_283 = {26, "->current_string_builder, "};
+static String meta_string_284 = {29, "->arena, string_from_integer("};
+static String meta_string_285 = {9, "->arena, "};
+static String meta_string_286 = {13, "), 0, NULL);\n"};
+static String meta_string_287 = {17, "meta_action_run(&"};
+static String meta_string_288 = {11, ", runtime, "};
+static String meta_string_289 = {26, "->current_string_builder, "};
+static String meta_string_290 = {10, "->arena);\n"};
+static String meta_string_291 = {17, "void placeholder_"};
+static String meta_string_292 = {34, "(void* runtime, void* variables);\n"};
+static String meta_string_293 = {17, "void placeholder_"};
+static String meta_string_294 = {35, "(void* runtime, void* variables) {\n"};
+static String meta_string_295 = {2, "}\n"};
+static String meta_string_296 = {1, "\n"};
+static String meta_string_297 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_298 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_299 = {39, "string_builder = string_builder_create("};
+static String meta_string_300 = {10, "->arena);\n"};
+static String meta_string_301 = {24, "meta_placeholder_append("};
+static String meta_string_302 = {9, "->arena, "};
+static String meta_string_303 = {63, "->placeholders, string_builder, meta_action_create(placeholder_"};
+static String meta_string_304 = {27, ", variables, NULL, 0, 0));\n"};
+static String meta_string_305 = {22, "string_builder_append("};
+static String meta_string_306 = {26, "->current_string_builder, "};
+static String meta_string_307 = {35, "->arena, NULL, 0, string_builder);\n"};
 static String meta_string_308 = {22, "string_builder_append("};
 static String meta_string_309 = {26, "->current_string_builder, "};
-static String meta_string_310 = {35, "->arena, NULL, 0, string_builder);\n"};
-static String meta_string_311 = {22, "string_builder_append("};
-static String meta_string_312 = {26, "->current_string_builder, "};
-static String meta_string_313 = {9, "->arena, "};
-static String meta_string_314 = {12, ", 0, NULL);\n"};
-static String meta_string_315 = {1, "#"};
-static String meta_string_316 = {1, "("};
-static String meta_string_317 = {1, " "};
-static String meta_string_318 = {1, ")"};
+static String meta_string_310 = {9, "->arena, "};
+static String meta_string_311 = {12, ", 0, NULL);\n"};
+static String meta_string_312 = {1, "#"};
+static String meta_string_313 = {1, "("};
+static String meta_string_314 = {1, " "};
+static String meta_string_315 = {1, ")"};
+static String meta_string_316 = {4, "->W_"};
+static String meta_string_317 = {8, " = meta_"};
+static String meta_string_318 = {1, "("};
 static String meta_string_319 = {4, "->W_"};
-static String meta_string_320 = {8, " = meta_"};
-static String meta_string_321 = {1, "("};
-static String meta_string_322 = {4, "->W_"};
-static String meta_string_323 = {3, " ? "};
-static String meta_string_324 = {4, "->W_"};
-static String meta_string_325 = {6, " : 0, "};
-static String meta_string_326 = {3, ");\n"};
-static String meta_string_327 = {1, ">"};
-static String meta_string_328 = {1, "<"};
+static String meta_string_320 = {3, " ? "};
+static String meta_string_321 = {4, "->W_"};
+static String meta_string_322 = {6, " : 0, "};
+static String meta_string_323 = {3, ");\n"};
+static String meta_string_324 = {1, ">"};
+static String meta_string_325 = {1, "<"};
+static String meta_string_326 = {22, "string_builder_append("};
+static String meta_string_327 = {26, "->current_string_builder, "};
+static String meta_string_328 = {25, "->arena, NULL, 1, NULL);\n"};
 static String meta_string_329 = {22, "string_builder_append("};
 static String meta_string_330 = {26, "->current_string_builder, "};
-static String meta_string_331 = {25, "->arena, NULL, 1, NULL);\n"};
-static String meta_string_332 = {22, "string_builder_append("};
-static String meta_string_333 = {26, "->current_string_builder, "};
-static String meta_string_334 = {26, "->arena, NULL, -1, NULL);\n"};
-static String meta_string_335 = {36, "StringBuilder* named_string_builder_"};
-static String meta_string_336 = {2, ";\n"};
-static String meta_string_337 = {1, "0"};
-static String meta_string_338 = {1, "1"};
-static String meta_string_339 = {1, "2"};
-static String meta_string_340 = {1, "3"};
-static String meta_string_341 = {1, "4"};
-static String meta_string_342 = {1, "5"};
-static String meta_string_343 = {1, "6"};
-static String meta_string_344 = {1, "7"};
-static String meta_string_345 = {1, "8"};
-static String meta_string_346 = {1, "9"};
-static String meta_string_347 = {1, "{"};
-static String meta_string_348 = {1, "*"};
-static String meta_string_349 = {1, "}"};
-static String meta_string_350 = {7, "int i;\n"};
-static String meta_string_351 = {7, "int i;\n"};
-static String meta_string_352 = {14, "for (i=0; i < "};
-static String meta_string_353 = {9, "; i++) {\n"};
-static String meta_string_354 = {22, "string_builder_append("};
-static String meta_string_355 = {26, "->current_string_builder, "};
-static String meta_string_356 = {9, "->arena, "};
-static String meta_string_357 = {12, ", 0, NULL);\n"};
-static String meta_string_358 = {2, "}\n"};
-static String meta_string_359 = {1, "("};
-static String meta_string_360 = {4, "->W_"};
-static String meta_string_361 = {3, " ? "};
-static String meta_string_362 = {4, "->W_"};
-static String meta_string_363 = {5, " : 0)"};
-static String meta_string_364 = {1, "("};
-static String meta_string_365 = {1, "-"};
-static String meta_string_366 = {1, ")"};
-static String meta_string_367 = {2, "(("};
-static String meta_string_368 = {4, "->W_"};
-static String meta_string_369 = {3, " ? "};
-static String meta_string_370 = {4, "->W_"};
-static String meta_string_371 = {6, " : 0)-"};
-static String meta_string_372 = {1, ")"};
-static String meta_string_373 = {7, "number("};
-static String meta_string_374 = {1, ")"};
-static String meta_string_375 = {2, "(0"};
+static String meta_string_331 = {26, "->arena, NULL, -1, NULL);\n"};
+static String meta_string_332 = {36, "StringBuilder* named_string_builder_"};
+static String meta_string_333 = {2, ";\n"};
+static String meta_string_334 = {1, "0"};
+static String meta_string_335 = {1, "1"};
+static String meta_string_336 = {1, "2"};
+static String meta_string_337 = {1, "3"};
+static String meta_string_338 = {1, "4"};
+static String meta_string_339 = {1, "5"};
+static String meta_string_340 = {1, "6"};
+static String meta_string_341 = {1, "7"};
+static String meta_string_342 = {1, "8"};
+static String meta_string_343 = {1, "9"};
+static String meta_string_344 = {1, "{"};
+static String meta_string_345 = {1, "*"};
+static String meta_string_346 = {1, "}"};
+static String meta_string_347 = {7, "int i;\n"};
+static String meta_string_348 = {7, "int i;\n"};
+static String meta_string_349 = {14, "for (i=0; i < "};
+static String meta_string_350 = {9, "; i++) {\n"};
+static String meta_string_351 = {22, "string_builder_append("};
+static String meta_string_352 = {26, "->current_string_builder, "};
+static String meta_string_353 = {9, "->arena, "};
+static String meta_string_354 = {12, ", 0, NULL);\n"};
+static String meta_string_355 = {2, "}\n"};
+static String meta_string_356 = {1, "("};
+static String meta_string_357 = {4, "->W_"};
+static String meta_string_358 = {3, " ? "};
+static String meta_string_359 = {4, "->W_"};
+static String meta_string_360 = {5, " : 0)"};
+static String meta_string_361 = {1, "("};
+static String meta_string_362 = {1, "-"};
+static String meta_string_363 = {1, ")"};
+static String meta_string_364 = {2, "(("};
+static String meta_string_365 = {4, "->W_"};
+static String meta_string_366 = {3, " ? "};
+static String meta_string_367 = {4, "->W_"};
+static String meta_string_368 = {6, " : 0)-"};
+static String meta_string_369 = {1, ")"};
+static String meta_string_370 = {7, "number("};
+static String meta_string_371 = {1, ")"};
+static String meta_string_372 = {2, "(0"};
+static String meta_string_373 = {1, ")"};
+static String meta_string_374 = {25, "+(meta_action_first_byte("};
+static String meta_string_375 = {1, ")"};
 static String meta_string_376 = {1, ")"};
-static String meta_string_377 = {25, "+(meta_action_first_byte("};
-static String meta_string_378 = {1, ")"};
-static String meta_string_379 = {1, ")"};
-static String meta_string_380 = {2, "<<"};
-static String meta_string_381 = {1, "\""};
-static String meta_string_382 = {1, "\""};
-static String meta_string_383 = {14, "static String "};
-static String meta_string_384 = {7, "string_"};
-static String meta_string_385 = {4, " = {"};
-static String meta_string_386 = {3, ", \""};
-static String meta_string_387 = {4, "\"};\n"};
-static String meta_string_388 = {2, "(&"};
-static String meta_string_389 = {7, "string_"};
-static String meta_string_390 = {1, ")"};
-static String meta_string_391 = {1, "("};
-static String meta_string_392 = {1, ")"};
-static String meta_string_393 = {10, "(((struct "};
-static String meta_string_394 = {6, "Action"};
-static String meta_string_395 = {18, "Vars*)variables)->"};
-static String meta_string_396 = {1, ")"};
-static String meta_string_397 = {4, ".len"};
-static String meta_string_398 = {15, "meta_action_len"};
-static String meta_string_399 = {6, ".count"};
-static String meta_string_400 = {17, "meta_action_count"};
-static String meta_string_401 = {2, "W["};
-static String meta_string_402 = {1, "]"};
-static String meta_string_403 = {15, "unsigned int W_"};
-static String meta_string_404 = {2, ";\n"};
-static String meta_string_405 = {1, "\""};
-static String meta_string_406 = {1, "\'"};
-static String meta_string_407 = {1, "\'"};
-static String meta_string_408 = {14, "static String "};
-static String meta_string_409 = {7, "string_"};
-static String meta_string_410 = {4, " = {"};
-static String meta_string_411 = {3, ", \""};
-static String meta_string_412 = {4, "\"};\n"};
-static String meta_string_413 = {2, "(&"};
-static String meta_string_414 = {7, "string_"};
-static String meta_string_415 = {1, ")"};
-static String meta_string_416 = {1, "\""};
-static String meta_string_417 = {2, "\\\""};
-static String meta_string_418 = {1, "\'"};
-static String meta_string_419 = {1, "\\"};
-static String meta_string_420 = {1, "a"};
-static String meta_string_421 = {1, "b"};
-static String meta_string_422 = {1, "c"};
-static String meta_string_423 = {1, "d"};
-static String meta_string_424 = {1, "e"};
-static String meta_string_425 = {1, "f"};
-static String meta_string_426 = {1, "g"};
-static String meta_string_427 = {1, "h"};
-static String meta_string_428 = {1, "i"};
-static String meta_string_429 = {1, "j"};
-static String meta_string_430 = {1, "k"};
-static String meta_string_431 = {1, "l"};
-static String meta_string_432 = {1, "m"};
-static String meta_string_433 = {1, "n"};
-static String meta_string_434 = {1, "o"};
-static String meta_string_435 = {1, "p"};
-static String meta_string_436 = {1, "q"};
-static String meta_string_437 = {1, "r"};
-static String meta_string_438 = {1, "s"};
-static String meta_string_439 = {1, "t"};
-static String meta_string_440 = {1, "u"};
-static String meta_string_441 = {1, "v"};
-static String meta_string_442 = {1, "w"};
-static String meta_string_443 = {1, "x"};
-static String meta_string_444 = {1, "y"};
-static String meta_string_445 = {1, "z"};
-static String meta_string_446 = {1, "A"};
-static String meta_string_447 = {1, "B"};
-static String meta_string_448 = {1, "C"};
-static String meta_string_449 = {1, "D"};
-static String meta_string_450 = {1, "E"};
-static String meta_string_451 = {1, "F"};
-static String meta_string_452 = {1, "G"};
-static String meta_string_453 = {1, "H"};
-static String meta_string_454 = {1, "I"};
-static String meta_string_455 = {1, "J"};
-static String meta_string_456 = {1, "K"};
-static String meta_string_457 = {1, "L"};
-static String meta_string_458 = {1, "M"};
-static String meta_string_459 = {1, "N"};
-static String meta_string_460 = {1, "O"};
-static String meta_string_461 = {1, "P"};
-static String meta_string_462 = {1, "Q"};
-static String meta_string_463 = {1, "R"};
-static String meta_string_464 = {1, "S"};
-static String meta_string_465 = {1, "T"};
-static String meta_string_466 = {1, "U"};
-static String meta_string_467 = {1, "V"};
-static String meta_string_468 = {1, "W"};
-static String meta_string_469 = {1, "X"};
-static String meta_string_470 = {1, "Y"};
-static String meta_string_471 = {1, "Z"};
-static String meta_string_472 = {1, " "};
-static String meta_string_473 = {1, "\n"};
+static String meta_string_377 = {2, "<<"};
+static String meta_string_378 = {1, "\""};
+static String meta_string_379 = {1, "\""};
+static String meta_string_380 = {14, "static String "};
+static String meta_string_381 = {7, "string_"};
+static String meta_string_382 = {4, " = {"};
+static String meta_string_383 = {3, ", \""};
+static String meta_string_384 = {4, "\"};\n"};
+static String meta_string_385 = {2, "(&"};
+static String meta_string_386 = {7, "string_"};
+static String meta_string_387 = {1, ")"};
+static String meta_string_388 = {1, "("};
+static String meta_string_389 = {1, ")"};
+static String meta_string_390 = {10, "(((struct "};
+static String meta_string_391 = {6, "Action"};
+static String meta_string_392 = {18, "Vars*)variables)->"};
+static String meta_string_393 = {1, ")"};
+static String meta_string_394 = {4, ".len"};
+static String meta_string_395 = {15, "meta_action_len"};
+static String meta_string_396 = {6, ".count"};
+static String meta_string_397 = {17, "meta_action_count"};
+static String meta_string_398 = {2, "W["};
+static String meta_string_399 = {1, "]"};
+static String meta_string_400 = {15, "unsigned int W_"};
+static String meta_string_401 = {2, ";\n"};
+static String meta_string_402 = {1, "\""};
+static String meta_string_403 = {1, "\'"};
+static String meta_string_404 = {1, "\'"};
+static String meta_string_405 = {14, "static String "};
+static String meta_string_406 = {7, "string_"};
+static String meta_string_407 = {4, " = {"};
+static String meta_string_408 = {3, ", \""};
+static String meta_string_409 = {4, "\"};\n"};
+static String meta_string_410 = {2, "(&"};
+static String meta_string_411 = {7, "string_"};
+static String meta_string_412 = {1, ")"};
+static String meta_string_413 = {1, "\""};
+static String meta_string_414 = {2, "\\\""};
+static String meta_string_415 = {1, "\'"};
+static String meta_string_416 = {1, "\\"};
+static String meta_string_417 = {5, "rule_"};
+static String meta_string_418 = {1, "a"};
+static String meta_string_419 = {1, "b"};
+static String meta_string_420 = {1, "c"};
+static String meta_string_421 = {1, "d"};
+static String meta_string_422 = {1, "e"};
+static String meta_string_423 = {1, "f"};
+static String meta_string_424 = {1, "g"};
+static String meta_string_425 = {1, "h"};
+static String meta_string_426 = {1, "i"};
+static String meta_string_427 = {1, "j"};
+static String meta_string_428 = {1, "k"};
+static String meta_string_429 = {1, "l"};
+static String meta_string_430 = {1, "m"};
+static String meta_string_431 = {1, "n"};
+static String meta_string_432 = {1, "o"};
+static String meta_string_433 = {1, "p"};
+static String meta_string_434 = {1, "q"};
+static String meta_string_435 = {1, "r"};
+static String meta_string_436 = {1, "s"};
+static String meta_string_437 = {1, "t"};
+static String meta_string_438 = {1, "u"};
+static String meta_string_439 = {1, "v"};
+static String meta_string_440 = {1, "w"};
+static String meta_string_441 = {1, "x"};
+static String meta_string_442 = {1, "y"};
+static String meta_string_443 = {1, "z"};
+static String meta_string_444 = {1, "A"};
+static String meta_string_445 = {1, "B"};
+static String meta_string_446 = {1, "C"};
+static String meta_string_447 = {1, "D"};
+static String meta_string_448 = {1, "E"};
+static String meta_string_449 = {1, "F"};
+static String meta_string_450 = {1, "G"};
+static String meta_string_451 = {1, "H"};
+static String meta_string_452 = {1, "I"};
+static String meta_string_453 = {1, "J"};
+static String meta_string_454 = {1, "K"};
+static String meta_string_455 = {1, "L"};
+static String meta_string_456 = {1, "M"};
+static String meta_string_457 = {1, "N"};
+static String meta_string_458 = {1, "O"};
+static String meta_string_459 = {1, "P"};
+static String meta_string_460 = {1, "Q"};
+static String meta_string_461 = {1, "R"};
+static String meta_string_462 = {1, "S"};
+static String meta_string_463 = {1, "T"};
+static String meta_string_464 = {1, "U"};
+static String meta_string_465 = {1, "V"};
+static String meta_string_466 = {1, "W"};
+static String meta_string_467 = {1, "X"};
+static String meta_string_468 = {1, "Y"};
+static String meta_string_469 = {1, "Z"};
+static String meta_string_470 = {1, " "};
+static String meta_string_471 = {1, "\n"};
 MetaAction meta_rule_main(MetaParseState* parse_state);
 struct meta_Action1Vars {
     MetaAction xs;
@@ -733,6 +731,9 @@ struct meta_Action84Vars {
 MetaAction meta_rule_charStringInner(MetaParseState* parse_state);
 MetaAction meta_rule_stringEscape(MetaParseState* parse_state);
 MetaAction meta_rule_ruleName(MetaParseState* parse_state);
+struct meta_Action89Vars {
+    MetaAction x;
+};
 MetaAction meta_rule_variableName(MetaParseState* parse_state);
 MetaAction meta_rule_name(MetaParseState* parse_state);
 MetaAction meta_rule_char(MetaParseState* parse_state);
@@ -877,44 +878,40 @@ void meta_action_4(void* runtime, void* variables) {
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_75), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_76), 0, NULL);
     meta_action_run(&(((struct meta_Action4Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_77), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_76), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_77), 0, NULL);
+    meta_action_run(&(((struct meta_Action4Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_78), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_79), 0, NULL);
-    meta_action_run(&(((struct meta_Action4Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_80), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_81), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_82), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_83), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_84), 0, NULL);
     meta_action_run(&(((struct meta_Action4Vars*)variables)->h), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_85), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_83), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations);
     meta_action_run(&(((struct meta_Action4Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_86), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_84), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_87), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_88), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_85), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_86), 0, NULL);
 }
 
 void meta_action_5(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_91), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_89), 0, NULL);
     meta_action_run(&(((struct meta_Action5Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_6(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_92), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_90), 0, NULL);
 }
 
 void meta_action_8(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_93), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_91), 0, NULL);
     meta_action_run(&(((struct meta_Action8Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     meta_action_run(&(((struct meta_Action8Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
@@ -932,8 +929,8 @@ void meta_action_13(void* runtime, void* variables) {
     ((meta_Runtime*)runtime)->W_0 = meta_inc(((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0, 1);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_variables = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_94), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_95), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_92), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_93), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_orInit = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_orInit);
@@ -942,26 +939,26 @@ void meta_action_13(void* runtime, void* variables) {
         last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
         string_builder = ((meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
         ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_96), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_94), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_97), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_95), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_98), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_96), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_variables);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_99), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_97), 0, NULL);
         ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     }
 }
 
 void meta_action_14(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action14Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_100), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_98), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action14Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_101), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_99), 0, NULL);
 }
 
 void meta_action_15(void* runtime, void* variables) {
@@ -974,22 +971,22 @@ void meta_action_16(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_102))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_103), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_100))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_101), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_104), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_102), 0, NULL);
     meta_action_run(&(((struct meta_Action16Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_103), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_104), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_105), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_106), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_107), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_108), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_109), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_110), 0, NULL);
 }
 
 void meta_action_17(void* runtime, void* variables) {
@@ -998,22 +995,22 @@ void meta_action_17(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_111))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_112), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_109))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_110), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_113), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_111), 0, NULL);
     meta_action_run(&(((struct meta_Action17Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_112), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_113), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_114), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_115), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_116), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_117), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_118), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_119), 0, NULL);
 }
 
 void meta_action_18(void* runtime, void* variables) {
@@ -1027,19 +1024,19 @@ void meta_action_19(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_variables;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_120), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_118), 0, NULL);
     meta_action_run(&(((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_121), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_119), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_122), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_120), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_123), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_121), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_124), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_122), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_125), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_123), 0, NULL);
     meta_action_run(&(((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_126), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_124), 0, NULL);
 }
 
 void meta_action_20(void* runtime, void* variables) {
@@ -1051,32 +1048,32 @@ void meta_action_21(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_125))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_126), 0, NULL);
+    }
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_127))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_128), 0, NULL);
     }
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_129))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_130), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_131))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_132), 0, NULL);
-    }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_131), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_132), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_133), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_134), 0, NULL);
+    meta_action_run(&(((struct meta_Action21Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_135), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_136), 0, NULL);
-    meta_action_run(&(((struct meta_Action21Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_137), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_138), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_139), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_140), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_141), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_142), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_143), 0, NULL);
 }
 
 void meta_action_22(void* runtime, void* variables) {
@@ -1085,27 +1082,27 @@ void meta_action_22(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_142))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_143), 0, NULL);
+    }
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_144))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_145), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_146))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_147), 0, NULL);
-    }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_146), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_147), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_148), 0, NULL);
+    meta_action_run(&(((struct meta_Action22Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_149), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_150), 0, NULL);
-    meta_action_run(&(((struct meta_Action22Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_151), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_152), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_153), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_153), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_154), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_155), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_156), 0, NULL);
 }
 
 void meta_action_23(void* runtime, void* variables) {
@@ -1113,14 +1110,14 @@ void meta_action_23(void* runtime, void* variables) {
 }
 
 void meta_action_31(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_165), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_166), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_163), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_164), 0, NULL);
     meta_action_run(&(((struct meta_Action31Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_32(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action32Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_167), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_165), 0, NULL);
 }
 
 void meta_action_33(void* runtime, void* variables) {
@@ -1130,15 +1127,13 @@ void meta_action_34(void* runtime, void* variables) {
 }
 
 void meta_action_35(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_170), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_168), 0, NULL);
 }
 
 void meta_action_36(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_171), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_172), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_169), 0, NULL);
     meta_action_run(&(((struct meta_Action36Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_173), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_170), 0, NULL);
 }
 
 void meta_action_37(void* runtime, void* variables) {
@@ -1147,39 +1142,39 @@ void meta_action_37(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_175))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_176), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_172))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_173), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_177))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_178), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_174))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_175), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_176), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_177), 0, NULL);
+    meta_action_run(&(((struct meta_Action37Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_178), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_179), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_180), 0, NULL);
-    meta_action_run(&(((struct meta_Action37Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_181), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_182), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_183), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_183), 0, NULL);
+}
+
+void meta_action_38(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_184), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_185), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_186), 0, NULL);
-}
-
-void meta_action_38(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_187), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_188), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_189), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_190), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_191), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_192), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_189), 0, NULL);
 }
 
 void meta_action_39(void* runtime, void* variables) {
@@ -1188,27 +1183,27 @@ void meta_action_39(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_193))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_194), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_190))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_191), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_195))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_196), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_192))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_193), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_197), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_194), 0, NULL);
     meta_action_run(&(((struct meta_Action39Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_195), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_196), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_197), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_198), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_199), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_200), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_201), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_202), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_203), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_204), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_205), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_202), 0, NULL);
 }
 
 void meta_action_40(void* runtime, void* variables) {
@@ -1217,71 +1212,71 @@ void meta_action_40(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_208), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_205), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_209), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_206), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_210), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_207), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations);
     meta_action_run(&(((struct meta_Action40Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_211), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_212), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_208), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_209), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_213), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_210), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_214), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_211), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_orInit;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (((meta_Runtime*)runtime)->named_string_builder_variables->pre_first->next) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_215), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_212), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_216), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_213), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_217), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_214), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_218), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_215), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_219), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_220), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_216), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_217), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_221), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_218), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_222), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_219), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_223), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_220), 0, NULL);
 }
 
 void meta_action_41(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_224), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_225), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_221), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_222), 0, NULL);
 }
 
 void meta_action_42(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_226), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_223), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_227), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_224), 0, NULL);
 }
 
 void meta_action_43(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_231), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_228), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_232), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_229), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_233), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_230), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_234), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_231), 0, NULL);
 }
 
 void meta_action_44(void* runtime, void* variables) {
@@ -1290,42 +1285,42 @@ void meta_action_44(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_238))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_239), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_235))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_236), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_240))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_241), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_237))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_238), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_242), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_239), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_243), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_244), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_245), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_240), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_241), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_242), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_246), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_243), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_247), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_244), 0, NULL);
 }
 
 void meta_action_45(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_250), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_247), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_251), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_248), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_252), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_249), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_253), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_250), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_254), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_251), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_255), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_252), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_256), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_253), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_257), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_254), 0, NULL);
 }
 
 void meta_action_46(void* runtime, void* variables) {
@@ -1334,38 +1329,38 @@ void meta_action_46(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_261))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_262), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_258))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_259), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_263))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_264), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_260))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_261), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_265), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_262), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_266), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_267), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_263), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_264), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_268), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_265), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_269), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_266), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_270), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_267), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_271), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_268), 0, NULL);
 }
 
 void meta_action_47(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_273), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_270), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_274), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_271), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_275), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_272), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_276), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_273), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_277), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_274), 0, NULL);
 }
 
 void meta_action_48(void* runtime, void* variables) {
@@ -1374,39 +1369,39 @@ void meta_action_48(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_279))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_280), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_276))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_277), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_281), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_278), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_282), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_279), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_283), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_280), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_284), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_281), 0, NULL);
 }
 
 void meta_action_49(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_285), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_282), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_286), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_283), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_287), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_284), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_288), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_285), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_289), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_286), 0, NULL);
 }
 
 void meta_action_50(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_290), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_287), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_291), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_288), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_292), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_289), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_293), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_290), 0, NULL);
 }
 
 void meta_action_51(void* runtime, void* variables) {
@@ -1416,90 +1411,90 @@ void meta_action_51(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_294), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_291), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_295), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_292), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholders;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_296), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_293), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_297), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_294), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_placeholderVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_placeholderVars);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_298), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_299), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_295), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_296), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_300))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_301), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_297))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_298), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_299), 0, NULL);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_300), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_301), 0, NULL);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_302), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_303), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_304), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_305), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_306), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_307), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_308), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_309), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_310), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_307), 0, NULL);
 }
 
 void meta_action_52(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_311), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_308), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_312), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_309), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_313), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_310), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_314), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_311), 0, NULL);
 }
 
 void meta_action_53(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_319), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_316), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_320), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_317), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_321), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_318), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_322), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_319), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_323), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_320), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_324), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_321), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_325), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_322), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_326), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_323), 0, NULL);
 }
 
 void meta_action_54(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_329), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_326), 0, NULL);
     meta_action_run(&(((struct meta_Action54Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_330), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_327), 0, NULL);
     meta_action_run(&(((struct meta_Action54Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_331), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_328), 0, NULL);
     meta_action_run(&(((struct meta_Action54Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_332), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_329), 0, NULL);
     meta_action_run(&(((struct meta_Action54Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_333), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_330), 0, NULL);
     meta_action_run(&(((struct meta_Action54Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_334), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_331), 0, NULL);
 }
 
 void meta_action_55(void* runtime, void* variables) {
@@ -1513,9 +1508,9 @@ void meta_action_55(void* runtime, void* variables) {
     action = (((struct meta_Action55Vars*)variables)->x);
     string_slice(action.input_buffer, action.start, action.end, &slice);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, &slice)) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_335), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_332), 0, NULL);
         meta_action_run(&(((struct meta_Action55Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_336), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_333), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     meta_action_run(&(((struct meta_Action55Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
@@ -1531,49 +1526,49 @@ void meta_action_68(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholderVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_350))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_351), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_347))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_348), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_352), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_349), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_353), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_350), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_354), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_351), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_355), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_352), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_356), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_353), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_357), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_354), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_358), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_355), 0, NULL);
 }
 
 void meta_action_69(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_359), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_356), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_360), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_357), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_361), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_358), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_362), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_359), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_363), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_360), 0, NULL);
 }
 
 void meta_action_70(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_367), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_364), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_368), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_365), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_369), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_366), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_370), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_367), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_371), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_368), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_372), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_369), 0, NULL);
 }
 
 void meta_action_71(void* runtime, void* variables) {
@@ -1581,17 +1576,17 @@ void meta_action_71(void* runtime, void* variables) {
 }
 
 void meta_action_72(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_375), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_372), 0, NULL);
     meta_action_run(&(((struct meta_Action72Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_376), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_373), 0, NULL);
 }
 
 void meta_action_73(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_377), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_374), 0, NULL);
     meta_action_run(&(((struct meta_Action73Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_378), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_375), 0, NULL);
     meta_action_run(&(((struct meta_Action73Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_379), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_376), 0, NULL);
 }
 
 void meta_action_75(void* runtime, void* variables) {
@@ -1604,46 +1599,46 @@ void meta_action_76(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_383), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_380), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_384), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_381), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_385), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_382), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, meta_action_count((((struct meta_Action76Vars*)variables)->xs))), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_386), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_383), 0, NULL);
     meta_action_run(&(((struct meta_Action76Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_387), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_384), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_388), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_385), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_389), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_386), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_390), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_387), 0, NULL);
 }
 
 void meta_action_77(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action77Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_391), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_388), 0, NULL);
     meta_action_run(&(((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_392), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_389), 0, NULL);
 }
 
 void meta_action_78(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_393), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_390), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_394), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_391), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_395), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_392), 0, NULL);
     meta_action_run(&(((struct meta_Action78Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_396), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_393), 0, NULL);
 }
 
 void meta_action_79(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_398), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_395), 0, NULL);
 }
 
 void meta_action_80(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_400), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_397), 0, NULL);
 }
 
 void meta_action_81(void* runtime, void* variables) {
@@ -1657,9 +1652,9 @@ void meta_action_81(void* runtime, void* variables) {
     action = (((struct meta_Action81Vars*)variables)->x);
     string_slice(action.input_buffer, action.start, action.end, &slice);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, &slice)) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_403), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_400), 0, NULL);
         meta_action_run(&(((struct meta_Action81Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_404), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_401), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     meta_action_run(&(((struct meta_Action81Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
@@ -1672,25 +1667,31 @@ void meta_action_84(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_408), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_405), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_409), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_406), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_410), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_407), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, meta_action_count((((struct meta_Action84Vars*)variables)->xs))), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_411), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_408), 0, NULL);
     meta_action_run(&(((struct meta_Action84Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_412), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_409), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_413), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_410), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_414), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_411), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_415), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_412), 0, NULL);
 }
 
 void meta_action_86(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_414), 0, NULL);
+}
+
+void meta_action_89(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_417), 0, NULL);
+    meta_action_run(&(((struct meta_Action89Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 MetaAction meta_rule_main(MetaParseState* parse_state) {
@@ -1887,7 +1888,7 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars5 = arena_alloc(parse_state->arena, sizeof(struct meta_Action5Vars));
-    data = (&meta_string_89);
+    data = (&meta_string_87);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -1899,7 +1900,7 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
         _ = meta_rule_metaName(parse_state);
         ((struct meta_Action5Vars*)vars5)->x = _;
         if (_.valid) {
-            data = (&meta_string_90);
+            data = (&meta_string_88);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -2235,7 +2236,7 @@ MetaAction meta_rule_opBind(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_157);
+    data = (&meta_string_155);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2260,7 +2261,7 @@ MetaAction meta_rule_opStar(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_158);
+    data = (&meta_string_156);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2285,7 +2286,7 @@ MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_159);
+    data = (&meta_string_157);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2310,7 +2311,7 @@ MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_160);
+    data = (&meta_string_158);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2335,7 +2336,7 @@ MetaAction meta_rule_opAny(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_161);
+    data = (&meta_string_159);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2360,7 +2361,7 @@ MetaAction meta_rule_opOr(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_162);
+    data = (&meta_string_160);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2385,7 +2386,7 @@ MetaAction meta_rule_opAction(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_163);
+    data = (&meta_string_161);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2417,7 +2418,7 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = (&meta_string_164);
+        data = (&meta_string_162);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2481,7 +2482,7 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_168);
+    data = (&meta_string_166);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2495,7 +2496,7 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_169);
+    data = (&meta_string_167);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2537,7 +2538,7 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
-    data = (&meta_string_174);
+    data = (&meta_string_171);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2605,7 +2606,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
         if (_.valid) {
             _ = meta_rule_space(parse_state);
             if (_.valid) {
-                data = (&meta_string_206);
+                data = (&meta_string_203);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -2630,7 +2631,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_207);
+                            data = (&meta_string_204);
                             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
@@ -2713,7 +2714,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_228);
+        data = (&meta_string_225);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2725,7 +2726,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_stringBuilderName(parse_state);
             ((struct meta_Action43Vars*)vars43)->x = _;
             if (_.valid) {
-                data = (&meta_string_229);
+                data = (&meta_string_226);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -2750,7 +2751,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_230);
+                            data = (&meta_string_227);
                             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
@@ -2777,7 +2778,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_235);
+        data = (&meta_string_232);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2789,7 +2790,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_nameAsActionLookup(parse_state);
             ((struct meta_Action44Vars*)vars44)->x = _;
             if (_.valid) {
-                data = (&meta_string_236);
+                data = (&meta_string_233);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -2814,7 +2815,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_237);
+                            data = (&meta_string_234);
                             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
@@ -2841,7 +2842,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_248);
+        data = (&meta_string_245);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2853,7 +2854,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_string(parse_state);
             ((struct meta_Action45Vars*)vars45)->x = _;
             if (_.valid) {
-                data = (&meta_string_249);
+                data = (&meta_string_246);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -2877,7 +2878,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_258);
+        data = (&meta_string_255);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2891,7 +2892,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = (&meta_string_259);
+                    data = (&meta_string_256);
                     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
@@ -2916,7 +2917,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                         if (_.valid) {
                             _ = meta_rule_space(parse_state);
                             if (_.valid) {
-                                data = (&meta_string_260);
+                                data = (&meta_string_257);
                                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                     parse_state->pos += data->size;
@@ -2944,7 +2945,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_272);
+        data = (&meta_string_269);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2970,7 +2971,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars48 = arena_alloc(parse_state->arena, sizeof(struct meta_Action48Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_278);
+        data = (&meta_string_275);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -3060,7 +3061,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_315);
+        data = (&meta_string_312);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -3072,7 +3073,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_name(parse_state);
             ((struct meta_Action53Vars*)vars53)->x = _;
             if (_.valid) {
-                data = (&meta_string_316);
+                data = (&meta_string_313);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -3084,7 +3085,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     _ = meta_rule_wvar(parse_state);
                     ((struct meta_Action53Vars*)vars53)->y = _;
                     if (_.valid) {
-                        data = (&meta_string_317);
+                        data = (&meta_string_314);
                         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                             parse_state->pos += data->size;
@@ -3096,7 +3097,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                             _ = meta_rule_actionPrimitiveExpression(parse_state);
                             ((struct meta_Action53Vars*)vars53)->z = _;
                             if (_.valid) {
-                                data = (&meta_string_318);
+                                data = (&meta_string_315);
                                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                     parse_state->pos += data->size;
@@ -3124,7 +3125,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     vars54 = arena_alloc(parse_state->arena, sizeof(struct meta_Action54Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_327);
+        data = (&meta_string_324);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -3149,7 +3150,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = (&meta_string_328);
+                    data = (&meta_string_325);
                     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
@@ -3227,7 +3228,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_337);
+    data = (&meta_string_334);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3241,7 +3242,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_338);
+    data = (&meta_string_335);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3255,7 +3256,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_339);
+    data = (&meta_string_336);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3269,7 +3270,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_340);
+    data = (&meta_string_337);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3283,7 +3284,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_341);
+    data = (&meta_string_338);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3297,7 +3298,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_342);
+    data = (&meta_string_339);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3311,7 +3312,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_343);
+    data = (&meta_string_340);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3325,7 +3326,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_344);
+    data = (&meta_string_341);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3339,7 +3340,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_345);
+    data = (&meta_string_342);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3353,7 +3354,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_346);
+    data = (&meta_string_343);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3380,7 +3381,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars68 = arena_alloc(parse_state->arena, sizeof(struct meta_Action68Vars));
-    data = (&meta_string_347);
+    data = (&meta_string_344);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3394,7 +3395,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
             _ = meta_rule_string(parse_state);
             ((struct meta_Action68Vars*)vars68)->x = _;
             if (_.valid) {
-                data = (&meta_string_348);
+                data = (&meta_string_345);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -3408,7 +3409,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_349);
+                            data = (&meta_string_346);
                             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
@@ -3464,7 +3465,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars70 = arena_alloc(parse_state->arena, sizeof(struct meta_Action70Vars));
-    data = (&meta_string_364);
+    data = (&meta_string_361);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3476,7 +3477,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
         _ = meta_rule_wvar(parse_state);
         ((struct meta_Action70Vars*)vars70)->x = _;
         if (_.valid) {
-            data = (&meta_string_365);
+            data = (&meta_string_362);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3488,7 +3489,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
                 _ = meta_rule_dotname(parse_state);
                 ((struct meta_Action70Vars*)vars70)->y = _;
                 if (_.valid) {
-                    data = (&meta_string_366);
+                    data = (&meta_string_363);
                     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
@@ -3520,7 +3521,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars72 = arena_alloc(parse_state->arena, sizeof(struct meta_Action72Vars));
-    data = (&meta_string_373);
+    data = (&meta_string_370);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3543,7 +3544,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         ((struct meta_Action72Vars*)vars72)->xs = _;
         if (_.valid) {
-            data = (&meta_string_374);
+            data = (&meta_string_371);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3597,7 +3598,7 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_380);
+    data = (&meta_string_377);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3634,7 +3635,7 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars76 = arena_alloc(parse_state->arena, sizeof(struct meta_Action76Vars));
-    data = (&meta_string_381);
+    data = (&meta_string_378);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3657,7 +3658,7 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         ((struct meta_Action76Vars*)vars76)->xs = _;
         if (_.valid) {
-            data = (&meta_string_382);
+            data = (&meta_string_379);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3733,7 +3734,7 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_397);
+    data = (&meta_string_394);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3757,7 +3758,7 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_399);
+    data = (&meta_string_396);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3794,7 +3795,7 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars81 = arena_alloc(parse_state->arena, sizeof(struct meta_Action81Vars));
-    data = (&meta_string_401);
+    data = (&meta_string_398);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3811,7 +3812,7 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
         }
         ((struct meta_Action81Vars*)vars81)->x = _;
         if (_.valid) {
-            data = (&meta_string_402);
+            data = (&meta_string_399);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3847,7 +3848,7 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = (&meta_string_405);
+    data = (&meta_string_402);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3891,7 +3892,7 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     vars84 = arena_alloc(parse_state->arena, sizeof(struct meta_Action84Vars));
-    data = (&meta_string_406);
+    data = (&meta_string_403);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3914,7 +3915,7 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         ((struct meta_Action84Vars*)vars84)->xs = _;
         if (_.valid) {
-            data = (&meta_string_407);
+            data = (&meta_string_404);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3950,7 +3951,7 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_416);
+    data = (&meta_string_413);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3965,7 +3966,7 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = (&meta_string_418);
+    data = (&meta_string_415);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4004,7 +4005,7 @@ MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_419);
+    data = (&meta_string_416);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4032,13 +4033,16 @@ MetaAction meta_rule_ruleName(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_RuleName;
+    void* vars89 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
+    vars89 = arena_alloc(parse_state->arena, sizeof(struct meta_Action89Vars));
     _ = meta_rule_name(parse_state);
+    ((struct meta_Action89Vars*)vars89)->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_89, vars89, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -4122,6 +4126,34 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
+    data = (&meta_string_418);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
+        parse_state->pos += data->size;
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = meta_action_create_invalid();
+    }
+    if (_.valid) {
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
+    action_start_pos = parse_state->pos;
+    data = (&meta_string_419);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
+        parse_state->pos += data->size;
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = meta_action_create_invalid();
+    }
+    if (_.valid) {
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
+    action_start_pos = parse_state->pos;
     data = (&meta_string_420);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
@@ -4456,6 +4488,17 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    return meta_action_create_invalid();
+}
+
+MetaAction meta_rule_upper(MetaParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    MetaAction _;
+    MetaHighlight highlight = MetaHighlight_None;
+    String* data;
+    String slice;
+    or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = (&meta_string_444);
@@ -4484,17 +4527,6 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    return meta_action_create_invalid();
-}
-
-MetaAction meta_rule_upper(MetaParseState* parse_state) {
-    unsigned int or_backtrack_pos;
-    unsigned int action_start_pos;
-    MetaAction _;
-    MetaHighlight highlight = MetaHighlight_None;
-    String* data;
-    String slice;
-    or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = (&meta_string_446);
@@ -4831,34 +4863,6 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
-    action_start_pos = parse_state->pos;
-    data = (&meta_string_470);
-    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
-        parse_state->pos += data->size;
-        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = meta_action_create_invalid();
-    }
-    if (_.valid) {
-        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
-    action_start_pos = parse_state->pos;
-    data = (&meta_string_471);
-    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
-        parse_state->pos += data->size;
-        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = meta_action_create_invalid();
-    }
-    if (_.valid) {
-        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
     return meta_action_create_invalid();
 }
 
@@ -4929,7 +4933,7 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_472);
+    data = (&meta_string_470);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4943,7 +4947,7 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_473);
+    data = (&meta_string_471);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 5d97f71..3acb370 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -90,9 +90,9 @@ file = rule*:xs space !. -> {
 
 rule = space ruleName:x highlight:h space '=' space ors:y space ';' -> {
     >fileDeclarations {
-        "MetaAction " <prefix "rule_" x "(MetaParseState* parse_state);\n"
+        "MetaAction " x "(MetaParseState* parse_state);\n"
     }
-    "MetaAction " <prefix "rule_" x "(MetaParseState* parse_state) {\n" >
+    "MetaAction " x "(MetaParseState* parse_state) {\n" >
         "unsigned int or_backtrack_pos;\n"
         "unsigned int action_start_pos;\n"
         "MetaAction _;\n"
@@ -262,7 +262,7 @@ bit =
 
 matchExprPrimitive =
     | ruleName:x       -> {
-        "_ = " <prefix "rule_" x "(parse_state);\n"
+        "_ = " x "(parse_state);\n"
     }
     | '0b' sepBit*:xs -> {
         >ruleDeclarations {
@@ -524,7 +524,7 @@ charStringInner =
 
 stringEscape[Escape] = '\\' .;
 
-ruleName[RuleName] = name;
+ruleName[RuleName] = name:x -> { <prefix "rule_" x };
 variableName[VariableName] = name;
 
 name = char char*;

commit 57276c0e80d19ac0538252773882c601ca6a5325
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 24 21:43:18 2025 +0100

    Better names for string builders

diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index 1abbc7d..f5c61e6 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -11,24 +11,23 @@
 
 typedef struct meta_runtime {
     StringBuilder* main_string_builder;
+    StringBuilder* current_string_builder;
+    MetaPlaceholders* placeholders;
+    Arena* arena;
     StringBuilder* named_string_builder_prefix;
-    StringBuilder* named_string_builder_namedStringBuilders;
-    StringBuilder* named_string_builder_namedWs;
+    StringBuilder* named_string_builder_runtimeStruct;
     StringBuilder* named_string_builder_symbols;
-    StringBuilder* named_string_builder_definitions;
+    StringBuilder* named_string_builder_fileDeclarations;
     StringBuilder* named_string_builder_actions;
     StringBuilder* named_string_builder_placeholders;
-    StringBuilder* named_string_builder_ruleVars;
+    StringBuilder* named_string_builder_ruleDeclarations;
+    unsigned int W_0;
     StringBuilder* named_string_builder_variables;
     StringBuilder* named_string_builder_orInit;
-    StringBuilder* named_string_builder_actionVars;
-    StringBuilder* named_string_builder_placeholderVars;
-    StringBuilder* current_string_builder;
-    unsigned int W_0;
+    StringBuilder* named_string_builder_actionDeclarations;
     unsigned int W_1;
+    StringBuilder* named_string_builder_placeholderVars;
     unsigned int W_2;
-    MetaPlaceholders* placeholders;
-    Arena* arena;
 } meta_Runtime;
 
 meta_Runtime* meta_create_runtime(Arena* arena) {
@@ -780,15 +779,12 @@ void meta_action_3(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_15), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_16), 0, NULL);
-    string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
-    ((meta_Runtime*)runtime)->named_string_builder_namedStringBuilders = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_namedStringBuilders);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_17), 0, NULL);
-    string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
-    ((meta_Runtime*)runtime)->named_string_builder_namedWs = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_namedWs);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_18), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_19), 0, NULL);
+    string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
+    ((meta_Runtime*)runtime)->named_string_builder_runtimeStruct = string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_runtimeStruct);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_20), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
@@ -815,8 +811,8 @@ void meta_action_3(void* runtime, void* variables) {
     ((meta_Runtime*)runtime)->named_string_builder_symbols = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_symbols);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
-    ((meta_Runtime*)runtime)->named_string_builder_definitions = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_definitions);
+    ((meta_Runtime*)runtime)->named_string_builder_fileDeclarations = string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_fileDeclarations);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_34), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_actions = string_builder;
@@ -878,7 +874,7 @@ void meta_action_4(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_75), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
@@ -899,8 +895,8 @@ void meta_action_4(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action4Vars*)variables)->h), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_85), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
-    ((meta_Runtime*)runtime)->named_string_builder_ruleVars = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_ruleVars);
+    ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations = string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations);
     meta_action_run(&(((struct meta_Action4Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_86), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
@@ -944,7 +940,7 @@ void meta_action_13(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action13Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     if (((meta_Runtime*)runtime)->named_string_builder_variables->pre_first->next) {
         last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-        string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
+        string_builder = ((meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
         ((meta_Runtime*)runtime)->current_string_builder = string_builder;
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_96), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
@@ -976,7 +972,7 @@ void meta_action_16(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_102))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_103), 0, NULL);
@@ -1000,7 +996,7 @@ void meta_action_17(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_111))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_112), 0, NULL);
@@ -1053,7 +1049,7 @@ void meta_action_21(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_127))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_128), 0, NULL);
@@ -1087,7 +1083,7 @@ void meta_action_22(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_144))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_145), 0, NULL);
@@ -1149,7 +1145,7 @@ void meta_action_37(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_175))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_176), 0, NULL);
@@ -1190,7 +1186,7 @@ void meta_action_39(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_193))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_194), 0, NULL);
@@ -1228,15 +1224,15 @@ void meta_action_40(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_210), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
-    ((meta_Runtime*)runtime)->named_string_builder_actionVars = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_actionVars);
+    ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations = string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations);
     meta_action_run(&(((struct meta_Action40Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_211), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_212), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_213), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
@@ -1292,7 +1288,7 @@ void meta_action_44(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_238))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_239), 0, NULL);
@@ -1336,7 +1332,7 @@ void meta_action_46(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_261))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_262), 0, NULL);
@@ -1376,7 +1372,7 @@ void meta_action_48(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_279))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_280), 0, NULL);
@@ -1418,7 +1414,7 @@ void meta_action_51(void* runtime, void* variables) {
     StringBuilder* string_builder;
     ((meta_Runtime*)runtime)->W_1 = meta_inc(((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0, 1);
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_294), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
@@ -1440,7 +1436,7 @@ void meta_action_51(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_299), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_300))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_301), 0, NULL);
@@ -1512,7 +1508,7 @@ void meta_action_55(void* runtime, void* variables) {
     MetaAction action;
     String slice;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_namedStringBuilders;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_runtimeStruct;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     action = (((struct meta_Action55Vars*)variables)->x);
     string_slice(action.input_buffer, action.start, action.end, &slice);
@@ -1656,7 +1652,7 @@ void meta_action_81(void* runtime, void* variables) {
     MetaAction action;
     String slice;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_namedWs;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_runtimeStruct;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     action = (((struct meta_Action81Vars*)variables)->x);
     string_slice(action.input_buffer, action.start, action.end, &slice);
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 9037f22..5d97f71 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -24,13 +24,11 @@ file = rule*:xs space !. -> {
     "\n"
     "typedef struct " <prefix "runtime {\n" >
         "StringBuilder* main_string_builder;\n"
-        $namedStringBuilders
-        <namedStringBuilders
         "StringBuilder* current_string_builder;\n"
-        $namedWs
-        <namedWs
         "MetaPlaceholders* placeholders;\n"
         "Arena* arena;\n"
+        $runtimeStruct
+        <runtimeStruct
     < "} " <prefix "Runtime;\n"
     "\n"
     <prefix "Runtime* " <prefix "create_runtime(Arena* arena) {\n" >
@@ -44,8 +42,8 @@ file = rule*:xs space !. -> {
     "\n"
     $symbols
     <symbols
-    $definitions
-    <definitions
+    $fileDeclarations
+    <fileDeclarations
     "\n"
     $actions
     <actions
@@ -91,7 +89,7 @@ file = rule*:xs space !. -> {
 };
 
 rule = space ruleName:x highlight:h space '=' space ors:y space ';' -> {
-    >definitions {
+    >fileDeclarations {
         "MetaAction " <prefix "rule_" x "(MetaParseState* parse_state);\n"
     }
     "MetaAction " <prefix "rule_" x "(MetaParseState* parse_state) {\n" >
@@ -99,8 +97,8 @@ rule = space ruleName:x highlight:h space '=' space ors:y space ';' -> {
         "unsigned int action_start_pos;\n"
         "MetaAction _;\n"
         "MetaHighlight highlight = " h ";\n"
-        $ruleVars
-        <ruleVars
+        $ruleDeclarations
+        <ruleDeclarations
         y
         "return meta_action_create_invalid();\n"
     < "}\n"
@@ -139,7 +137,7 @@ orcase = matchAnd:x -> {
     <orInit
     x
     nonEmpty(variables) -> {
-        >definitions {
+        >fileDeclarations {
             "struct " <prefix "Action" W[0] "Vars {\n" >
                 <variables
             < "};\n"
@@ -159,7 +157,7 @@ matchAnd =
 
 matchExpr =
     | opNegativeLookahead matchExprPrimitive:x -> {
-        >ruleVars {
+        >ruleDeclarations {
             unique("unsigned int nlookahead_pos;\n")
         }
         "nlookahead_pos = parse_state->pos;\n"
@@ -172,7 +170,7 @@ matchExpr =
         "meta_parse_state_backtrack(parse_state, nlookahead_pos);\n"
     }
     | opLookahead matchExprPrimitive:x -> {
-        >ruleVars {
+        >ruleDeclarations {
             unique("unsigned int lookahead_pos;\n")
         }
         "lookahead_pos = parse_state->pos;\n"
@@ -199,7 +197,7 @@ matchAssign =
 
 matchExprRepeat =
     | matchExprPrimitive:x opStar &opBind -> {
-        >ruleVars {
+        >ruleDeclarations {
             unique("List* star_variables;\n")
             unique("unsigned int star_pos;\n")
             unique("unsigned int star_start_pos;\n")
@@ -218,7 +216,7 @@ matchExprRepeat =
         "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"
     }
     | matchExprPrimitive:x opStar -> {
-        >ruleVars {
+        >ruleDeclarations {
             unique("unsigned int star_pos;\n")
             unique("unsigned int star_start_pos;\n")
         }
@@ -267,7 +265,7 @@ matchExprPrimitive =
         "_ = " <prefix "rule_" x "(parse_state);\n"
     }
     | '0b' sepBit*:xs -> {
-        >ruleVars {
+        >ruleDeclarations {
             unique("unsigned char bitpattern;\n")
             unique("unsigned char bitmask;\n")
         }
@@ -290,7 +288,7 @@ matchExprPrimitive =
         < "}\n"
     }
     | charString:x -> {
-        >ruleVars {
+        >ruleDeclarations {
             unique("String* data;\n")
             unique("String slice;\n")
         }
@@ -309,13 +307,13 @@ action =
     | space opAction space '{' actionexpr*:xs space '}' -> {
         >actions {
             "void " <prefix "action_" W[0] "(void* runtime, void* variables) {\n" >
-                $actionVars
-                <actionVars
+                $actionDeclarations
+                <actionDeclarations
                 xs
             < "}\n"
             "\n"
         }
-        >ruleVars {
+        >ruleDeclarations {
             "void* vars" W[0] " = NULL;\n"
         }
         >orInit {
@@ -341,7 +339,7 @@ actionexpr =
         < "}\n"
     }
     | space 'unseen(' nameAsActionLookup:x ') -> {' actionexpr*:ys space '}' genRuntime:runtime -> {
-        >actionVars {
+        >actionDeclarations {
             unique("MetaAction action;\n")
             unique("String slice;\n")
         }
@@ -357,7 +355,7 @@ actionexpr =
         < "}\n"
     }
     | space '>' stringBuilderName:x space '{' actionexpr*:ys space '}' genRuntime:runtime -> {
-        >actionVars {
+        >actionDeclarations {
             unique("StringBuilder* last_string_builder;\n")
             unique("StringBuilder* string_builder;\n")
         }
@@ -371,7 +369,7 @@ actionexpr =
         "string_builder_append(" runtime "->current_string_builder, " runtime "->arena, NULL, 0, " runtime "->named_string_builder_" x ");\n"
     }
     | space '$' stringBuilderName:x genRuntime:runtime -> {
-        >actionVars {
+        >actionDeclarations {
             unique("StringBuilder* string_builder;\n")
         }
         "string_builder = string_builder_create(" runtime "->arena);\n"
@@ -385,7 +383,7 @@ actionexpr =
     }
     | space placeholder:x genRuntime:runtime -> {
         #inc(W[1] 1)
-        >definitions {
+        >fileDeclarations {
             "void placeholder_" W[1] "(void* runtime, void* variables);\n"
         }
         >placeholders {
@@ -396,7 +394,7 @@ actionexpr =
             < "}\n"
             "\n"
         }
-        >actionVars {
+        >actionDeclarations {
             unique("StringBuilder* string_builder;\n")
         }
         "string_builder = string_builder_create(" runtime "->arena);\n"
@@ -417,7 +415,7 @@ actionexpr =
     ;
 
 stringBuilderName = name:x -> {
-    >namedStringBuilders {
+    >runtimeStruct {
         unseen(x) -> {
             "StringBuilder* named_string_builder_" x ";\n"
         }
@@ -497,7 +495,7 @@ nextname =
     ;
 
 wvar = 'W[' .:x ']' -> {
-    >namedWs {
+    >runtimeStruct {
         unseen(x) -> {
             "unsigned int W_" x ";\n"
         }

commit a1885b6c1b7a9504209d92ea3ca9a3681ffe00d4
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 24 21:19:18 2025 +0100

    Compile with -pedantic

diff --git a/make.sh b/make.sh
index b16739f..fb616b7 100755
--- a/make.sh
+++ b/make.sh
@@ -101,7 +101,7 @@ meta_compile() {
 
 c_compile() {
     echo "Compiling $1 -> $2"
-    gcc -Iout -Isrc -std=c89 -Wfatal-errors -Wall -Werror -o $2 $1
+    gcc -Iout -Isrc -std=c89 -Wfatal-errors -Wall -Werror -pedantic -o $2 $1
 }
 
 main

commit 5408a9201936fee2d9869654811bee0dfeadfedd
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 24 21:17:59 2025 +0100

    Remove 'long long' as it does not seem to be a type defined in C90 (and thus C89)

diff --git a/src/experiments/sizes.c b/src/experiments/sizes.c
index a63afe8..96f2b1d 100644
--- a/src/experiments/sizes.c
+++ b/src/experiments/sizes.c
@@ -19,7 +19,6 @@ int main(void) {
     printf("Sizeof short     = %ld\n", sizeof(short));
     printf("Sizeof int       = %ld\n", sizeof(int));
     printf("Sizeof long      = %ld\n", sizeof(long));
-    printf("Sizeof long long = %ld\n", sizeof(long long));
     printf("Sizeof pointer   = %ld\n", sizeof(void *));
     printf("Sizeof Foo       = %ld\n", sizeof(Foo));
     printf("Sizeof Bar       = %ld\n", sizeof(Bar));

commit d73424afec082565341f469c449ccb855110c8bd
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 24 21:14:49 2025 +0100

    Generate vars* variables at the top of the rule function

diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index 33f7be8..1abbc7d 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -1236,11 +1236,15 @@ void meta_action_40(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_212), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_orInit;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_213), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_214), 0, NULL);
+    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_orInit;
+    ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     if (((meta_Runtime*)runtime)->named_string_builder_variables->pre_first->next) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_215), 0, NULL);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
@@ -1701,10 +1705,10 @@ MetaAction meta_rule_main(MetaParseState* parse_state) {
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    void* vars1 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars1 = NULL;
     vars1 = arena_alloc(parse_state->arena, sizeof(struct meta_Action1Vars));
     star_variables = list_create(parse_state->arena);
     star_start_pos = parse_state->pos;
@@ -1737,10 +1741,10 @@ MetaAction meta_rule_metaField(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    void* vars2 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars2 = NULL;
     vars2 = arena_alloc(parse_state->arena, sizeof(struct meta_Action2Vars));
     data = (&meta_string_1);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
@@ -1770,10 +1774,10 @@ MetaAction meta_rule_file(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     unsigned int nlookahead_pos;
+    void* vars3 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars3 = NULL;
     vars3 = arena_alloc(parse_state->arena, sizeof(struct meta_Action3Vars));
     star_variables = list_create(parse_state->arena);
     star_start_pos = parse_state->pos;
@@ -1820,10 +1824,10 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    void* vars4 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars4 = NULL;
     vars4 = arena_alloc(parse_state->arena, sizeof(struct meta_Action4Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -1881,10 +1885,11 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    void* vars5 = NULL;
+    void* vars6 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars5 = NULL;
     vars5 = arena_alloc(parse_state->arena, sizeof(struct meta_Action5Vars));
     data = (&meta_string_89);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
@@ -1914,7 +1919,6 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars6 = NULL;
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
     return meta_action_create(meta_action_6, vars6, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
@@ -1944,10 +1948,10 @@ MetaAction meta_rule_ors(MetaParseState* parse_state) {
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    void* vars8 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars8 = NULL;
     vars8 = arena_alloc(parse_state->arena, sizeof(struct meta_Action8Vars));
     _ = meta_rule_maybeorbar(parse_state);
     if (_.valid) {
@@ -1981,10 +1985,10 @@ MetaAction meta_rule_restorcase(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars9 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars9 = NULL;
     vars9 = arena_alloc(parse_state->arena, sizeof(struct meta_Action9Vars));
     _ = meta_rule_orbar(parse_state);
     if (_.valid) {
@@ -2003,6 +2007,7 @@ MetaAction meta_rule_maybeorbar(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars11 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
@@ -2013,7 +2018,6 @@ MetaAction meta_rule_maybeorbar(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars11 = NULL;
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
     return meta_action_create(meta_action_11, vars11, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
@@ -2043,10 +2047,10 @@ MetaAction meta_rule_orcase(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars13 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars13 = NULL;
     vars13 = arena_alloc(parse_state->arena, sizeof(struct meta_Action13Vars));
     _ = meta_rule_matchAnd(parse_state);
     ((struct meta_Action13Vars*)vars13)->x = _;
@@ -2062,10 +2066,11 @@ MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars14 = NULL;
+    void* vars15 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars14 = NULL;
     vars14 = arena_alloc(parse_state->arena, sizeof(struct meta_Action14Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -2082,7 +2087,6 @@ MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars15 = NULL;
     vars15 = arena_alloc(parse_state->arena, sizeof(struct meta_Action15Vars));
     _ = meta_rule_action(parse_state);
     ((struct meta_Action15Vars*)vars15)->y = _;
@@ -2098,10 +2102,12 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars16 = NULL;
+    void* vars17 = NULL;
+    void* vars18 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars16 = NULL;
     vars16 = arena_alloc(parse_state->arena, sizeof(struct meta_Action16Vars));
     _ = meta_rule_opNegativeLookahead(parse_state);
     if (_.valid) {
@@ -2114,7 +2120,6 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars17 = NULL;
     vars17 = arena_alloc(parse_state->arena, sizeof(struct meta_Action17Vars));
     _ = meta_rule_opLookahead(parse_state);
     if (_.valid) {
@@ -2127,7 +2132,6 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars18 = NULL;
     vars18 = arena_alloc(parse_state->arena, sizeof(struct meta_Action18Vars));
     _ = meta_rule_matchExprRepeat(parse_state);
     ((struct meta_Action18Vars*)vars18)->x = _;
@@ -2147,10 +2151,11 @@ MetaAction meta_rule_matchAssign(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars19 = NULL;
+    void* vars20 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars19 = NULL;
     vars19 = arena_alloc(parse_state->arena, sizeof(struct meta_Action19Vars));
     _ = meta_rule_opBind(parse_state);
     if (_.valid) {
@@ -2163,7 +2168,6 @@ MetaAction meta_rule_matchAssign(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars20 = NULL;
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
     return meta_action_create(meta_action_20, vars20, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
@@ -2175,10 +2179,12 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     unsigned int lookahead_pos;
+    void* vars21 = NULL;
+    void* vars22 = NULL;
+    void* vars23 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars21 = NULL;
     vars21 = arena_alloc(parse_state->arena, sizeof(struct meta_Action21Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
     ((struct meta_Action21Vars*)vars21)->x = _;
@@ -2201,7 +2207,6 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars22 = NULL;
     vars22 = arena_alloc(parse_state->arena, sizeof(struct meta_Action22Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
     ((struct meta_Action22Vars*)vars22)->x = _;
@@ -2214,7 +2219,6 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars23 = NULL;
     vars23 = arena_alloc(parse_state->arena, sizeof(struct meta_Action23Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
     ((struct meta_Action23Vars*)vars23)->x = _;
@@ -2409,10 +2413,10 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     unsigned int star_start_pos;
     String* data;
     String slice;
+    void* vars31 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars31 = NULL;
     vars31 = arena_alloc(parse_state->arena, sizeof(struct meta_Action31Vars));
     star_start_pos = parse_state->pos;
     while (1) {
@@ -2447,10 +2451,11 @@ MetaAction meta_rule_maybeBit(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars32 = NULL;
+    void* vars33 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars32 = NULL;
     vars32 = arena_alloc(parse_state->arena, sizeof(struct meta_Action32Vars));
     _ = meta_rule_bit(parse_state);
     ((struct meta_Action32Vars*)vars32)->x = _;
@@ -2460,7 +2465,6 @@ MetaAction meta_rule_maybeBit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars33 = NULL;
     _ = meta_rule_lower(parse_state);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
@@ -2476,10 +2480,11 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    void* vars34 = NULL;
+    void* vars35 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars34 = NULL;
     data = (&meta_string_168);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
@@ -2494,7 +2499,6 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars35 = NULL;
     data = (&meta_string_169);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
@@ -2515,15 +2519,18 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars36 = NULL;
     String* data;
     String slice;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    void* vars37 = NULL;
+    void* vars38 = NULL;
+    void* vars39 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars36 = NULL;
     vars36 = arena_alloc(parse_state->arena, sizeof(struct meta_Action36Vars));
     _ = meta_rule_ruleName(parse_state);
     ((struct meta_Action36Vars*)vars36)->x = _;
@@ -2533,7 +2540,6 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars37 = NULL;
     vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
     data = (&meta_string_174);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
@@ -2564,7 +2570,6 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars38 = NULL;
     _ = meta_rule_opAny(parse_state);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
@@ -2572,7 +2577,6 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars39 = NULL;
     vars39 = arena_alloc(parse_state->arena, sizeof(struct meta_Action39Vars));
     _ = meta_rule_charString(parse_state);
     ((struct meta_Action39Vars*)vars39)->x = _;
@@ -2593,10 +2597,11 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    void* vars40 = NULL;
+    void* vars41 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars40 = NULL;
     vars40 = arena_alloc(parse_state->arena, sizeof(struct meta_Action40Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -2649,7 +2654,6 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars41 = NULL;
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
     return meta_action_create(meta_action_41, vars41, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
@@ -2661,10 +2665,10 @@ MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     unsigned int lookahead_pos;
+    void* vars42 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars42 = NULL;
     lookahead_pos = parse_state->pos;
     if (parse_state->pos < parse_state->input_buffer->size) {
         parse_state->pos += 1;
@@ -2695,10 +2699,21 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    void* vars43 = NULL;
+    void* vars44 = NULL;
+    void* vars45 = NULL;
+    void* vars46 = NULL;
+    void* vars47 = NULL;
+    void* vars48 = NULL;
+    void* vars49 = NULL;
+    void* vars50 = NULL;
+    void* vars51 = NULL;
+    void* vars52 = NULL;
+    void* vars53 = NULL;
+    void* vars54 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars43 = NULL;
     vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -2763,7 +2778,6 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars44 = NULL;
     vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -2828,7 +2842,6 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars45 = NULL;
     vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -2865,7 +2878,6 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars46 = NULL;
     vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -2933,7 +2945,6 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars47 = NULL;
     vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -2960,7 +2971,6 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars48 = NULL;
     vars48 = arena_alloc(parse_state->arena, sizeof(struct meta_Action48Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -2987,7 +2997,6 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars49 = NULL;
     vars49 = arena_alloc(parse_state->arena, sizeof(struct meta_Action49Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -3004,7 +3013,6 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars50 = NULL;
     vars50 = arena_alloc(parse_state->arena, sizeof(struct meta_Action50Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -3021,7 +3029,6 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars51 = NULL;
     vars51 = arena_alloc(parse_state->arena, sizeof(struct meta_Action51Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -3038,7 +3045,6 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars52 = NULL;
     vars52 = arena_alloc(parse_state->arena, sizeof(struct meta_Action52Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -3055,7 +3061,6 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars53 = NULL;
     vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -3120,7 +3125,6 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars54 = NULL;
     vars54 = arena_alloc(parse_state->arena, sizeof(struct meta_Action54Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -3177,10 +3181,10 @@ MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars55 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars55 = NULL;
     vars55 = arena_alloc(parse_state->arena, sizeof(struct meta_Action55Vars));
     _ = meta_rule_name(parse_state);
     ((struct meta_Action55Vars*)vars55)->x = _;
@@ -3196,10 +3200,10 @@ MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars56 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars56 = NULL;
     vars56 = arena_alloc(parse_state->arena, sizeof(struct meta_Action56Vars));
     _ = meta_rule_dotname(parse_state);
     ((struct meta_Action56Vars*)vars56)->x = _;
@@ -3375,10 +3379,10 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    void* vars68 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars68 = NULL;
     vars68 = arena_alloc(parse_state->arena, sizeof(struct meta_Action68Vars));
     data = (&meta_string_347);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
@@ -3438,15 +3442,18 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars69 = NULL;
     String* data;
     String slice;
+    void* vars70 = NULL;
+    void* vars71 = NULL;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    void* vars72 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars69 = NULL;
     vars69 = arena_alloc(parse_state->arena, sizeof(struct meta_Action69Vars));
     _ = meta_rule_wvar(parse_state);
     ((struct meta_Action69Vars*)vars69)->x = _;
@@ -3460,7 +3467,6 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars70 = NULL;
     vars70 = arena_alloc(parse_state->arena, sizeof(struct meta_Action70Vars));
     data = (&meta_string_364);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
@@ -3508,7 +3514,6 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars71 = NULL;
     vars71 = arena_alloc(parse_state->arena, sizeof(struct meta_Action71Vars));
     _ = meta_rule_dotname(parse_state);
     ((struct meta_Action71Vars*)vars71)->y = _;
@@ -3518,7 +3523,6 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars72 = NULL;
     vars72 = arena_alloc(parse_state->arena, sizeof(struct meta_Action72Vars));
     data = (&meta_string_373);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
@@ -3565,10 +3569,10 @@ MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars73 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars73 = NULL;
     vars73 = arena_alloc(parse_state->arena, sizeof(struct meta_Action73Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -3593,6 +3597,7 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    void* vars75 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
@@ -3613,7 +3618,6 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars75 = NULL;
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
     return meta_action_create(meta_action_75, vars75, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
@@ -3629,10 +3633,10 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    void* vars76 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars76 = NULL;
     vars76 = arena_alloc(parse_state->arena, sizeof(struct meta_Action76Vars));
     data = (&meta_string_381);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
@@ -3683,10 +3687,10 @@ MetaAction meta_rule_dotname(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars77 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars77 = NULL;
     vars77 = arena_alloc(parse_state->arena, sizeof(struct meta_Action77Vars));
     _ = meta_rule_nameAsActionLookup(parse_state);
     ((struct meta_Action77Vars*)vars77)->x = _;
@@ -3706,10 +3710,10 @@ MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    void* vars78 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars78 = NULL;
     vars78 = arena_alloc(parse_state->arena, sizeof(struct meta_Action78Vars));
     _ = meta_rule_variableName(parse_state);
     ((struct meta_Action78Vars*)vars78)->x = _;
@@ -3728,10 +3732,11 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     String* data;
     String slice;
     unsigned int nlookahead_pos;
+    void* vars79 = NULL;
+    void* vars80 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars79 = NULL;
     data = (&meta_string_397);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
@@ -3756,7 +3761,6 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars80 = NULL;
     data = (&meta_string_399);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
@@ -3789,10 +3793,10 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    void* vars81 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars81 = NULL;
     vars81 = arena_alloc(parse_state->arena, sizeof(struct meta_Action81Vars));
     data = (&meta_string_401);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
@@ -3886,10 +3890,10 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    void* vars84 = NULL;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars84 = NULL;
     vars84 = arena_alloc(parse_state->arena, sizeof(struct meta_Action84Vars));
     data = (&meta_string_406);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
@@ -3938,6 +3942,7 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     String slice;
+    void* vars86 = NULL;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -3949,7 +3954,6 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    void* vars86 = NULL;
     data = (&meta_string_416);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index aca61fa..9037f22 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -315,8 +315,10 @@ action =
             < "}\n"
             "\n"
         }
-        >orInit {
+        >ruleVars {
             "void* vars" W[0] " = NULL;\n"
+        }
+        >orInit {
             nonEmpty(variables) -> {
                 "vars" W[0] " = arena_alloc(parse_state->arena, sizeof(struct " <prefix "Action" W[0] "Vars));\n"
             }

commit 4f72853e18af75d7dccc4ba9ae5788d21c7fdef3
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 24 21:11:19 2025 +0100

    Don't generate empty structs

diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index 0fb3ef9..33f7be8 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -133,12 +133,12 @@ static String meta_string_90 = {1, "]"};
 static String meta_string_91 = {14, "MetaHighlight_"};
 static String meta_string_92 = {18, "MetaHighlight_None"};
 static String meta_string_93 = {37, "or_backtrack_pos = parse_state->pos;\n"};
-static String meta_string_94 = {7, "struct "};
-static String meta_string_95 = {6, "Action"};
-static String meta_string_96 = {7, "Vars {\n"};
-static String meta_string_97 = {3, "};\n"};
-static String meta_string_98 = {59, "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n"};
-static String meta_string_99 = {37, "action_start_pos = parse_state->pos;\n"};
+static String meta_string_94 = {59, "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n"};
+static String meta_string_95 = {37, "action_start_pos = parse_state->pos;\n"};
+static String meta_string_96 = {7, "struct "};
+static String meta_string_97 = {6, "Action"};
+static String meta_string_98 = {7, "Vars {\n"};
+static String meta_string_99 = {3, "};\n"};
 static String meta_string_100 = {15, "if (_.valid) {\n"};
 static String meta_string_101 = {2, "}\n"};
 static String meta_string_102 = {29, "unsigned int nlookahead_pos;\n"};
@@ -161,349 +161,358 @@ static String meta_string_118 = {2, "}\n"};
 static String meta_string_119 = {56, "meta_parse_state_backtrack(parse_state, lookahead_pos);\n"};
 static String meta_string_120 = {11, "MetaAction "};
 static String meta_string_121 = {2, ";\n"};
-static String meta_string_122 = {4, "vars"};
-static String meta_string_123 = {2, "->"};
-static String meta_string_124 = {6, " = _;\n"};
-static String meta_string_125 = {22, "List* star_variables;\n"};
-static String meta_string_126 = {22, "List* star_variables;\n"};
-static String meta_string_127 = {23, "unsigned int star_pos;\n"};
-static String meta_string_128 = {23, "unsigned int star_pos;\n"};
-static String meta_string_129 = {29, "unsigned int star_start_pos;\n"};
-static String meta_string_130 = {29, "unsigned int star_start_pos;\n"};
-static String meta_string_131 = {50, "star_variables = list_create(parse_state->arena);\n"};
-static String meta_string_132 = {35, "star_start_pos = parse_state->pos;\n"};
-static String meta_string_133 = {12, "while (1) {\n"};
-static String meta_string_134 = {29, "star_pos = parse_state->pos;\n"};
-static String meta_string_135 = {16, "if (!_.valid) {\n"};
-static String meta_string_136 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
-static String meta_string_137 = {7, "break;\n"};
-static String meta_string_138 = {2, "}\n"};
-static String meta_string_139 = {112, "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n"};
+static String meta_string_122 = {9, "((struct "};
+static String meta_string_123 = {6, "Action"};
+static String meta_string_124 = {10, "Vars*)vars"};
+static String meta_string_125 = {3, ")->"};
+static String meta_string_126 = {6, " = _;\n"};
+static String meta_string_127 = {22, "List* star_variables;\n"};
+static String meta_string_128 = {22, "List* star_variables;\n"};
+static String meta_string_129 = {23, "unsigned int star_pos;\n"};
+static String meta_string_130 = {23, "unsigned int star_pos;\n"};
+static String meta_string_131 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_132 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_133 = {50, "star_variables = list_create(parse_state->arena);\n"};
+static String meta_string_134 = {35, "star_start_pos = parse_state->pos;\n"};
+static String meta_string_135 = {12, "while (1) {\n"};
+static String meta_string_136 = {29, "star_pos = parse_state->pos;\n"};
+static String meta_string_137 = {16, "if (!_.valid) {\n"};
+static String meta_string_138 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
+static String meta_string_139 = {7, "break;\n"};
 static String meta_string_140 = {2, "}\n"};
-static String meta_string_141 = {114, "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
-static String meta_string_142 = {23, "unsigned int star_pos;\n"};
-static String meta_string_143 = {23, "unsigned int star_pos;\n"};
-static String meta_string_144 = {29, "unsigned int star_start_pos;\n"};
-static String meta_string_145 = {29, "unsigned int star_start_pos;\n"};
-static String meta_string_146 = {35, "star_start_pos = parse_state->pos;\n"};
-static String meta_string_147 = {12, "while (1) {\n"};
-static String meta_string_148 = {29, "star_pos = parse_state->pos;\n"};
-static String meta_string_149 = {16, "if (!_.valid) {\n"};
-static String meta_string_150 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
-static String meta_string_151 = {7, "break;\n"};
-static String meta_string_152 = {2, "}\n"};
-static String meta_string_153 = {2, "}\n"};
-static String meta_string_154 = {97, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
-static String meta_string_155 = {1, ":"};
-static String meta_string_156 = {1, "*"};
-static String meta_string_157 = {1, "&"};
-static String meta_string_158 = {1, "!"};
-static String meta_string_159 = {1, "."};
-static String meta_string_160 = {1, "|"};
-static String meta_string_161 = {2, "->"};
-static String meta_string_162 = {1, "_"};
-static String meta_string_163 = {18, "bitpattern <<= 1;\n"};
-static String meta_string_164 = {15, "bitmask <<= 1;\n"};
-static String meta_string_165 = {14, "bitmask |= 1;\n"};
-static String meta_string_166 = {1, "0"};
-static String meta_string_167 = {1, "1"};
-static String meta_string_168 = {17, "bitpattern |= 1;\n"};
-static String meta_string_169 = {4, "_ = "};
-static String meta_string_170 = {5, "rule_"};
-static String meta_string_171 = {15, "(parse_state);\n"};
-static String meta_string_172 = {2, "0b"};
-static String meta_string_173 = {26, "unsigned char bitpattern;\n"};
-static String meta_string_174 = {26, "unsigned char bitpattern;\n"};
-static String meta_string_175 = {23, "unsigned char bitmask;\n"};
-static String meta_string_176 = {23, "unsigned char bitmask;\n"};
-static String meta_string_177 = {16, "bitpattern = 0;\n"};
-static String meta_string_178 = {13, "bitmask = 0;\n"};
-static String meta_string_179 = {162, "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n"};
-static String meta_string_180 = {23, "parse_state->pos += 1;\n"};
-static String meta_string_181 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
-static String meta_string_182 = {9, "} else {\n"};
-static String meta_string_183 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_184 = {2, "}\n"};
-static String meta_string_185 = {58, "if (parse_state->pos < parse_state->input_buffer->size) {\n"};
-static String meta_string_186 = {23, "parse_state->pos += 1;\n"};
-static String meta_string_187 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
-static String meta_string_188 = {9, "} else {\n"};
-static String meta_string_189 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_190 = {2, "}\n"};
-static String meta_string_191 = {14, "String* data;\n"};
-static String meta_string_192 = {14, "String* data;\n"};
-static String meta_string_193 = {14, "String slice;\n"};
-static String meta_string_194 = {14, "String slice;\n"};
-static String meta_string_195 = {7, "data = "};
-static String meta_string_196 = {2, ";\n"};
-static String meta_string_197 = {96, "string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);\n"};
-static String meta_string_198 = {102, "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {\n"};
-static String meta_string_199 = {32, "parse_state->pos += data->size;\n"};
-static String meta_string_200 = {110, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"};
-static String meta_string_201 = {9, "} else {\n"};
-static String meta_string_202 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_203 = {2, "}\n"};
-static String meta_string_204 = {1, "{"};
-static String meta_string_205 = {1, "}"};
-static String meta_string_206 = {5, "void "};
-static String meta_string_207 = {7, "action_"};
-static String meta_string_208 = {35, "(void* runtime, void* variables) {\n"};
-static String meta_string_209 = {2, "}\n"};
-static String meta_string_210 = {1, "\n"};
-static String meta_string_211 = {7, "struct "};
-static String meta_string_212 = {6, "Action"};
-static String meta_string_213 = {10, "Vars* vars"};
-static String meta_string_214 = {49, " = arena_alloc(parse_state->arena, sizeof(struct "};
-static String meta_string_215 = {6, "Action"};
-static String meta_string_216 = {8, "Vars));\n"};
-static String meta_string_217 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
-static String meta_string_218 = {26, "return meta_action_create("};
-static String meta_string_219 = {7, "action_"};
-static String meta_string_220 = {13, ", (void*)vars"};
-static String meta_string_221 = {66, ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
-static String meta_string_222 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
-static String meta_string_223 = {102, "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
-static String meta_string_224 = {2, "(("};
-static String meta_string_225 = {17, "Runtime*)runtime)"};
-static String meta_string_226 = {7, "unseen("};
-static String meta_string_227 = {6, ") -> {"};
-static String meta_string_228 = {1, "}"};
-static String meta_string_229 = {19, "MetaAction action;\n"};
-static String meta_string_230 = {19, "MetaAction action;\n"};
-static String meta_string_231 = {14, "String slice;\n"};
-static String meta_string_232 = {14, "String slice;\n"};
-static String meta_string_233 = {9, "action = "};
-static String meta_string_234 = {2, ";\n"};
-static String meta_string_235 = {69, "string_slice(action.input_buffer, action.start, action.end, &slice);\n"};
-static String meta_string_236 = {29, "if (!string_builder_contains("};
-static String meta_string_237 = {37, "->current_string_builder, &slice)) {\n"};
-static String meta_string_238 = {2, "}\n"};
-static String meta_string_239 = {7, "unique("};
-static String meta_string_240 = {1, ")"};
-static String meta_string_241 = {29, "if (!string_builder_contains("};
-static String meta_string_242 = {26, "->current_string_builder, "};
-static String meta_string_243 = {5, ")) {\n"};
-static String meta_string_244 = {22, "string_builder_append("};
-static String meta_string_245 = {26, "->current_string_builder, "};
-static String meta_string_246 = {9, "->arena, "};
-static String meta_string_247 = {12, ", 0, NULL);\n"};
-static String meta_string_248 = {2, "}\n"};
-static String meta_string_249 = {1, ">"};
-static String meta_string_250 = {1, "{"};
-static String meta_string_251 = {1, "}"};
-static String meta_string_252 = {36, "StringBuilder* last_string_builder;\n"};
-static String meta_string_253 = {36, "StringBuilder* last_string_builder;\n"};
-static String meta_string_254 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_255 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_256 = {22, "last_string_builder = "};
-static String meta_string_257 = {26, "->current_string_builder;\n"};
-static String meta_string_258 = {17, "string_builder = "};
-static String meta_string_259 = {23, "->named_string_builder_"};
-static String meta_string_260 = {2, ";\n"};
-static String meta_string_261 = {43, "->current_string_builder = string_builder;\n"};
-static String meta_string_262 = {48, "->current_string_builder = last_string_builder;\n"};
-static String meta_string_263 = {1, "<"};
-static String meta_string_264 = {22, "string_builder_append("};
-static String meta_string_265 = {26, "->current_string_builder, "};
-static String meta_string_266 = {18, "->arena, NULL, 0, "};
-static String meta_string_267 = {23, "->named_string_builder_"};
-static String meta_string_268 = {3, ");\n"};
-static String meta_string_269 = {1, "$"};
-static String meta_string_270 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_271 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_272 = {39, "string_builder = string_builder_create("};
-static String meta_string_273 = {10, "->arena);\n"};
-static String meta_string_274 = {23, "->named_string_builder_"};
-static String meta_string_275 = {19, " = string_builder;\n"};
-static String meta_string_276 = {22, "string_builder_append("};
-static String meta_string_277 = {26, "->current_string_builder, "};
-static String meta_string_278 = {29, "->arena, string_from_integer("};
-static String meta_string_279 = {9, "->arena, "};
-static String meta_string_280 = {13, "), 0, NULL);\n"};
-static String meta_string_281 = {17, "meta_action_run(&"};
-static String meta_string_282 = {11, ", runtime, "};
-static String meta_string_283 = {26, "->current_string_builder, "};
-static String meta_string_284 = {10, "->arena);\n"};
-static String meta_string_285 = {17, "void placeholder_"};
-static String meta_string_286 = {34, "(void* runtime, void* variables);\n"};
-static String meta_string_287 = {17, "void placeholder_"};
-static String meta_string_288 = {35, "(void* runtime, void* variables) {\n"};
-static String meta_string_289 = {2, "}\n"};
-static String meta_string_290 = {1, "\n"};
-static String meta_string_291 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_292 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_293 = {39, "string_builder = string_builder_create("};
-static String meta_string_294 = {10, "->arena);\n"};
-static String meta_string_295 = {24, "meta_placeholder_append("};
-static String meta_string_296 = {9, "->arena, "};
-static String meta_string_297 = {63, "->placeholders, string_builder, meta_action_create(placeholder_"};
-static String meta_string_298 = {27, ", variables, NULL, 0, 0));\n"};
-static String meta_string_299 = {22, "string_builder_append("};
-static String meta_string_300 = {26, "->current_string_builder, "};
-static String meta_string_301 = {35, "->arena, NULL, 0, string_builder);\n"};
-static String meta_string_302 = {22, "string_builder_append("};
-static String meta_string_303 = {26, "->current_string_builder, "};
-static String meta_string_304 = {9, "->arena, "};
-static String meta_string_305 = {12, ", 0, NULL);\n"};
-static String meta_string_306 = {1, "#"};
-static String meta_string_307 = {1, "("};
-static String meta_string_308 = {1, " "};
-static String meta_string_309 = {1, ")"};
-static String meta_string_310 = {4, "->W_"};
-static String meta_string_311 = {8, " = meta_"};
-static String meta_string_312 = {1, "("};
-static String meta_string_313 = {4, "->W_"};
-static String meta_string_314 = {3, " ? "};
-static String meta_string_315 = {4, "->W_"};
-static String meta_string_316 = {6, " : 0, "};
-static String meta_string_317 = {3, ");\n"};
-static String meta_string_318 = {1, ">"};
-static String meta_string_319 = {1, "<"};
-static String meta_string_320 = {22, "string_builder_append("};
-static String meta_string_321 = {26, "->current_string_builder, "};
-static String meta_string_322 = {25, "->arena, NULL, 1, NULL);\n"};
-static String meta_string_323 = {22, "string_builder_append("};
-static String meta_string_324 = {26, "->current_string_builder, "};
-static String meta_string_325 = {26, "->arena, NULL, -1, NULL);\n"};
-static String meta_string_326 = {36, "StringBuilder* named_string_builder_"};
-static String meta_string_327 = {2, ";\n"};
-static String meta_string_328 = {1, "0"};
-static String meta_string_329 = {1, "1"};
-static String meta_string_330 = {1, "2"};
-static String meta_string_331 = {1, "3"};
-static String meta_string_332 = {1, "4"};
-static String meta_string_333 = {1, "5"};
-static String meta_string_334 = {1, "6"};
-static String meta_string_335 = {1, "7"};
-static String meta_string_336 = {1, "8"};
-static String meta_string_337 = {1, "9"};
-static String meta_string_338 = {1, "{"};
-static String meta_string_339 = {1, "*"};
-static String meta_string_340 = {1, "}"};
-static String meta_string_341 = {7, "int i;\n"};
-static String meta_string_342 = {7, "int i;\n"};
-static String meta_string_343 = {14, "for (i=0; i < "};
-static String meta_string_344 = {9, "; i++) {\n"};
-static String meta_string_345 = {22, "string_builder_append("};
-static String meta_string_346 = {26, "->current_string_builder, "};
-static String meta_string_347 = {9, "->arena, "};
-static String meta_string_348 = {12, ", 0, NULL);\n"};
-static String meta_string_349 = {2, "}\n"};
-static String meta_string_350 = {1, "("};
-static String meta_string_351 = {4, "->W_"};
-static String meta_string_352 = {3, " ? "};
-static String meta_string_353 = {4, "->W_"};
-static String meta_string_354 = {5, " : 0)"};
-static String meta_string_355 = {1, "("};
-static String meta_string_356 = {1, "-"};
-static String meta_string_357 = {1, ")"};
-static String meta_string_358 = {2, "(("};
-static String meta_string_359 = {4, "->W_"};
-static String meta_string_360 = {3, " ? "};
-static String meta_string_361 = {4, "->W_"};
-static String meta_string_362 = {6, " : 0)-"};
-static String meta_string_363 = {1, ")"};
-static String meta_string_364 = {7, "number("};
-static String meta_string_365 = {1, ")"};
-static String meta_string_366 = {2, "(0"};
-static String meta_string_367 = {1, ")"};
-static String meta_string_368 = {25, "+(meta_action_first_byte("};
-static String meta_string_369 = {1, ")"};
-static String meta_string_370 = {1, ")"};
-static String meta_string_371 = {2, "<<"};
-static String meta_string_372 = {1, "\""};
-static String meta_string_373 = {1, "\""};
-static String meta_string_374 = {14, "static String "};
-static String meta_string_375 = {7, "string_"};
-static String meta_string_376 = {4, " = {"};
-static String meta_string_377 = {3, ", \""};
-static String meta_string_378 = {4, "\"};\n"};
-static String meta_string_379 = {2, "(&"};
-static String meta_string_380 = {7, "string_"};
-static String meta_string_381 = {1, ")"};
-static String meta_string_382 = {1, "("};
-static String meta_string_383 = {1, ")"};
-static String meta_string_384 = {10, "(((struct "};
-static String meta_string_385 = {6, "Action"};
-static String meta_string_386 = {18, "Vars*)variables)->"};
-static String meta_string_387 = {1, ")"};
-static String meta_string_388 = {4, ".len"};
-static String meta_string_389 = {15, "meta_action_len"};
-static String meta_string_390 = {6, ".count"};
-static String meta_string_391 = {17, "meta_action_count"};
-static String meta_string_392 = {2, "W["};
-static String meta_string_393 = {1, "]"};
-static String meta_string_394 = {15, "unsigned int W_"};
-static String meta_string_395 = {2, ";\n"};
-static String meta_string_396 = {1, "\""};
-static String meta_string_397 = {1, "\'"};
-static String meta_string_398 = {1, "\'"};
-static String meta_string_399 = {14, "static String "};
-static String meta_string_400 = {7, "string_"};
-static String meta_string_401 = {4, " = {"};
-static String meta_string_402 = {3, ", \""};
-static String meta_string_403 = {4, "\"};\n"};
-static String meta_string_404 = {2, "(&"};
-static String meta_string_405 = {7, "string_"};
-static String meta_string_406 = {1, ")"};
-static String meta_string_407 = {1, "\""};
-static String meta_string_408 = {2, "\\\""};
-static String meta_string_409 = {1, "\'"};
-static String meta_string_410 = {1, "\\"};
-static String meta_string_411 = {1, "a"};
-static String meta_string_412 = {1, "b"};
-static String meta_string_413 = {1, "c"};
-static String meta_string_414 = {1, "d"};
-static String meta_string_415 = {1, "e"};
-static String meta_string_416 = {1, "f"};
-static String meta_string_417 = {1, "g"};
-static String meta_string_418 = {1, "h"};
-static String meta_string_419 = {1, "i"};
-static String meta_string_420 = {1, "j"};
-static String meta_string_421 = {1, "k"};
-static String meta_string_422 = {1, "l"};
-static String meta_string_423 = {1, "m"};
-static String meta_string_424 = {1, "n"};
-static String meta_string_425 = {1, "o"};
-static String meta_string_426 = {1, "p"};
-static String meta_string_427 = {1, "q"};
-static String meta_string_428 = {1, "r"};
-static String meta_string_429 = {1, "s"};
-static String meta_string_430 = {1, "t"};
-static String meta_string_431 = {1, "u"};
-static String meta_string_432 = {1, "v"};
-static String meta_string_433 = {1, "w"};
-static String meta_string_434 = {1, "x"};
-static String meta_string_435 = {1, "y"};
-static String meta_string_436 = {1, "z"};
-static String meta_string_437 = {1, "A"};
-static String meta_string_438 = {1, "B"};
-static String meta_string_439 = {1, "C"};
-static String meta_string_440 = {1, "D"};
-static String meta_string_441 = {1, "E"};
-static String meta_string_442 = {1, "F"};
-static String meta_string_443 = {1, "G"};
-static String meta_string_444 = {1, "H"};
-static String meta_string_445 = {1, "I"};
-static String meta_string_446 = {1, "J"};
-static String meta_string_447 = {1, "K"};
-static String meta_string_448 = {1, "L"};
-static String meta_string_449 = {1, "M"};
-static String meta_string_450 = {1, "N"};
-static String meta_string_451 = {1, "O"};
-static String meta_string_452 = {1, "P"};
-static String meta_string_453 = {1, "Q"};
-static String meta_string_454 = {1, "R"};
-static String meta_string_455 = {1, "S"};
-static String meta_string_456 = {1, "T"};
-static String meta_string_457 = {1, "U"};
-static String meta_string_458 = {1, "V"};
-static String meta_string_459 = {1, "W"};
-static String meta_string_460 = {1, "X"};
-static String meta_string_461 = {1, "Y"};
-static String meta_string_462 = {1, "Z"};
-static String meta_string_463 = {1, " "};
-static String meta_string_464 = {1, "\n"};
+static String meta_string_141 = {112, "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n"};
+static String meta_string_142 = {2, "}\n"};
+static String meta_string_143 = {114, "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
+static String meta_string_144 = {23, "unsigned int star_pos;\n"};
+static String meta_string_145 = {23, "unsigned int star_pos;\n"};
+static String meta_string_146 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_147 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_148 = {35, "star_start_pos = parse_state->pos;\n"};
+static String meta_string_149 = {12, "while (1) {\n"};
+static String meta_string_150 = {29, "star_pos = parse_state->pos;\n"};
+static String meta_string_151 = {16, "if (!_.valid) {\n"};
+static String meta_string_152 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
+static String meta_string_153 = {7, "break;\n"};
+static String meta_string_154 = {2, "}\n"};
+static String meta_string_155 = {2, "}\n"};
+static String meta_string_156 = {97, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
+static String meta_string_157 = {1, ":"};
+static String meta_string_158 = {1, "*"};
+static String meta_string_159 = {1, "&"};
+static String meta_string_160 = {1, "!"};
+static String meta_string_161 = {1, "."};
+static String meta_string_162 = {1, "|"};
+static String meta_string_163 = {2, "->"};
+static String meta_string_164 = {1, "_"};
+static String meta_string_165 = {18, "bitpattern <<= 1;\n"};
+static String meta_string_166 = {15, "bitmask <<= 1;\n"};
+static String meta_string_167 = {14, "bitmask |= 1;\n"};
+static String meta_string_168 = {1, "0"};
+static String meta_string_169 = {1, "1"};
+static String meta_string_170 = {17, "bitpattern |= 1;\n"};
+static String meta_string_171 = {4, "_ = "};
+static String meta_string_172 = {5, "rule_"};
+static String meta_string_173 = {15, "(parse_state);\n"};
+static String meta_string_174 = {2, "0b"};
+static String meta_string_175 = {26, "unsigned char bitpattern;\n"};
+static String meta_string_176 = {26, "unsigned char bitpattern;\n"};
+static String meta_string_177 = {23, "unsigned char bitmask;\n"};
+static String meta_string_178 = {23, "unsigned char bitmask;\n"};
+static String meta_string_179 = {16, "bitpattern = 0;\n"};
+static String meta_string_180 = {13, "bitmask = 0;\n"};
+static String meta_string_181 = {162, "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n"};
+static String meta_string_182 = {23, "parse_state->pos += 1;\n"};
+static String meta_string_183 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
+static String meta_string_184 = {9, "} else {\n"};
+static String meta_string_185 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_186 = {2, "}\n"};
+static String meta_string_187 = {58, "if (parse_state->pos < parse_state->input_buffer->size) {\n"};
+static String meta_string_188 = {23, "parse_state->pos += 1;\n"};
+static String meta_string_189 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
+static String meta_string_190 = {9, "} else {\n"};
+static String meta_string_191 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_192 = {2, "}\n"};
+static String meta_string_193 = {14, "String* data;\n"};
+static String meta_string_194 = {14, "String* data;\n"};
+static String meta_string_195 = {14, "String slice;\n"};
+static String meta_string_196 = {14, "String slice;\n"};
+static String meta_string_197 = {7, "data = "};
+static String meta_string_198 = {2, ";\n"};
+static String meta_string_199 = {96, "string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);\n"};
+static String meta_string_200 = {102, "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {\n"};
+static String meta_string_201 = {32, "parse_state->pos += data->size;\n"};
+static String meta_string_202 = {110, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"};
+static String meta_string_203 = {9, "} else {\n"};
+static String meta_string_204 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_205 = {2, "}\n"};
+static String meta_string_206 = {1, "{"};
+static String meta_string_207 = {1, "}"};
+static String meta_string_208 = {5, "void "};
+static String meta_string_209 = {7, "action_"};
+static String meta_string_210 = {35, "(void* runtime, void* variables) {\n"};
+static String meta_string_211 = {2, "}\n"};
+static String meta_string_212 = {1, "\n"};
+static String meta_string_213 = {10, "void* vars"};
+static String meta_string_214 = {9, " = NULL;\n"};
+static String meta_string_215 = {4, "vars"};
+static String meta_string_216 = {49, " = arena_alloc(parse_state->arena, sizeof(struct "};
+static String meta_string_217 = {6, "Action"};
+static String meta_string_218 = {8, "Vars));\n"};
+static String meta_string_219 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
+static String meta_string_220 = {26, "return meta_action_create("};
+static String meta_string_221 = {7, "action_"};
+static String meta_string_222 = {6, ", vars"};
+static String meta_string_223 = {66, ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
+static String meta_string_224 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
+static String meta_string_225 = {102, "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
+static String meta_string_226 = {2, "(("};
+static String meta_string_227 = {17, "Runtime*)runtime)"};
+static String meta_string_228 = {9, "nonEmpty("};
+static String meta_string_229 = {6, ") -> {"};
+static String meta_string_230 = {1, "}"};
+static String meta_string_231 = {4, "if ("};
+static String meta_string_232 = {23, "->named_string_builder_"};
+static String meta_string_233 = {21, "->pre_first->next) {\n"};
+static String meta_string_234 = {2, "}\n"};
+static String meta_string_235 = {7, "unseen("};
+static String meta_string_236 = {6, ") -> {"};
+static String meta_string_237 = {1, "}"};
+static String meta_string_238 = {19, "MetaAction action;\n"};
+static String meta_string_239 = {19, "MetaAction action;\n"};
+static String meta_string_240 = {14, "String slice;\n"};
+static String meta_string_241 = {14, "String slice;\n"};
+static String meta_string_242 = {9, "action = "};
+static String meta_string_243 = {2, ";\n"};
+static String meta_string_244 = {69, "string_slice(action.input_buffer, action.start, action.end, &slice);\n"};
+static String meta_string_245 = {29, "if (!string_builder_contains("};
+static String meta_string_246 = {37, "->current_string_builder, &slice)) {\n"};
+static String meta_string_247 = {2, "}\n"};
+static String meta_string_248 = {7, "unique("};
+static String meta_string_249 = {1, ")"};
+static String meta_string_250 = {29, "if (!string_builder_contains("};
+static String meta_string_251 = {26, "->current_string_builder, "};
+static String meta_string_252 = {5, ")) {\n"};
+static String meta_string_253 = {22, "string_builder_append("};
+static String meta_string_254 = {26, "->current_string_builder, "};
+static String meta_string_255 = {9, "->arena, "};
+static String meta_string_256 = {12, ", 0, NULL);\n"};
+static String meta_string_257 = {2, "}\n"};
+static String meta_string_258 = {1, ">"};
+static String meta_string_259 = {1, "{"};
+static String meta_string_260 = {1, "}"};
+static String meta_string_261 = {36, "StringBuilder* last_string_builder;\n"};
+static String meta_string_262 = {36, "StringBuilder* last_string_builder;\n"};
+static String meta_string_263 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_264 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_265 = {22, "last_string_builder = "};
+static String meta_string_266 = {26, "->current_string_builder;\n"};
+static String meta_string_267 = {17, "string_builder = "};
+static String meta_string_268 = {23, "->named_string_builder_"};
+static String meta_string_269 = {2, ";\n"};
+static String meta_string_270 = {43, "->current_string_builder = string_builder;\n"};
+static String meta_string_271 = {48, "->current_string_builder = last_string_builder;\n"};
+static String meta_string_272 = {1, "<"};
+static String meta_string_273 = {22, "string_builder_append("};
+static String meta_string_274 = {26, "->current_string_builder, "};
+static String meta_string_275 = {18, "->arena, NULL, 0, "};
+static String meta_string_276 = {23, "->named_string_builder_"};
+static String meta_string_277 = {3, ");\n"};
+static String meta_string_278 = {1, "$"};
+static String meta_string_279 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_280 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_281 = {39, "string_builder = string_builder_create("};
+static String meta_string_282 = {10, "->arena);\n"};
+static String meta_string_283 = {23, "->named_string_builder_"};
+static String meta_string_284 = {19, " = string_builder;\n"};
+static String meta_string_285 = {22, "string_builder_append("};
+static String meta_string_286 = {26, "->current_string_builder, "};
+static String meta_string_287 = {29, "->arena, string_from_integer("};
+static String meta_string_288 = {9, "->arena, "};
+static String meta_string_289 = {13, "), 0, NULL);\n"};
+static String meta_string_290 = {17, "meta_action_run(&"};
+static String meta_string_291 = {11, ", runtime, "};
+static String meta_string_292 = {26, "->current_string_builder, "};
+static String meta_string_293 = {10, "->arena);\n"};
+static String meta_string_294 = {17, "void placeholder_"};
+static String meta_string_295 = {34, "(void* runtime, void* variables);\n"};
+static String meta_string_296 = {17, "void placeholder_"};
+static String meta_string_297 = {35, "(void* runtime, void* variables) {\n"};
+static String meta_string_298 = {2, "}\n"};
+static String meta_string_299 = {1, "\n"};
+static String meta_string_300 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_301 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_302 = {39, "string_builder = string_builder_create("};
+static String meta_string_303 = {10, "->arena);\n"};
+static String meta_string_304 = {24, "meta_placeholder_append("};
+static String meta_string_305 = {9, "->arena, "};
+static String meta_string_306 = {63, "->placeholders, string_builder, meta_action_create(placeholder_"};
+static String meta_string_307 = {27, ", variables, NULL, 0, 0));\n"};
+static String meta_string_308 = {22, "string_builder_append("};
+static String meta_string_309 = {26, "->current_string_builder, "};
+static String meta_string_310 = {35, "->arena, NULL, 0, string_builder);\n"};
+static String meta_string_311 = {22, "string_builder_append("};
+static String meta_string_312 = {26, "->current_string_builder, "};
+static String meta_string_313 = {9, "->arena, "};
+static String meta_string_314 = {12, ", 0, NULL);\n"};
+static String meta_string_315 = {1, "#"};
+static String meta_string_316 = {1, "("};
+static String meta_string_317 = {1, " "};
+static String meta_string_318 = {1, ")"};
+static String meta_string_319 = {4, "->W_"};
+static String meta_string_320 = {8, " = meta_"};
+static String meta_string_321 = {1, "("};
+static String meta_string_322 = {4, "->W_"};
+static String meta_string_323 = {3, " ? "};
+static String meta_string_324 = {4, "->W_"};
+static String meta_string_325 = {6, " : 0, "};
+static String meta_string_326 = {3, ");\n"};
+static String meta_string_327 = {1, ">"};
+static String meta_string_328 = {1, "<"};
+static String meta_string_329 = {22, "string_builder_append("};
+static String meta_string_330 = {26, "->current_string_builder, "};
+static String meta_string_331 = {25, "->arena, NULL, 1, NULL);\n"};
+static String meta_string_332 = {22, "string_builder_append("};
+static String meta_string_333 = {26, "->current_string_builder, "};
+static String meta_string_334 = {26, "->arena, NULL, -1, NULL);\n"};
+static String meta_string_335 = {36, "StringBuilder* named_string_builder_"};
+static String meta_string_336 = {2, ";\n"};
+static String meta_string_337 = {1, "0"};
+static String meta_string_338 = {1, "1"};
+static String meta_string_339 = {1, "2"};
+static String meta_string_340 = {1, "3"};
+static String meta_string_341 = {1, "4"};
+static String meta_string_342 = {1, "5"};
+static String meta_string_343 = {1, "6"};
+static String meta_string_344 = {1, "7"};
+static String meta_string_345 = {1, "8"};
+static String meta_string_346 = {1, "9"};
+static String meta_string_347 = {1, "{"};
+static String meta_string_348 = {1, "*"};
+static String meta_string_349 = {1, "}"};
+static String meta_string_350 = {7, "int i;\n"};
+static String meta_string_351 = {7, "int i;\n"};
+static String meta_string_352 = {14, "for (i=0; i < "};
+static String meta_string_353 = {9, "; i++) {\n"};
+static String meta_string_354 = {22, "string_builder_append("};
+static String meta_string_355 = {26, "->current_string_builder, "};
+static String meta_string_356 = {9, "->arena, "};
+static String meta_string_357 = {12, ", 0, NULL);\n"};
+static String meta_string_358 = {2, "}\n"};
+static String meta_string_359 = {1, "("};
+static String meta_string_360 = {4, "->W_"};
+static String meta_string_361 = {3, " ? "};
+static String meta_string_362 = {4, "->W_"};
+static String meta_string_363 = {5, " : 0)"};
+static String meta_string_364 = {1, "("};
+static String meta_string_365 = {1, "-"};
+static String meta_string_366 = {1, ")"};
+static String meta_string_367 = {2, "(("};
+static String meta_string_368 = {4, "->W_"};
+static String meta_string_369 = {3, " ? "};
+static String meta_string_370 = {4, "->W_"};
+static String meta_string_371 = {6, " : 0)-"};
+static String meta_string_372 = {1, ")"};
+static String meta_string_373 = {7, "number("};
+static String meta_string_374 = {1, ")"};
+static String meta_string_375 = {2, "(0"};
+static String meta_string_376 = {1, ")"};
+static String meta_string_377 = {25, "+(meta_action_first_byte("};
+static String meta_string_378 = {1, ")"};
+static String meta_string_379 = {1, ")"};
+static String meta_string_380 = {2, "<<"};
+static String meta_string_381 = {1, "\""};
+static String meta_string_382 = {1, "\""};
+static String meta_string_383 = {14, "static String "};
+static String meta_string_384 = {7, "string_"};
+static String meta_string_385 = {4, " = {"};
+static String meta_string_386 = {3, ", \""};
+static String meta_string_387 = {4, "\"};\n"};
+static String meta_string_388 = {2, "(&"};
+static String meta_string_389 = {7, "string_"};
+static String meta_string_390 = {1, ")"};
+static String meta_string_391 = {1, "("};
+static String meta_string_392 = {1, ")"};
+static String meta_string_393 = {10, "(((struct "};
+static String meta_string_394 = {6, "Action"};
+static String meta_string_395 = {18, "Vars*)variables)->"};
+static String meta_string_396 = {1, ")"};
+static String meta_string_397 = {4, ".len"};
+static String meta_string_398 = {15, "meta_action_len"};
+static String meta_string_399 = {6, ".count"};
+static String meta_string_400 = {17, "meta_action_count"};
+static String meta_string_401 = {2, "W["};
+static String meta_string_402 = {1, "]"};
+static String meta_string_403 = {15, "unsigned int W_"};
+static String meta_string_404 = {2, ";\n"};
+static String meta_string_405 = {1, "\""};
+static String meta_string_406 = {1, "\'"};
+static String meta_string_407 = {1, "\'"};
+static String meta_string_408 = {14, "static String "};
+static String meta_string_409 = {7, "string_"};
+static String meta_string_410 = {4, " = {"};
+static String meta_string_411 = {3, ", \""};
+static String meta_string_412 = {4, "\"};\n"};
+static String meta_string_413 = {2, "(&"};
+static String meta_string_414 = {7, "string_"};
+static String meta_string_415 = {1, ")"};
+static String meta_string_416 = {1, "\""};
+static String meta_string_417 = {2, "\\\""};
+static String meta_string_418 = {1, "\'"};
+static String meta_string_419 = {1, "\\"};
+static String meta_string_420 = {1, "a"};
+static String meta_string_421 = {1, "b"};
+static String meta_string_422 = {1, "c"};
+static String meta_string_423 = {1, "d"};
+static String meta_string_424 = {1, "e"};
+static String meta_string_425 = {1, "f"};
+static String meta_string_426 = {1, "g"};
+static String meta_string_427 = {1, "h"};
+static String meta_string_428 = {1, "i"};
+static String meta_string_429 = {1, "j"};
+static String meta_string_430 = {1, "k"};
+static String meta_string_431 = {1, "l"};
+static String meta_string_432 = {1, "m"};
+static String meta_string_433 = {1, "n"};
+static String meta_string_434 = {1, "o"};
+static String meta_string_435 = {1, "p"};
+static String meta_string_436 = {1, "q"};
+static String meta_string_437 = {1, "r"};
+static String meta_string_438 = {1, "s"};
+static String meta_string_439 = {1, "t"};
+static String meta_string_440 = {1, "u"};
+static String meta_string_441 = {1, "v"};
+static String meta_string_442 = {1, "w"};
+static String meta_string_443 = {1, "x"};
+static String meta_string_444 = {1, "y"};
+static String meta_string_445 = {1, "z"};
+static String meta_string_446 = {1, "A"};
+static String meta_string_447 = {1, "B"};
+static String meta_string_448 = {1, "C"};
+static String meta_string_449 = {1, "D"};
+static String meta_string_450 = {1, "E"};
+static String meta_string_451 = {1, "F"};
+static String meta_string_452 = {1, "G"};
+static String meta_string_453 = {1, "H"};
+static String meta_string_454 = {1, "I"};
+static String meta_string_455 = {1, "J"};
+static String meta_string_456 = {1, "K"};
+static String meta_string_457 = {1, "L"};
+static String meta_string_458 = {1, "M"};
+static String meta_string_459 = {1, "N"};
+static String meta_string_460 = {1, "O"};
+static String meta_string_461 = {1, "P"};
+static String meta_string_462 = {1, "Q"};
+static String meta_string_463 = {1, "R"};
+static String meta_string_464 = {1, "S"};
+static String meta_string_465 = {1, "T"};
+static String meta_string_466 = {1, "U"};
+static String meta_string_467 = {1, "V"};
+static String meta_string_468 = {1, "W"};
+static String meta_string_469 = {1, "X"};
+static String meta_string_470 = {1, "Y"};
+static String meta_string_471 = {1, "Z"};
+static String meta_string_472 = {1, " "};
+static String meta_string_473 = {1, "\n"};
 MetaAction meta_rule_main(MetaParseState* parse_state);
 struct meta_Action1Vars {
     MetaAction xs;
@@ -527,11 +536,7 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state);
 struct meta_Action5Vars {
     MetaAction x;
 };
-struct meta_Action6Vars {
-};
 MetaAction meta_rule_metaName(MetaParseState* parse_state);
-struct meta_Action7Vars {
-};
 MetaAction meta_rule_ors(MetaParseState* parse_state);
 struct meta_Action8Vars {
     MetaAction x;
@@ -542,13 +547,7 @@ struct meta_Action9Vars {
     MetaAction x;
 };
 MetaAction meta_rule_maybeorbar(MetaParseState* parse_state);
-struct meta_Action10Vars {
-};
-struct meta_Action11Vars {
-};
 MetaAction meta_rule_orbar(MetaParseState* parse_state);
-struct meta_Action12Vars {
-};
 MetaAction meta_rule_orcase(MetaParseState* parse_state);
 struct meta_Action13Vars {
     MetaAction x;
@@ -576,8 +575,6 @@ MetaAction meta_rule_matchAssign(MetaParseState* parse_state);
 struct meta_Action19Vars {
     MetaAction x;
 };
-struct meta_Action20Vars {
-};
 MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state);
 struct meta_Action21Vars {
     MetaAction x;
@@ -589,26 +586,12 @@ struct meta_Action23Vars {
     MetaAction x;
 };
 MetaAction meta_rule_opBind(MetaParseState* parse_state);
-struct meta_Action24Vars {
-};
 MetaAction meta_rule_opStar(MetaParseState* parse_state);
-struct meta_Action25Vars {
-};
 MetaAction meta_rule_opLookahead(MetaParseState* parse_state);
-struct meta_Action26Vars {
-};
 MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state);
-struct meta_Action27Vars {
-};
 MetaAction meta_rule_opAny(MetaParseState* parse_state);
-struct meta_Action28Vars {
-};
 MetaAction meta_rule_opOr(MetaParseState* parse_state);
-struct meta_Action29Vars {
-};
 MetaAction meta_rule_opAction(MetaParseState* parse_state);
-struct meta_Action30Vars {
-};
 MetaAction meta_rule_sepBit(MetaParseState* parse_state);
 struct meta_Action31Vars {
     MetaAction x;
@@ -617,13 +600,7 @@ MetaAction meta_rule_maybeBit(MetaParseState* parse_state);
 struct meta_Action32Vars {
     MetaAction x;
 };
-struct meta_Action33Vars {
-};
 MetaAction meta_rule_bit(MetaParseState* parse_state);
-struct meta_Action34Vars {
-};
-struct meta_Action35Vars {
-};
 MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state);
 struct meta_Action36Vars {
     MetaAction x;
@@ -631,8 +608,6 @@ struct meta_Action36Vars {
 struct meta_Action37Vars {
     MetaAction xs;
 };
-struct meta_Action38Vars {
-};
 struct meta_Action39Vars {
     MetaAction x;
 };
@@ -640,11 +615,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state);
 struct meta_Action40Vars {
     MetaAction xs;
 };
-struct meta_Action41Vars {
-};
 MetaAction meta_rule_genRuntime(MetaParseState* parse_state);
-struct meta_Action42Vars {
-};
 MetaAction meta_rule_actionexpr(MetaParseState* parse_state);
 struct meta_Action43Vars {
     MetaAction x;
@@ -653,15 +624,16 @@ struct meta_Action43Vars {
 };
 struct meta_Action44Vars {
     MetaAction x;
+    MetaAction ys;
     MetaAction runtime;
 };
 struct meta_Action45Vars {
     MetaAction x;
-    MetaAction ys;
     MetaAction runtime;
 };
 struct meta_Action46Vars {
     MetaAction x;
+    MetaAction ys;
     MetaAction runtime;
 };
 struct meta_Action47Vars {
@@ -685,251 +657,91 @@ struct meta_Action51Vars {
     MetaAction runtime;
 };
 struct meta_Action52Vars {
+    MetaAction x;
+    MetaAction runtime;
+};
+struct meta_Action53Vars {
     MetaAction x;
     MetaAction y;
     MetaAction z;
     MetaAction runtime;
 };
-struct meta_Action53Vars {
+struct meta_Action54Vars {
     MetaAction xs;
     MetaAction runtime;
 };
 MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state);
-struct meta_Action54Vars {
-    MetaAction x;
-};
-MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state);
 struct meta_Action55Vars {
     MetaAction x;
 };
+MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state);
 struct meta_Action56Vars {
+    MetaAction x;
 };
 MetaAction meta_rule_digit(MetaParseState* parse_state);
-struct meta_Action57Vars {
-};
-struct meta_Action58Vars {
-};
-struct meta_Action59Vars {
-};
-struct meta_Action60Vars {
-};
-struct meta_Action61Vars {
-};
-struct meta_Action62Vars {
-};
-struct meta_Action63Vars {
-};
-struct meta_Action64Vars {
-};
-struct meta_Action65Vars {
-};
-struct meta_Action66Vars {
-};
 MetaAction meta_rule_placeholder(MetaParseState* parse_state);
-struct meta_Action67Vars {
+struct meta_Action68Vars {
     MetaAction x;
     MetaAction y;
     MetaAction runtime;
 };
 MetaAction meta_rule_expr(MetaParseState* parse_state);
-struct meta_Action68Vars {
+struct meta_Action69Vars {
     MetaAction x;
     MetaAction runtime;
 };
-struct meta_Action69Vars {
+struct meta_Action70Vars {
     MetaAction x;
     MetaAction y;
     MetaAction runtime;
 };
-struct meta_Action70Vars {
+struct meta_Action71Vars {
     MetaAction y;
 };
-struct meta_Action71Vars {
+struct meta_Action72Vars {
     MetaAction xs;
 };
 MetaAction meta_rule_numberPart(MetaParseState* parse_state);
-struct meta_Action72Vars {
+struct meta_Action73Vars {
     MetaAction x;
     MetaAction y;
 };
 MetaAction meta_rule_maybeShift(MetaParseState* parse_state);
-struct meta_Action73Vars {
-};
-struct meta_Action74Vars {
-};
 MetaAction meta_rule_string(MetaParseState* parse_state);
-struct meta_Action75Vars {
+struct meta_Action76Vars {
     MetaAction xs;
     MetaAction runtime;
 };
 MetaAction meta_rule_dotname(MetaParseState* parse_state);
-struct meta_Action76Vars {
+struct meta_Action77Vars {
     MetaAction x;
     MetaAction y;
 };
 MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state);
-struct meta_Action77Vars {
+struct meta_Action78Vars {
     MetaAction x;
 };
 MetaAction meta_rule_nextname(MetaParseState* parse_state);
-struct meta_Action78Vars {
-};
-struct meta_Action79Vars {
-};
 MetaAction meta_rule_wvar(MetaParseState* parse_state);
-struct meta_Action80Vars {
+struct meta_Action81Vars {
     MetaAction x;
 };
 MetaAction meta_rule_stringInner(MetaParseState* parse_state);
-struct meta_Action81Vars {
-};
-struct meta_Action82Vars {
-};
 MetaAction meta_rule_charString(MetaParseState* parse_state);
-struct meta_Action83Vars {
+struct meta_Action84Vars {
     MetaAction xs;
 };
 MetaAction meta_rule_charStringInner(MetaParseState* parse_state);
-struct meta_Action84Vars {
-};
-struct meta_Action85Vars {
-};
-struct meta_Action86Vars {
-};
 MetaAction meta_rule_stringEscape(MetaParseState* parse_state);
-struct meta_Action87Vars {
-};
 MetaAction meta_rule_ruleName(MetaParseState* parse_state);
-struct meta_Action88Vars {
-};
 MetaAction meta_rule_variableName(MetaParseState* parse_state);
-struct meta_Action89Vars {
-};
 MetaAction meta_rule_name(MetaParseState* parse_state);
-struct meta_Action90Vars {
-};
 MetaAction meta_rule_char(MetaParseState* parse_state);
-struct meta_Action91Vars {
-};
-struct meta_Action92Vars {
-};
 MetaAction meta_rule_lower(MetaParseState* parse_state);
-struct meta_Action93Vars {
-};
-struct meta_Action94Vars {
-};
-struct meta_Action95Vars {
-};
-struct meta_Action96Vars {
-};
-struct meta_Action97Vars {
-};
-struct meta_Action98Vars {
-};
-struct meta_Action99Vars {
-};
-struct meta_Action100Vars {
-};
-struct meta_Action101Vars {
-};
-struct meta_Action102Vars {
-};
-struct meta_Action103Vars {
-};
-struct meta_Action104Vars {
-};
-struct meta_Action105Vars {
-};
-struct meta_Action106Vars {
-};
-struct meta_Action107Vars {
-};
-struct meta_Action108Vars {
-};
-struct meta_Action109Vars {
-};
-struct meta_Action110Vars {
-};
-struct meta_Action111Vars {
-};
-struct meta_Action112Vars {
-};
-struct meta_Action113Vars {
-};
-struct meta_Action114Vars {
-};
-struct meta_Action115Vars {
-};
-struct meta_Action116Vars {
-};
-struct meta_Action117Vars {
-};
-struct meta_Action118Vars {
-};
 MetaAction meta_rule_upper(MetaParseState* parse_state);
-struct meta_Action119Vars {
-};
-struct meta_Action120Vars {
-};
-struct meta_Action121Vars {
-};
-struct meta_Action122Vars {
-};
-struct meta_Action123Vars {
-};
-struct meta_Action124Vars {
-};
-struct meta_Action125Vars {
-};
-struct meta_Action126Vars {
-};
-struct meta_Action127Vars {
-};
-struct meta_Action128Vars {
-};
-struct meta_Action129Vars {
-};
-struct meta_Action130Vars {
-};
-struct meta_Action131Vars {
-};
-struct meta_Action132Vars {
-};
-struct meta_Action133Vars {
-};
-struct meta_Action134Vars {
-};
-struct meta_Action135Vars {
-};
-struct meta_Action136Vars {
-};
-struct meta_Action137Vars {
-};
-struct meta_Action138Vars {
-};
-struct meta_Action139Vars {
-};
-struct meta_Action140Vars {
-};
-struct meta_Action141Vars {
-};
-struct meta_Action142Vars {
-};
-struct meta_Action143Vars {
-};
-struct meta_Action144Vars {
-};
 MetaAction meta_rule_number(MetaParseState* parse_state);
-struct meta_Action145Vars {
-};
 MetaAction meta_rule_space(MetaParseState* parse_state);
-struct meta_Action146Vars {
-};
 MetaAction meta_rule_spacechar(MetaParseState* parse_state);
-struct meta_Action147Vars {
-};
-struct meta_Action148Vars {
-};
 
 void meta_action_1(void* runtime, void* variables) {
     StringBuilder* string_builder;
@@ -1119,30 +931,32 @@ void meta_action_11(void* runtime, void* variables) {
 }
 
 void meta_action_13(void* runtime, void* variables) {
-    StringBuilder* last_string_builder;
     StringBuilder* string_builder;
+    StringBuilder* last_string_builder;
     ((meta_Runtime*)runtime)->W_0 = meta_inc(((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0, 1);
-    last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
-    ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_94), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_95), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_96), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_variables = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_variables);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_97), 0, NULL);
-    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_98), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_99), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_94), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_95), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_orInit = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_orInit);
     meta_action_run(&(((struct meta_Action13Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    if (((meta_Runtime*)runtime)->named_string_builder_variables->pre_first->next) {
+        last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
+        string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
+        ((meta_Runtime*)runtime)->current_string_builder = string_builder;
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_96), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_97), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_98), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_variables);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_99), 0, NULL);
+        ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    }
 }
 
 void meta_action_14(void* runtime, void* variables) {
@@ -1222,10 +1036,14 @@ void meta_action_19(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_121), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_122), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_123), 0, NULL);
-    meta_action_run(&(((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_124), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_125), 0, NULL);
+    meta_action_run(&(((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_126), 0, NULL);
 }
 
 void meta_action_20(void* runtime, void* variables) {
@@ -1237,32 +1055,32 @@ void meta_action_21(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_125))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_126), 0, NULL);
-    }
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_127))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_128), 0, NULL);
     }
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_129))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_130), 0, NULL);
     }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_131))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_132), 0, NULL);
+    }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_131), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_132), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_133), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_134), 0, NULL);
-    meta_action_run(&(((struct meta_Action21Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_135), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_136), 0, NULL);
+    meta_action_run(&(((struct meta_Action21Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_137), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_138), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_139), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_140), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_141), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_142), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_143), 0, NULL);
 }
 
 void meta_action_22(void* runtime, void* variables) {
@@ -1271,27 +1089,27 @@ void meta_action_22(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_142))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_143), 0, NULL);
-    }
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_144))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_145), 0, NULL);
     }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_146))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_147), 0, NULL);
+    }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_146), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_147), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_148), 0, NULL);
-    meta_action_run(&(((struct meta_Action22Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_149), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_150), 0, NULL);
+    meta_action_run(&(((struct meta_Action22Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_151), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_152), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_153), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_154), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_155), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_156), 0, NULL);
 }
 
 void meta_action_23(void* runtime, void* variables) {
@@ -1299,14 +1117,14 @@ void meta_action_23(void* runtime, void* variables) {
 }
 
 void meta_action_31(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_163), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_164), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_165), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_166), 0, NULL);
     meta_action_run(&(((struct meta_Action31Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_32(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action32Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_165), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_167), 0, NULL);
 }
 
 void meta_action_33(void* runtime, void* variables) {
@@ -1316,15 +1134,15 @@ void meta_action_34(void* runtime, void* variables) {
 }
 
 void meta_action_35(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_168), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_170), 0, NULL);
 }
 
 void meta_action_36(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_169), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_171), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_170), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_172), 0, NULL);
     meta_action_run(&(((struct meta_Action36Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_171), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_173), 0, NULL);
 }
 
 void meta_action_37(void* runtime, void* variables) {
@@ -1333,39 +1151,39 @@ void meta_action_37(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_173))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_174), 0, NULL);
-    }
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_175))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_176), 0, NULL);
     }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_177))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_178), 0, NULL);
+    }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_177), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_178), 0, NULL);
-    meta_action_run(&(((struct meta_Action37Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_179), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_180), 0, NULL);
+    meta_action_run(&(((struct meta_Action37Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_181), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_182), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_182), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_183), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_184), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_185), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_186), 0, NULL);
 }
 
 void meta_action_38(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_185), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_186), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_187), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_188), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_188), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_189), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_190), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_191), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_192), 0, NULL);
 }
 
 void meta_action_39(void* runtime, void* variables) {
@@ -1374,27 +1192,27 @@ void meta_action_39(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_191))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_192), 0, NULL);
-    }
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_193))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_194), 0, NULL);
     }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_195))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_196), 0, NULL);
+    }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_195), 0, NULL);
-    meta_action_run(&(((struct meta_Action39Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_196), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_197), 0, NULL);
+    meta_action_run(&(((struct meta_Action39Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_198), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_199), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_200), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_201), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_201), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_202), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_203), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_204), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_205), 0, NULL);
 }
 
 void meta_action_40(void* runtime, void* variables) {
@@ -1403,275 +1221,288 @@ void meta_action_40(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_206), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_208), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_207), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_209), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_208), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_210), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_actionVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_actionVars);
     meta_action_run(&(((struct meta_Action40Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_209), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_210), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_211), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_212), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_orInit;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_211), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_212), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_213), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_214), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_215), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_216), 0, NULL);
+    if (((meta_Runtime*)runtime)->named_string_builder_variables->pre_first->next) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_215), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_216), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_217), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_218), 0, NULL);
+    }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_217), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_218), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_219), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_220), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_221), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_222), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_223), 0, NULL);
 }
 
 void meta_action_41(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_222), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_223), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_224), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_225), 0, NULL);
 }
 
 void meta_action_42(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_224), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_226), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_225), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_227), 0, NULL);
 }
 
 void meta_action_43(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_231), 0, NULL);
+    meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_232), 0, NULL);
+    meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_233), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    meta_action_run(&(((struct meta_Action43Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_234), 0, NULL);
+}
+
+void meta_action_44(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_229))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_230), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_238))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_239), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_231))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_232), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_240))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_241), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_233), 0, NULL);
-    meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_234), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_235), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_236), 0, NULL);
-    meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_237), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    meta_action_run(&(((struct meta_Action43Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_238), 0, NULL);
-}
-
-void meta_action_44(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_241), 0, NULL);
-    meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_242), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_243), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_244), 0, NULL);
-    meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_245), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_246), 0, NULL);
-    meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_247), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    meta_action_run(&(((struct meta_Action44Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_248), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_247), 0, NULL);
 }
 
 void meta_action_45(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_250), 0, NULL);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_251), 0, NULL);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_252), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_253), 0, NULL);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_254), 0, NULL);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_255), 0, NULL);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_256), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_257), 0, NULL);
+}
+
+void meta_action_46(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_252))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_253), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_261))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_262), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_254))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_255), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_263))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_264), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_256), 0, NULL);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_257), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_258), 0, NULL);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_259), 0, NULL);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_260), 0, NULL);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_261), 0, NULL);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_262), 0, NULL);
-}
-
-void meta_action_46(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_264), 0, NULL);
-    meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_265), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_266), 0, NULL);
-    meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_267), 0, NULL);
-    meta_action_run(&(((struct meta_Action46Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_268), 0, NULL);
+    meta_action_run(&(((struct meta_Action46Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_269), 0, NULL);
+    meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_270), 0, NULL);
+    meta_action_run(&(((struct meta_Action46Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_271), 0, NULL);
 }
 
 void meta_action_47(void* runtime, void* variables) {
-    StringBuilder* last_string_builder;
-    StringBuilder* string_builder;
-    last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
-    ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_270))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_271), 0, NULL);
-    }
-    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_272), 0, NULL);
-    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_273), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_274), 0, NULL);
-    meta_action_run(&(((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_275), 0, NULL);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_276), 0, NULL);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_277), 0, NULL);
 }
 
 void meta_action_48(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_276), 0, NULL);
-    meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_277), 0, NULL);
+    StringBuilder* last_string_builder;
+    StringBuilder* string_builder;
+    last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
+    ((meta_Runtime*)runtime)->current_string_builder = string_builder;
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_279))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_280), 0, NULL);
+    }
+    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_281), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_278), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_282), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_279), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_283), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_280), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_284), 0, NULL);
 }
 
 void meta_action_49(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_281), 0, NULL);
-    meta_action_run(&(((struct meta_Action49Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_282), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_285), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_283), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_286), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_284), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_287), 0, NULL);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_288), 0, NULL);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_289), 0, NULL);
 }
 
 void meta_action_50(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_290), 0, NULL);
+    meta_action_run(&(((struct meta_Action50Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_291), 0, NULL);
+    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_292), 0, NULL);
+    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_293), 0, NULL);
+}
+
+void meta_action_51(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     ((meta_Runtime*)runtime)->W_1 = meta_inc(((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0, 1);
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_285), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_294), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_286), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_295), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholders;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_287), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_296), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_288), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_297), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_placeholderVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_placeholderVars);
-    meta_action_run(&(((struct meta_Action50Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_289), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_290), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_298), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_299), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_291))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_292), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_300))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_301), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_293), 0, NULL);
-    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_294), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_295), 0, NULL);
-    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_296), 0, NULL);
-    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_297), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_298), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_299), 0, NULL);
-    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_300), 0, NULL);
-    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_301), 0, NULL);
-}
-
-void meta_action_51(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_302), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_303), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_304), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_305), 0, NULL);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_306), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_307), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_308), 0, NULL);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_309), 0, NULL);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_310), 0, NULL);
 }
 
 void meta_action_52(void* runtime, void* variables) {
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_310), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_311), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_312), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_313), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_314), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_315), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_316), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_317), 0, NULL);
 }
 
 void meta_action_53(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_320), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_319), 0, NULL);
+    meta_action_run(&(((struct meta_Action53Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_320), 0, NULL);
+    meta_action_run(&(((struct meta_Action53Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_321), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_322), 0, NULL);
-    meta_action_run(&(((struct meta_Action53Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action53Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_323), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_324), 0, NULL);
-    meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action53Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_325), 0, NULL);
+    meta_action_run(&(((struct meta_Action53Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_326), 0, NULL);
 }
 
 void meta_action_54(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_329), 0, NULL);
+    meta_action_run(&(((struct meta_Action54Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_330), 0, NULL);
+    meta_action_run(&(((struct meta_Action54Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_331), 0, NULL);
+    meta_action_run(&(((struct meta_Action54Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_332), 0, NULL);
+    meta_action_run(&(((struct meta_Action54Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_333), 0, NULL);
+    meta_action_run(&(((struct meta_Action54Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_334), 0, NULL);
+}
+
+void meta_action_55(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     MetaAction action;
@@ -1679,143 +1510,143 @@ void meta_action_54(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_namedStringBuilders;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    action = (((struct meta_Action54Vars*)variables)->x);
+    action = (((struct meta_Action55Vars*)variables)->x);
     string_slice(action.input_buffer, action.start, action.end, &slice);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, &slice)) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_326), 0, NULL);
-        meta_action_run(&(((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_327), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_335), 0, NULL);
+        meta_action_run(&(((struct meta_Action55Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_336), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    meta_action_run(&(((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action55Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
-void meta_action_55(void* runtime, void* variables) {
-    meta_action_run(&(((struct meta_Action55Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+void meta_action_56(void* runtime, void* variables) {
+    meta_action_run(&(((struct meta_Action56Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
-void meta_action_67(void* runtime, void* variables) {
+void meta_action_68(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholderVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_341))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_342), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_350))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_351), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_343), 0, NULL);
-    meta_action_run(&(((struct meta_Action67Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_344), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_352), 0, NULL);
+    meta_action_run(&(((struct meta_Action68Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_353), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_345), 0, NULL);
-    meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_346), 0, NULL);
-    meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_347), 0, NULL);
-    meta_action_run(&(((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_348), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_349), 0, NULL);
-}
-
-void meta_action_68(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_350), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_354), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_351), 0, NULL);
-    meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_352), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_355), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_353), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_356), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_354), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_357), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_358), 0, NULL);
 }
 
 void meta_action_69(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_358), 0, NULL);
-    meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_359), 0, NULL);
-    meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_360), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_361), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_360), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_361), 0, NULL);
+    meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_362), 0, NULL);
-    meta_action_run(&(((struct meta_Action69Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_363), 0, NULL);
 }
 
 void meta_action_70(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_367), 0, NULL);
+    meta_action_run(&(((struct meta_Action70Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_368), 0, NULL);
+    meta_action_run(&(((struct meta_Action70Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_369), 0, NULL);
+    meta_action_run(&(((struct meta_Action70Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_370), 0, NULL);
+    meta_action_run(&(((struct meta_Action70Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_371), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_372), 0, NULL);
 }
 
 void meta_action_71(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_366), 0, NULL);
-    meta_action_run(&(((struct meta_Action71Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_367), 0, NULL);
+    meta_action_run(&(((struct meta_Action71Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_72(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_368), 0, NULL);
-    meta_action_run(&(((struct meta_Action72Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_369), 0, NULL);
-    meta_action_run(&(((struct meta_Action72Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_370), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_375), 0, NULL);
+    meta_action_run(&(((struct meta_Action72Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_376), 0, NULL);
 }
 
-void meta_action_74(void* runtime, void* variables) {
+void meta_action_73(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_377), 0, NULL);
+    meta_action_run(&(((struct meta_Action73Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_378), 0, NULL);
+    meta_action_run(&(((struct meta_Action73Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_379), 0, NULL);
 }
 
 void meta_action_75(void* runtime, void* variables) {
+}
+
+void meta_action_76(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     ((meta_Runtime*)runtime)->W_2 = meta_inc(((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0, 1);
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_374), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_383), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_375), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_384), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_376), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, meta_action_count((((struct meta_Action75Vars*)variables)->xs))), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_377), 0, NULL);
-    meta_action_run(&(((struct meta_Action75Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_378), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_385), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, meta_action_count((((struct meta_Action76Vars*)variables)->xs))), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_386), 0, NULL);
+    meta_action_run(&(((struct meta_Action76Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_387), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_379), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_388), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_380), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_389), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_381), 0, NULL);
-}
-
-void meta_action_76(void* runtime, void* variables) {
-    meta_action_run(&(((struct meta_Action76Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_382), 0, NULL);
-    meta_action_run(&(((struct meta_Action76Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_383), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_390), 0, NULL);
 }
 
 void meta_action_77(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_384), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_385), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_386), 0, NULL);
+    meta_action_run(&(((struct meta_Action77Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_391), 0, NULL);
     meta_action_run(&(((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_387), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_392), 0, NULL);
 }
 
 void meta_action_78(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_389), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_393), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_394), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_395), 0, NULL);
+    meta_action_run(&(((struct meta_Action78Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_396), 0, NULL);
 }
 
 void meta_action_79(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_391), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_398), 0, NULL);
 }
 
 void meta_action_80(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_400), 0, NULL);
+}
+
+void meta_action_81(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     MetaAction action;
@@ -1823,43 +1654,43 @@ void meta_action_80(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_namedWs;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    action = (((struct meta_Action80Vars*)variables)->x);
+    action = (((struct meta_Action81Vars*)variables)->x);
     string_slice(action.input_buffer, action.start, action.end, &slice);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, &slice)) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_394), 0, NULL);
-        meta_action_run(&(((struct meta_Action80Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_395), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_403), 0, NULL);
+        meta_action_run(&(((struct meta_Action81Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_404), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    meta_action_run(&(((struct meta_Action80Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action81Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
-void meta_action_83(void* runtime, void* variables) {
+void meta_action_84(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     ((meta_Runtime*)runtime)->W_2 = meta_inc(((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0, 1);
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_399), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_408), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_400), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_409), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_401), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, meta_action_count((((struct meta_Action83Vars*)variables)->xs))), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_402), 0, NULL);
-    meta_action_run(&(((struct meta_Action83Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_403), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_410), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, meta_action_count((((struct meta_Action84Vars*)variables)->xs))), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_411), 0, NULL);
+    meta_action_run(&(((struct meta_Action84Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_412), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_404), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_413), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_405), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_414), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_406), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_415), 0, NULL);
 }
 
-void meta_action_85(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_408), 0, NULL);
+void meta_action_86(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_417), 0, NULL);
 }
 
 MetaAction meta_rule_main(MetaParseState* parse_state) {
@@ -1873,7 +1704,8 @@ MetaAction meta_rule_main(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action1Vars* vars1 = arena_alloc(parse_state->arena, sizeof(struct meta_Action1Vars));
+    void* vars1 = NULL;
+    vars1 = arena_alloc(parse_state->arena, sizeof(struct meta_Action1Vars));
     star_variables = list_create(parse_state->arena);
     star_start_pos = parse_state->pos;
     while (1) {
@@ -1886,13 +1718,13 @@ MetaAction meta_rule_main(MetaParseState* parse_state) {
         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
     }
     _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-    vars1->xs = _;
+    ((struct meta_Action1Vars*)vars1)->xs = _;
     if (_.valid) {
         _ = meta_rule_file(parse_state);
-        vars1->y = _;
+        ((struct meta_Action1Vars*)vars1)->y = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_1, (void*)vars1, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_1, vars1, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -1908,7 +1740,8 @@ MetaAction meta_rule_metaField(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action2Vars* vars2 = arena_alloc(parse_state->arena, sizeof(struct meta_Action2Vars));
+    void* vars2 = NULL;
+    vars2 = arena_alloc(parse_state->arena, sizeof(struct meta_Action2Vars));
     data = (&meta_string_1);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
@@ -1919,10 +1752,10 @@ MetaAction meta_rule_metaField(MetaParseState* parse_state) {
     }
     if (_.valid) {
         _ = meta_rule_name(parse_state);
-        vars2->x = _;
+        ((struct meta_Action2Vars*)vars2)->x = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_2, (void*)vars2, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_2, vars2, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -1940,7 +1773,8 @@ MetaAction meta_rule_file(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action3Vars* vars3 = arena_alloc(parse_state->arena, sizeof(struct meta_Action3Vars));
+    void* vars3 = NULL;
+    vars3 = arena_alloc(parse_state->arena, sizeof(struct meta_Action3Vars));
     star_variables = list_create(parse_state->arena);
     star_start_pos = parse_state->pos;
     while (1) {
@@ -1953,7 +1787,7 @@ MetaAction meta_rule_file(MetaParseState* parse_state) {
         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
     }
     _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-    vars3->xs = _;
+    ((struct meta_Action3Vars*)vars3)->xs = _;
     if (_.valid) {
         _ = meta_rule_space(parse_state);
         if (_.valid) {
@@ -1972,7 +1806,7 @@ MetaAction meta_rule_file(MetaParseState* parse_state) {
             meta_parse_state_backtrack(parse_state, nlookahead_pos);
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_3, (void*)vars3, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_3, vars3, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -1989,14 +1823,15 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action4Vars* vars4 = arena_alloc(parse_state->arena, sizeof(struct meta_Action4Vars));
+    void* vars4 = NULL;
+    vars4 = arena_alloc(parse_state->arena, sizeof(struct meta_Action4Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_ruleName(parse_state);
-        vars4->x = _;
+        ((struct meta_Action4Vars*)vars4)->x = _;
         if (_.valid) {
             _ = meta_rule_highlight(parse_state);
-            vars4->h = _;
+            ((struct meta_Action4Vars*)vars4)->h = _;
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
@@ -2012,7 +1847,7 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
                             _ = meta_rule_ors(parse_state);
-                            vars4->y = _;
+                            ((struct meta_Action4Vars*)vars4)->y = _;
                             if (_.valid) {
                                 _ = meta_rule_space(parse_state);
                                 if (_.valid) {
@@ -2026,7 +1861,7 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
                                     }
                                     if (_.valid) {
                                         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                                        return meta_action_create(meta_action_4, (void*)vars4, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                        return meta_action_create(meta_action_4, vars4, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                     }
                                 }
                             }
@@ -2049,7 +1884,8 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action5Vars* vars5 = arena_alloc(parse_state->arena, sizeof(struct meta_Action5Vars));
+    void* vars5 = NULL;
+    vars5 = arena_alloc(parse_state->arena, sizeof(struct meta_Action5Vars));
     data = (&meta_string_89);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
@@ -2060,7 +1896,7 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     }
     if (_.valid) {
         _ = meta_rule_metaName(parse_state);
-        vars5->x = _;
+        ((struct meta_Action5Vars*)vars5)->x = _;
         if (_.valid) {
             data = (&meta_string_90);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
@@ -2072,15 +1908,15 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_5, (void*)vars5, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_5, vars5, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action6Vars* vars6 = arena_alloc(parse_state->arena, sizeof(struct meta_Action6Vars));
+    void* vars6 = NULL;
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-    return meta_action_create(meta_action_6, (void*)vars6, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    return meta_action_create(meta_action_6, vars6, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
@@ -2111,11 +1947,12 @@ MetaAction meta_rule_ors(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action8Vars* vars8 = arena_alloc(parse_state->arena, sizeof(struct meta_Action8Vars));
+    void* vars8 = NULL;
+    vars8 = arena_alloc(parse_state->arena, sizeof(struct meta_Action8Vars));
     _ = meta_rule_maybeorbar(parse_state);
     if (_.valid) {
         _ = meta_rule_orcase(parse_state);
-        vars8->x = _;
+        ((struct meta_Action8Vars*)vars8)->x = _;
         if (_.valid) {
             star_variables = list_create(parse_state->arena);
             star_start_pos = parse_state->pos;
@@ -2129,10 +1966,10 @@ MetaAction meta_rule_ors(MetaParseState* parse_state) {
                 list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
             }
             _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            vars8->xs = _;
+            ((struct meta_Action8Vars*)vars8)->xs = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_8, (void*)vars8, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_8, vars8, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -2147,14 +1984,15 @@ MetaAction meta_rule_restorcase(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action9Vars* vars9 = arena_alloc(parse_state->arena, sizeof(struct meta_Action9Vars));
+    void* vars9 = NULL;
+    vars9 = arena_alloc(parse_state->arena, sizeof(struct meta_Action9Vars));
     _ = meta_rule_orbar(parse_state);
     if (_.valid) {
         _ = meta_rule_orcase(parse_state);
-        vars9->x = _;
+        ((struct meta_Action9Vars*)vars9)->x = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_9, (void*)vars9, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_9, vars9, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -2175,9 +2013,9 @@ MetaAction meta_rule_maybeorbar(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action11Vars* vars11 = arena_alloc(parse_state->arena, sizeof(struct meta_Action11Vars));
+    void* vars11 = NULL;
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-    return meta_action_create(meta_action_11, (void*)vars11, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    return meta_action_create(meta_action_11, vars11, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
@@ -2208,12 +2046,13 @@ MetaAction meta_rule_orcase(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action13Vars* vars13 = arena_alloc(parse_state->arena, sizeof(struct meta_Action13Vars));
+    void* vars13 = NULL;
+    vars13 = arena_alloc(parse_state->arena, sizeof(struct meta_Action13Vars));
     _ = meta_rule_matchAnd(parse_state);
-    vars13->x = _;
+    ((struct meta_Action13Vars*)vars13)->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_13, (void*)vars13, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_13, vars13, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -2226,28 +2065,30 @@ MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action14Vars* vars14 = arena_alloc(parse_state->arena, sizeof(struct meta_Action14Vars));
+    void* vars14 = NULL;
+    vars14 = arena_alloc(parse_state->arena, sizeof(struct meta_Action14Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_matchExpr(parse_state);
-        vars14->x = _;
+        ((struct meta_Action14Vars*)vars14)->x = _;
         if (_.valid) {
             _ = meta_rule_matchAnd(parse_state);
-            vars14->y = _;
+            ((struct meta_Action14Vars*)vars14)->y = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_14, (void*)vars14, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_14, vars14, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action15Vars* vars15 = arena_alloc(parse_state->arena, sizeof(struct meta_Action15Vars));
+    void* vars15 = NULL;
+    vars15 = arena_alloc(parse_state->arena, sizeof(struct meta_Action15Vars));
     _ = meta_rule_action(parse_state);
-    vars15->y = _;
+    ((struct meta_Action15Vars*)vars15)->y = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_15, (void*)vars15, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_15, vars15, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -2260,39 +2101,42 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action16Vars* vars16 = arena_alloc(parse_state->arena, sizeof(struct meta_Action16Vars));
+    void* vars16 = NULL;
+    vars16 = arena_alloc(parse_state->arena, sizeof(struct meta_Action16Vars));
     _ = meta_rule_opNegativeLookahead(parse_state);
     if (_.valid) {
         _ = meta_rule_matchExprPrimitive(parse_state);
-        vars16->x = _;
+        ((struct meta_Action16Vars*)vars16)->x = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_16, (void*)vars16, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_16, vars16, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action17Vars* vars17 = arena_alloc(parse_state->arena, sizeof(struct meta_Action17Vars));
+    void* vars17 = NULL;
+    vars17 = arena_alloc(parse_state->arena, sizeof(struct meta_Action17Vars));
     _ = meta_rule_opLookahead(parse_state);
     if (_.valid) {
         _ = meta_rule_matchExprPrimitive(parse_state);
-        vars17->x = _;
+        ((struct meta_Action17Vars*)vars17)->x = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_17, (void*)vars17, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_17, vars17, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action18Vars* vars18 = arena_alloc(parse_state->arena, sizeof(struct meta_Action18Vars));
+    void* vars18 = NULL;
+    vars18 = arena_alloc(parse_state->arena, sizeof(struct meta_Action18Vars));
     _ = meta_rule_matchExprRepeat(parse_state);
-    vars18->x = _;
+    ((struct meta_Action18Vars*)vars18)->x = _;
     if (_.valid) {
         _ = meta_rule_matchAssign(parse_state);
-        vars18->y = _;
+        ((struct meta_Action18Vars*)vars18)->y = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_18, (void*)vars18, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_18, vars18, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -2306,21 +2150,22 @@ MetaAction meta_rule_matchAssign(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action19Vars* vars19 = arena_alloc(parse_state->arena, sizeof(struct meta_Action19Vars));
+    void* vars19 = NULL;
+    vars19 = arena_alloc(parse_state->arena, sizeof(struct meta_Action19Vars));
     _ = meta_rule_opBind(parse_state);
     if (_.valid) {
         _ = meta_rule_variableName(parse_state);
-        vars19->x = _;
+        ((struct meta_Action19Vars*)vars19)->x = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_19, (void*)vars19, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_19, vars19, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action20Vars* vars20 = arena_alloc(parse_state->arena, sizeof(struct meta_Action20Vars));
+    void* vars20 = NULL;
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-    return meta_action_create(meta_action_20, (void*)vars20, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    return meta_action_create(meta_action_20, vars20, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
@@ -2333,9 +2178,10 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action21Vars* vars21 = arena_alloc(parse_state->arena, sizeof(struct meta_Action21Vars));
+    void* vars21 = NULL;
+    vars21 = arena_alloc(parse_state->arena, sizeof(struct meta_Action21Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
-    vars21->x = _;
+    ((struct meta_Action21Vars*)vars21)->x = _;
     if (_.valid) {
         _ = meta_rule_opStar(parse_state);
         if (_.valid) {
@@ -2349,30 +2195,32 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
             meta_parse_state_backtrack(parse_state, lookahead_pos);
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_21, (void*)vars21, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_21, vars21, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action22Vars* vars22 = arena_alloc(parse_state->arena, sizeof(struct meta_Action22Vars));
+    void* vars22 = NULL;
+    vars22 = arena_alloc(parse_state->arena, sizeof(struct meta_Action22Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
-    vars22->x = _;
+    ((struct meta_Action22Vars*)vars22)->x = _;
     if (_.valid) {
         _ = meta_rule_opStar(parse_state);
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_22, (void*)vars22, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_22, vars22, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action23Vars* vars23 = arena_alloc(parse_state->arena, sizeof(struct meta_Action23Vars));
+    void* vars23 = NULL;
+    vars23 = arena_alloc(parse_state->arena, sizeof(struct meta_Action23Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
-    vars23->x = _;
+    ((struct meta_Action23Vars*)vars23)->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_23, (void*)vars23, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_23, vars23, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -2387,7 +2235,7 @@ MetaAction meta_rule_opBind(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_155);
+    data = (&meta_string_157);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2412,7 +2260,7 @@ MetaAction meta_rule_opStar(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_156);
+    data = (&meta_string_158);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2437,7 +2285,7 @@ MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_157);
+    data = (&meta_string_159);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2462,7 +2310,7 @@ MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_158);
+    data = (&meta_string_160);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2487,7 +2335,7 @@ MetaAction meta_rule_opAny(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_159);
+    data = (&meta_string_161);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2512,7 +2360,7 @@ MetaAction meta_rule_opOr(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_160);
+    data = (&meta_string_162);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2537,7 +2385,7 @@ MetaAction meta_rule_opAction(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_161);
+    data = (&meta_string_163);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2564,11 +2412,12 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action31Vars* vars31 = arena_alloc(parse_state->arena, sizeof(struct meta_Action31Vars));
+    void* vars31 = NULL;
+    vars31 = arena_alloc(parse_state->arena, sizeof(struct meta_Action31Vars));
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = (&meta_string_162);
+        data = (&meta_string_164);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2584,10 +2433,10 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_.valid) {
         _ = meta_rule_maybeBit(parse_state);
-        vars31->x = _;
+        ((struct meta_Action31Vars*)vars31)->x = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_31, (void*)vars31, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_31, vars31, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -2601,20 +2450,21 @@ MetaAction meta_rule_maybeBit(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action32Vars* vars32 = arena_alloc(parse_state->arena, sizeof(struct meta_Action32Vars));
+    void* vars32 = NULL;
+    vars32 = arena_alloc(parse_state->arena, sizeof(struct meta_Action32Vars));
     _ = meta_rule_bit(parse_state);
-    vars32->x = _;
+    ((struct meta_Action32Vars*)vars32)->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_32, (void*)vars32, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_32, vars32, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action33Vars* vars33 = arena_alloc(parse_state->arena, sizeof(struct meta_Action33Vars));
+    void* vars33 = NULL;
     _ = meta_rule_lower(parse_state);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_33, (void*)vars33, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_33, vars33, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -2629,8 +2479,8 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action34Vars* vars34 = arena_alloc(parse_state->arena, sizeof(struct meta_Action34Vars));
-    data = (&meta_string_166);
+    void* vars34 = NULL;
+    data = (&meta_string_168);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2640,12 +2490,12 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     }
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_34, (void*)vars34, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_34, vars34, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action35Vars* vars35 = arena_alloc(parse_state->arena, sizeof(struct meta_Action35Vars));
-    data = (&meta_string_167);
+    void* vars35 = NULL;
+    data = (&meta_string_169);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2655,7 +2505,7 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     }
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_35, (void*)vars35, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_35, vars35, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -2673,17 +2523,19 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action36Vars* vars36 = arena_alloc(parse_state->arena, sizeof(struct meta_Action36Vars));
+    void* vars36 = NULL;
+    vars36 = arena_alloc(parse_state->arena, sizeof(struct meta_Action36Vars));
     _ = meta_rule_ruleName(parse_state);
-    vars36->x = _;
+    ((struct meta_Action36Vars*)vars36)->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_36, (void*)vars36, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_36, vars36, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action37Vars* vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
-    data = (&meta_string_172);
+    void* vars37 = NULL;
+    vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
+    data = (&meta_string_174);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -2704,28 +2556,29 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        vars37->xs = _;
+        ((struct meta_Action37Vars*)vars37)->xs = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_37, (void*)vars37, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_37, vars37, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action38Vars* vars38 = arena_alloc(parse_state->arena, sizeof(struct meta_Action38Vars));
+    void* vars38 = NULL;
     _ = meta_rule_opAny(parse_state);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_38, (void*)vars38, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_38, vars38, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action39Vars* vars39 = arena_alloc(parse_state->arena, sizeof(struct meta_Action39Vars));
+    void* vars39 = NULL;
+    vars39 = arena_alloc(parse_state->arena, sizeof(struct meta_Action39Vars));
     _ = meta_rule_charString(parse_state);
-    vars39->x = _;
+    ((struct meta_Action39Vars*)vars39)->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_39, (void*)vars39, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_39, vars39, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -2743,14 +2596,15 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action40Vars* vars40 = arena_alloc(parse_state->arena, sizeof(struct meta_Action40Vars));
+    void* vars40 = NULL;
+    vars40 = arena_alloc(parse_state->arena, sizeof(struct meta_Action40Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_opAction(parse_state);
         if (_.valid) {
             _ = meta_rule_space(parse_state);
             if (_.valid) {
-                data = (&meta_string_204);
+                data = (&meta_string_206);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -2771,11 +2625,11 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
                         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
                     }
                     _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    vars40->xs = _;
+                    ((struct meta_Action40Vars*)vars40)->xs = _;
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_205);
+                            data = (&meta_string_207);
                             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
@@ -2785,7 +2639,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
                             }
                             if (_.valid) {
                                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                                return meta_action_create(meta_action_40, (void*)vars40, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                return meta_action_create(meta_action_40, vars40, parse_state->input_buffer, action_start_pos, parse_state->pos);
                             }
                         }
                     }
@@ -2795,9 +2649,9 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action41Vars* vars41 = arena_alloc(parse_state->arena, sizeof(struct meta_Action41Vars));
+    void* vars41 = NULL;
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-    return meta_action_create(meta_action_41, (void*)vars41, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    return meta_action_create(meta_action_41, vars41, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
@@ -2810,7 +2664,7 @@ MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action42Vars* vars42 = arena_alloc(parse_state->arena, sizeof(struct meta_Action42Vars));
+    void* vars42 = NULL;
     lookahead_pos = parse_state->pos;
     if (parse_state->pos < parse_state->input_buffer->size) {
         parse_state->pos += 1;
@@ -2826,7 +2680,7 @@ MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, lookahead_pos);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_42, (void*)vars42, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_42, vars42, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -2844,10 +2698,76 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action43Vars* vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
+    void* vars43 = NULL;
+    vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
+    _ = meta_rule_space(parse_state);
+    if (_.valid) {
+        data = (&meta_string_228);
+        string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
+            parse_state->pos += data->size;
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        } else {
+            _ = meta_action_create_invalid();
+        }
+        if (_.valid) {
+            _ = meta_rule_stringBuilderName(parse_state);
+            ((struct meta_Action43Vars*)vars43)->x = _;
+            if (_.valid) {
+                data = (&meta_string_229);
+                string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
+                    parse_state->pos += data->size;
+                    _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                } else {
+                    _ = meta_action_create_invalid();
+                }
+                if (_.valid) {
+                    star_variables = list_create(parse_state->arena);
+                    star_start_pos = parse_state->pos;
+                    while (1) {
+                        star_pos = parse_state->pos;
+                        _ = meta_rule_actionexpr(parse_state);
+                        if (!_.valid) {
+                            meta_parse_state_backtrack(parse_state, star_pos);
+                            break;
+                        }
+                        list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
+                    }
+                    _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+                    ((struct meta_Action43Vars*)vars43)->ys = _;
+                    if (_.valid) {
+                        _ = meta_rule_space(parse_state);
+                        if (_.valid) {
+                            data = (&meta_string_230);
+                            string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
+                                parse_state->pos += data->size;
+                                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                            } else {
+                                _ = meta_action_create_invalid();
+                            }
+                            if (_.valid) {
+                                _ = meta_rule_genRuntime(parse_state);
+                                ((struct meta_Action43Vars*)vars43)->runtime = _;
+                                if (_.valid) {
+                                    meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                                    return meta_action_create(meta_action_43, vars43, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
+    action_start_pos = parse_state->pos;
+    void* vars44 = NULL;
+    vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_226);
+        data = (&meta_string_235);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2857,9 +2777,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
         }
         if (_.valid) {
             _ = meta_rule_nameAsActionLookup(parse_state);
-            vars43->x = _;
+            ((struct meta_Action44Vars*)vars44)->x = _;
             if (_.valid) {
-                data = (&meta_string_227);
+                data = (&meta_string_236);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -2880,11 +2800,11 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
                     }
                     _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    vars43->ys = _;
+                    ((struct meta_Action44Vars*)vars44)->ys = _;
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_228);
+                            data = (&meta_string_237);
                             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
@@ -2894,10 +2814,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                             }
                             if (_.valid) {
                                 _ = meta_rule_genRuntime(parse_state);
-                                vars43->runtime = _;
+                                ((struct meta_Action44Vars*)vars44)->runtime = _;
                                 if (_.valid) {
                                     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                                    return meta_action_create(meta_action_43, (void*)vars43, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return meta_action_create(meta_action_44, vars44, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -2908,10 +2828,11 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action44Vars* vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
+    void* vars45 = NULL;
+    vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_239);
+        data = (&meta_string_248);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2921,9 +2842,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
         }
         if (_.valid) {
             _ = meta_rule_string(parse_state);
-            vars44->x = _;
+            ((struct meta_Action45Vars*)vars45)->x = _;
             if (_.valid) {
-                data = (&meta_string_240);
+                data = (&meta_string_249);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -2933,10 +2854,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                 }
                 if (_.valid) {
                     _ = meta_rule_genRuntime(parse_state);
-                    vars44->runtime = _;
+                    ((struct meta_Action45Vars*)vars45)->runtime = _;
                     if (_.valid) {
                         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                        return meta_action_create(meta_action_44, (void*)vars44, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                        return meta_action_create(meta_action_45, vars45, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
@@ -2944,10 +2865,11 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action45Vars* vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
+    void* vars46 = NULL;
+    vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_249);
+        data = (&meta_string_258);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -2957,11 +2879,11 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
         }
         if (_.valid) {
             _ = meta_rule_stringBuilderName(parse_state);
-            vars45->x = _;
+            ((struct meta_Action46Vars*)vars46)->x = _;
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = (&meta_string_250);
+                    data = (&meta_string_259);
                     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
@@ -2982,11 +2904,11 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
                         }
                         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        vars45->ys = _;
+                        ((struct meta_Action46Vars*)vars46)->ys = _;
                         if (_.valid) {
                             _ = meta_rule_space(parse_state);
                             if (_.valid) {
-                                data = (&meta_string_251);
+                                data = (&meta_string_260);
                                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                     parse_state->pos += data->size;
@@ -2996,10 +2918,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                                 }
                                 if (_.valid) {
                                     _ = meta_rule_genRuntime(parse_state);
-                                    vars45->runtime = _;
+                                    ((struct meta_Action46Vars*)vars46)->runtime = _;
                                     if (_.valid) {
                                         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                                        return meta_action_create(meta_action_45, (void*)vars45, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                        return meta_action_create(meta_action_46, vars46, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                     }
                                 }
                             }
@@ -3011,10 +2933,11 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action46Vars* vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
+    void* vars47 = NULL;
+    vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_263);
+        data = (&meta_string_272);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -3024,23 +2947,24 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
         }
         if (_.valid) {
             _ = meta_rule_stringBuilderName(parse_state);
-            vars46->x = _;
+            ((struct meta_Action47Vars*)vars47)->x = _;
             if (_.valid) {
                 _ = meta_rule_genRuntime(parse_state);
-                vars46->runtime = _;
+                ((struct meta_Action47Vars*)vars47)->runtime = _;
                 if (_.valid) {
                     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                    return meta_action_create(meta_action_46, (void*)vars46, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                    return meta_action_create(meta_action_47, vars47, parse_state->input_buffer, action_start_pos, parse_state->pos);
                 }
             }
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action47Vars* vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
+    void* vars48 = NULL;
+    vars48 = arena_alloc(parse_state->arena, sizeof(struct meta_Action48Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_269);
+        data = (&meta_string_278);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -3050,87 +2974,92 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
         }
         if (_.valid) {
             _ = meta_rule_stringBuilderName(parse_state);
-            vars47->x = _;
+            ((struct meta_Action48Vars*)vars48)->x = _;
             if (_.valid) {
                 _ = meta_rule_genRuntime(parse_state);
-                vars47->runtime = _;
+                ((struct meta_Action48Vars*)vars48)->runtime = _;
                 if (_.valid) {
                     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                    return meta_action_create(meta_action_47, (void*)vars47, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                    return meta_action_create(meta_action_48, vars48, parse_state->input_buffer, action_start_pos, parse_state->pos);
                 }
             }
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action48Vars* vars48 = arena_alloc(parse_state->arena, sizeof(struct meta_Action48Vars));
+    void* vars49 = NULL;
+    vars49 = arena_alloc(parse_state->arena, sizeof(struct meta_Action49Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_expr(parse_state);
-        vars48->x = _;
+        ((struct meta_Action49Vars*)vars49)->x = _;
         if (_.valid) {
             _ = meta_rule_genRuntime(parse_state);
-            vars48->runtime = _;
+            ((struct meta_Action49Vars*)vars49)->runtime = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_48, (void*)vars48, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_49, vars49, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action49Vars* vars49 = arena_alloc(parse_state->arena, sizeof(struct meta_Action49Vars));
+    void* vars50 = NULL;
+    vars50 = arena_alloc(parse_state->arena, sizeof(struct meta_Action50Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_nameAsActionLookup(parse_state);
-        vars49->x = _;
+        ((struct meta_Action50Vars*)vars50)->x = _;
         if (_.valid) {
             _ = meta_rule_genRuntime(parse_state);
-            vars49->runtime = _;
+            ((struct meta_Action50Vars*)vars50)->runtime = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_49, (void*)vars49, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_50, vars50, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action50Vars* vars50 = arena_alloc(parse_state->arena, sizeof(struct meta_Action50Vars));
+    void* vars51 = NULL;
+    vars51 = arena_alloc(parse_state->arena, sizeof(struct meta_Action51Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_placeholder(parse_state);
-        vars50->x = _;
+        ((struct meta_Action51Vars*)vars51)->x = _;
         if (_.valid) {
             _ = meta_rule_genRuntime(parse_state);
-            vars50->runtime = _;
+            ((struct meta_Action51Vars*)vars51)->runtime = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_50, (void*)vars50, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_51, vars51, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action51Vars* vars51 = arena_alloc(parse_state->arena, sizeof(struct meta_Action51Vars));
+    void* vars52 = NULL;
+    vars52 = arena_alloc(parse_state->arena, sizeof(struct meta_Action52Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_string(parse_state);
-        vars51->x = _;
+        ((struct meta_Action52Vars*)vars52)->x = _;
         if (_.valid) {
             _ = meta_rule_genRuntime(parse_state);
-            vars51->runtime = _;
+            ((struct meta_Action52Vars*)vars52)->runtime = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_51, (void*)vars51, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_52, vars52, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action52Vars* vars52 = arena_alloc(parse_state->arena, sizeof(struct meta_Action52Vars));
+    void* vars53 = NULL;
+    vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_306);
+        data = (&meta_string_315);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -3140,9 +3069,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
         }
         if (_.valid) {
             _ = meta_rule_name(parse_state);
-            vars52->x = _;
+            ((struct meta_Action53Vars*)vars53)->x = _;
             if (_.valid) {
-                data = (&meta_string_307);
+                data = (&meta_string_316);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -3152,9 +3081,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                 }
                 if (_.valid) {
                     _ = meta_rule_wvar(parse_state);
-                    vars52->y = _;
+                    ((struct meta_Action53Vars*)vars53)->y = _;
                     if (_.valid) {
-                        data = (&meta_string_308);
+                        data = (&meta_string_317);
                         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                             parse_state->pos += data->size;
@@ -3164,9 +3093,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                         }
                         if (_.valid) {
                             _ = meta_rule_actionPrimitiveExpression(parse_state);
-                            vars52->z = _;
+                            ((struct meta_Action53Vars*)vars53)->z = _;
                             if (_.valid) {
-                                data = (&meta_string_309);
+                                data = (&meta_string_318);
                                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                     parse_state->pos += data->size;
@@ -3176,10 +3105,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                                 }
                                 if (_.valid) {
                                     _ = meta_rule_genRuntime(parse_state);
-                                    vars52->runtime = _;
+                                    ((struct meta_Action53Vars*)vars53)->runtime = _;
                                     if (_.valid) {
                                         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                                        return meta_action_create(meta_action_52, (void*)vars52, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                        return meta_action_create(meta_action_53, vars53, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                     }
                                 }
                             }
@@ -3191,10 +3120,11 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action53Vars* vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
+    void* vars54 = NULL;
+    vars54 = arena_alloc(parse_state->arena, sizeof(struct meta_Action54Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_318);
+        data = (&meta_string_327);
         string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
@@ -3215,11 +3145,11 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                 list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
             }
             _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            vars53->xs = _;
+            ((struct meta_Action54Vars*)vars54)->xs = _;
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = (&meta_string_319);
+                    data = (&meta_string_328);
                     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
@@ -3229,10 +3159,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     }
                     if (_.valid) {
                         _ = meta_rule_genRuntime(parse_state);
-                        vars53->runtime = _;
+                        ((struct meta_Action54Vars*)vars54)->runtime = _;
                         if (_.valid) {
                             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                            return meta_action_create(meta_action_53, (void*)vars53, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                            return meta_action_create(meta_action_54, vars54, parse_state->input_buffer, action_start_pos, parse_state->pos);
                         }
                     }
                 }
@@ -3250,12 +3180,13 @@ MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action54Vars* vars54 = arena_alloc(parse_state->arena, sizeof(struct meta_Action54Vars));
+    void* vars55 = NULL;
+    vars55 = arena_alloc(parse_state->arena, sizeof(struct meta_Action55Vars));
     _ = meta_rule_name(parse_state);
-    vars54->x = _;
+    ((struct meta_Action55Vars*)vars55)->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_54, (void*)vars54, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_55, vars55, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -3268,12 +3199,13 @@ MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action55Vars* vars55 = arena_alloc(parse_state->arena, sizeof(struct meta_Action55Vars));
+    void* vars56 = NULL;
+    vars56 = arena_alloc(parse_state->arena, sizeof(struct meta_Action56Vars));
     _ = meta_rule_dotname(parse_state);
-    vars55->x = _;
+    ((struct meta_Action56Vars*)vars56)->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_55, (void*)vars55, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_56, vars56, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
@@ -3295,7 +3227,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_328);
+    data = (&meta_string_337);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3309,7 +3241,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_329);
+    data = (&meta_string_338);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3323,7 +3255,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_330);
+    data = (&meta_string_339);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3337,7 +3269,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_331);
+    data = (&meta_string_340);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3351,7 +3283,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_332);
+    data = (&meta_string_341);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3365,7 +3297,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_333);
+    data = (&meta_string_342);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3379,7 +3311,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_334);
+    data = (&meta_string_343);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3393,7 +3325,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_335);
+    data = (&meta_string_344);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3407,7 +3339,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_336);
+    data = (&meta_string_345);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3421,7 +3353,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_337);
+    data = (&meta_string_346);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3446,8 +3378,9 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action67Vars* vars67 = arena_alloc(parse_state->arena, sizeof(struct meta_Action67Vars));
-    data = (&meta_string_338);
+    void* vars68 = NULL;
+    vars68 = arena_alloc(parse_state->arena, sizeof(struct meta_Action68Vars));
+    data = (&meta_string_347);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3459,9 +3392,9 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
         _ = meta_rule_space(parse_state);
         if (_.valid) {
             _ = meta_rule_string(parse_state);
-            vars67->x = _;
+            ((struct meta_Action68Vars*)vars68)->x = _;
             if (_.valid) {
-                data = (&meta_string_339);
+                data = (&meta_string_348);
                 string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
@@ -3471,11 +3404,11 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
                 }
                 if (_.valid) {
                     _ = meta_rule_expr(parse_state);
-                    vars67->y = _;
+                    ((struct meta_Action68Vars*)vars68)->y = _;
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_340);
+                            data = (&meta_string_349);
                             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
@@ -3485,10 +3418,10 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
                             }
                             if (_.valid) {
                                 _ = meta_rule_genRuntime(parse_state);
-                                vars67->runtime = _;
+                                ((struct meta_Action68Vars*)vars68)->runtime = _;
                                 if (_.valid) {
                                     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                                    return meta_action_create(meta_action_67, (void*)vars67, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return meta_action_create(meta_action_68, vars68, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -3513,21 +3446,23 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action68Vars* vars68 = arena_alloc(parse_state->arena, sizeof(struct meta_Action68Vars));
+    void* vars69 = NULL;
+    vars69 = arena_alloc(parse_state->arena, sizeof(struct meta_Action69Vars));
     _ = meta_rule_wvar(parse_state);
-    vars68->x = _;
+    ((struct meta_Action69Vars*)vars69)->x = _;
     if (_.valid) {
         _ = meta_rule_genRuntime(parse_state);
-        vars68->runtime = _;
+        ((struct meta_Action69Vars*)vars69)->runtime = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_68, (void*)vars68, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_69, vars69, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action69Vars* vars69 = arena_alloc(parse_state->arena, sizeof(struct meta_Action69Vars));
-    data = (&meta_string_355);
+    void* vars70 = NULL;
+    vars70 = arena_alloc(parse_state->arena, sizeof(struct meta_Action70Vars));
+    data = (&meta_string_364);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3537,9 +3472,9 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     }
     if (_.valid) {
         _ = meta_rule_wvar(parse_state);
-        vars69->x = _;
+        ((struct meta_Action70Vars*)vars70)->x = _;
         if (_.valid) {
-            data = (&meta_string_356);
+            data = (&meta_string_365);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3549,9 +3484,9 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 _ = meta_rule_dotname(parse_state);
-                vars69->y = _;
+                ((struct meta_Action70Vars*)vars70)->y = _;
                 if (_.valid) {
-                    data = (&meta_string_357);
+                    data = (&meta_string_366);
                     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
@@ -3561,10 +3496,10 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
                     }
                     if (_.valid) {
                         _ = meta_rule_genRuntime(parse_state);
-                        vars69->runtime = _;
+                        ((struct meta_Action70Vars*)vars70)->runtime = _;
                         if (_.valid) {
                             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                            return meta_action_create(meta_action_69, (void*)vars69, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                            return meta_action_create(meta_action_70, vars70, parse_state->input_buffer, action_start_pos, parse_state->pos);
                         }
                     }
                 }
@@ -3573,17 +3508,19 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action70Vars* vars70 = arena_alloc(parse_state->arena, sizeof(struct meta_Action70Vars));
+    void* vars71 = NULL;
+    vars71 = arena_alloc(parse_state->arena, sizeof(struct meta_Action71Vars));
     _ = meta_rule_dotname(parse_state);
-    vars70->y = _;
+    ((struct meta_Action71Vars*)vars71)->y = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_70, (void*)vars70, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_71, vars71, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action71Vars* vars71 = arena_alloc(parse_state->arena, sizeof(struct meta_Action71Vars));
-    data = (&meta_string_364);
+    void* vars72 = NULL;
+    vars72 = arena_alloc(parse_state->arena, sizeof(struct meta_Action72Vars));
+    data = (&meta_string_373);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3604,9 +3541,9 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        vars71->xs = _;
+        ((struct meta_Action72Vars*)vars72)->xs = _;
         if (_.valid) {
-            data = (&meta_string_365);
+            data = (&meta_string_374);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3616,7 +3553,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_71, (void*)vars71, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_72, vars72, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3631,17 +3568,18 @@ MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action72Vars* vars72 = arena_alloc(parse_state->arena, sizeof(struct meta_Action72Vars));
+    void* vars73 = NULL;
+    vars73 = arena_alloc(parse_state->arena, sizeof(struct meta_Action73Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_nameAsActionLookup(parse_state);
-        vars72->x = _;
+        ((struct meta_Action73Vars*)vars73)->x = _;
         if (_.valid) {
             _ = meta_rule_maybeShift(parse_state);
-            vars72->y = _;
+            ((struct meta_Action73Vars*)vars73)->y = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_72, (void*)vars72, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_73, vars73, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3658,7 +3596,7 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_371);
+    data = (&meta_string_380);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3675,9 +3613,9 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action74Vars* vars74 = arena_alloc(parse_state->arena, sizeof(struct meta_Action74Vars));
+    void* vars75 = NULL;
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-    return meta_action_create(meta_action_74, (void*)vars74, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    return meta_action_create(meta_action_75, vars75, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
@@ -3694,8 +3632,9 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action75Vars* vars75 = arena_alloc(parse_state->arena, sizeof(struct meta_Action75Vars));
-    data = (&meta_string_372);
+    void* vars76 = NULL;
+    vars76 = arena_alloc(parse_state->arena, sizeof(struct meta_Action76Vars));
+    data = (&meta_string_381);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3716,9 +3655,9 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        vars75->xs = _;
+        ((struct meta_Action76Vars*)vars76)->xs = _;
         if (_.valid) {
-            data = (&meta_string_373);
+            data = (&meta_string_382);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3728,10 +3667,10 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 _ = meta_rule_genRuntime(parse_state);
-                vars75->runtime = _;
+                ((struct meta_Action76Vars*)vars76)->runtime = _;
                 if (_.valid) {
                     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                    return meta_action_create(meta_action_75, (void*)vars75, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                    return meta_action_create(meta_action_76, vars76, parse_state->input_buffer, action_start_pos, parse_state->pos);
                 }
             }
         }
@@ -3747,15 +3686,16 @@ MetaAction meta_rule_dotname(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action76Vars* vars76 = arena_alloc(parse_state->arena, sizeof(struct meta_Action76Vars));
+    void* vars77 = NULL;
+    vars77 = arena_alloc(parse_state->arena, sizeof(struct meta_Action77Vars));
     _ = meta_rule_nameAsActionLookup(parse_state);
-    vars76->x = _;
+    ((struct meta_Action77Vars*)vars77)->x = _;
     if (_.valid) {
         _ = meta_rule_nextname(parse_state);
-        vars76->y = _;
+        ((struct meta_Action77Vars*)vars77)->y = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_76, (void*)vars76, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_77, vars77, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -3769,12 +3709,13 @@ MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action77Vars* vars77 = arena_alloc(parse_state->arena, sizeof(struct meta_Action77Vars));
+    void* vars78 = NULL;
+    vars78 = arena_alloc(parse_state->arena, sizeof(struct meta_Action78Vars));
     _ = meta_rule_variableName(parse_state);
-    vars77->x = _;
+    ((struct meta_Action78Vars*)vars78)->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_78, vars78, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -3790,8 +3731,8 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action78Vars* vars78 = arena_alloc(parse_state->arena, sizeof(struct meta_Action78Vars));
-    data = (&meta_string_388);
+    void* vars79 = NULL;
+    data = (&meta_string_397);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3810,13 +3751,13 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
         meta_parse_state_backtrack(parse_state, nlookahead_pos);
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_78, (void*)vars78, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_79, vars79, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action79Vars* vars79 = arena_alloc(parse_state->arena, sizeof(struct meta_Action79Vars));
-    data = (&meta_string_390);
+    void* vars80 = NULL;
+    data = (&meta_string_399);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3835,7 +3776,7 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
         meta_parse_state_backtrack(parse_state, nlookahead_pos);
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_79, (void*)vars79, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_80, vars80, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -3851,8 +3792,9 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action80Vars* vars80 = arena_alloc(parse_state->arena, sizeof(struct meta_Action80Vars));
-    data = (&meta_string_392);
+    void* vars81 = NULL;
+    vars81 = arena_alloc(parse_state->arena, sizeof(struct meta_Action81Vars));
+    data = (&meta_string_401);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3867,9 +3809,9 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
         } else {
             _ = meta_action_create_invalid();
         }
-        vars80->x = _;
+        ((struct meta_Action81Vars*)vars81)->x = _;
         if (_.valid) {
-            data = (&meta_string_393);
+            data = (&meta_string_402);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3879,7 +3821,7 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_80, (void*)vars80, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_81, vars81, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3905,7 +3847,7 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = (&meta_string_396);
+    data = (&meta_string_405);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3947,8 +3889,9 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action83Vars* vars83 = arena_alloc(parse_state->arena, sizeof(struct meta_Action83Vars));
-    data = (&meta_string_397);
+    void* vars84 = NULL;
+    vars84 = arena_alloc(parse_state->arena, sizeof(struct meta_Action84Vars));
+    data = (&meta_string_406);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -3969,9 +3912,9 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        vars83->xs = _;
+        ((struct meta_Action84Vars*)vars84)->xs = _;
         if (_.valid) {
-            data = (&meta_string_398);
+            data = (&meta_string_407);
             string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
@@ -3981,7 +3924,7 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_83, (void*)vars83, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_84, vars84, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -4006,8 +3949,8 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action85Vars* vars85 = arena_alloc(parse_state->arena, sizeof(struct meta_Action85Vars));
-    data = (&meta_string_407);
+    void* vars86 = NULL;
+    data = (&meta_string_416);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4017,12 +3960,12 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     }
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_85, (void*)vars85, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_86, vars86, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = (&meta_string_409);
+    data = (&meta_string_418);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4061,7 +4004,7 @@ MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_410);
+    data = (&meta_string_419);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4179,7 +4122,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_411);
+    data = (&meta_string_420);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4193,7 +4136,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_412);
+    data = (&meta_string_421);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4207,7 +4150,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_413);
+    data = (&meta_string_422);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4221,7 +4164,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_414);
+    data = (&meta_string_423);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4235,7 +4178,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_415);
+    data = (&meta_string_424);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4249,7 +4192,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_416);
+    data = (&meta_string_425);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4263,7 +4206,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_417);
+    data = (&meta_string_426);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4277,7 +4220,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_418);
+    data = (&meta_string_427);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4291,7 +4234,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_419);
+    data = (&meta_string_428);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4305,7 +4248,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_420);
+    data = (&meta_string_429);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4319,7 +4262,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_421);
+    data = (&meta_string_430);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4333,7 +4276,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_422);
+    data = (&meta_string_431);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4347,7 +4290,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_423);
+    data = (&meta_string_432);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4361,7 +4304,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_424);
+    data = (&meta_string_433);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4375,7 +4318,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_425);
+    data = (&meta_string_434);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4389,7 +4332,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_426);
+    data = (&meta_string_435);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4403,7 +4346,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_427);
+    data = (&meta_string_436);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4417,7 +4360,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_428);
+    data = (&meta_string_437);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4431,7 +4374,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_429);
+    data = (&meta_string_438);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4445,7 +4388,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_430);
+    data = (&meta_string_439);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4459,7 +4402,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_431);
+    data = (&meta_string_440);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4473,7 +4416,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_432);
+    data = (&meta_string_441);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4487,7 +4430,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_433);
+    data = (&meta_string_442);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4501,7 +4444,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_434);
+    data = (&meta_string_443);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4515,7 +4458,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_435);
+    data = (&meta_string_444);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4529,7 +4472,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_436);
+    data = (&meta_string_445);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4554,7 +4497,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_437);
+    data = (&meta_string_446);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4568,7 +4511,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_438);
+    data = (&meta_string_447);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4582,7 +4525,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_439);
+    data = (&meta_string_448);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4596,7 +4539,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_440);
+    data = (&meta_string_449);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4610,7 +4553,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_441);
+    data = (&meta_string_450);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4624,7 +4567,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_442);
+    data = (&meta_string_451);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4638,7 +4581,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_443);
+    data = (&meta_string_452);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4652,7 +4595,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_444);
+    data = (&meta_string_453);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4666,7 +4609,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_445);
+    data = (&meta_string_454);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4680,7 +4623,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_446);
+    data = (&meta_string_455);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4694,7 +4637,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_447);
+    data = (&meta_string_456);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4708,7 +4651,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_448);
+    data = (&meta_string_457);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4722,7 +4665,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_449);
+    data = (&meta_string_458);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4736,7 +4679,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_450);
+    data = (&meta_string_459);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4750,7 +4693,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_451);
+    data = (&meta_string_460);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4764,7 +4707,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_452);
+    data = (&meta_string_461);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4778,7 +4721,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_453);
+    data = (&meta_string_462);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4792,7 +4735,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_454);
+    data = (&meta_string_463);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4806,7 +4749,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_455);
+    data = (&meta_string_464);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4820,7 +4763,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_456);
+    data = (&meta_string_465);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4834,7 +4777,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_457);
+    data = (&meta_string_466);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4848,7 +4791,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_458);
+    data = (&meta_string_467);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4862,7 +4805,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_459);
+    data = (&meta_string_468);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4876,7 +4819,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_460);
+    data = (&meta_string_469);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4890,7 +4833,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_461);
+    data = (&meta_string_470);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4904,7 +4847,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_462);
+    data = (&meta_string_471);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -4986,7 +4929,7 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_463);
+    data = (&meta_string_472);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
@@ -5000,7 +4943,7 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_464);
+    data = (&meta_string_473);
     string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 90c3e83..aca61fa 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -132,17 +132,19 @@ orbar = space opOr;
 
 orcase = matchAnd:x -> {
     #inc(W[0] 1)
-    >definitions {
-        "struct " <prefix "Action" W[0] "Vars {\n" >
-            $variables
-            <variables
-        < "};\n"
-    }
+    $variables
     "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n"
     "action_start_pos = parse_state->pos;\n"
     $orInit
     <orInit
     x
+    nonEmpty(variables) -> {
+        >definitions {
+            "struct " <prefix "Action" W[0] "Vars {\n" >
+                <variables
+            < "};\n"
+        }
+    }
 };
 
 matchAnd =
@@ -190,7 +192,7 @@ matchAssign =
         >variables {
             "MetaAction " x ";\n"
         }
-        "vars" W[0] "->" x " = _;\n"
+        "((struct " <prefix "Action" W[0] "Vars*)vars" W[0] ")->" x " = _;\n"
     }
     |                    -> {}
     ;
@@ -314,10 +316,13 @@ action =
             "\n"
         }
         >orInit {
-            "struct " <prefix "Action" W[0] "Vars* vars" W[0] " = arena_alloc(parse_state->arena, sizeof(struct " <prefix "Action" W[0] "Vars));\n"
+            "void* vars" W[0] " = NULL;\n"
+            nonEmpty(variables) -> {
+                "vars" W[0] " = arena_alloc(parse_state->arena, sizeof(struct " <prefix "Action" W[0] "Vars));\n"
+            }
         }
         "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"
-        "return meta_action_create(" <prefix "action_" W[0] ", (void*)vars" W[0] ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"
+        "return meta_action_create(" <prefix "action_" W[0] ", vars" W[0] ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"
     }
     | -> {
         "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"
@@ -328,6 +333,11 @@ action =
 genRuntime = &. -> { "((" <prefix "Runtime*)runtime)" };
 
 actionexpr =
+    | space 'nonEmpty(' stringBuilderName:x ') -> {' actionexpr*:ys space '}' genRuntime:runtime -> {
+        "if (" runtime "->named_string_builder_" x "->pre_first->next) {\n" >
+            ys
+        < "}\n"
+    }
     | space 'unseen(' nameAsActionLookup:x ') -> {' actionexpr*:ys space '}' genRuntime:runtime -> {
         >actionVars {
             unique("MetaAction action;\n")

2025-11-23 22:24 Rickard pushed to rlworkbench

commit d0071960cb3744c2cfff9804a63b65ad56ab6a23
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sun Nov 23 21:48:44 2025 +0100

    Store action directly inside placeholder

diff --git a/src/meta.c b/src/meta.c
index 793f0e0..74bd5b2 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -136,7 +136,7 @@ typedef List MetaPlaceholders;
 
 typedef struct meta_placeholder {
     StringBuilder* string_builder;
-    MetaAction* action;
+    MetaAction action;
 } MetaPlaceholder;
 
 MetaPlaceholders* meta_placeholders_create(Arena* arena) {
@@ -146,7 +146,7 @@ MetaPlaceholders* meta_placeholders_create(Arena* arena) {
 void meta_placeholder_append(Arena* arena, MetaPlaceholders* placeholders, StringBuilder* string_builder, MetaAction action) {
     MetaPlaceholder* next_placeholder = arena_alloc(arena, sizeof(MetaPlaceholder));
     next_placeholder->string_builder = string_builder;
-    next_placeholder->action = arena_copy(arena, sizeof(action), (unsigned char*)&action);
+    next_placeholder->action = action;
     list_append(arena, placeholders, (void*)next_placeholder);
 }
 
diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index 39bf2f2..0fb3ef9 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -98,7 +98,7 @@ static String meta_string_55 = {59, "placeholder_item = runtime->placeholders->p
 static String meta_string_56 = {27, "while (placeholder_item) {\n"};
 static String meta_string_57 = {55, "MetaPlaceholder* placeholder = placeholder_item->data;\n"};
 static String meta_string_58 = {63, "runtime->current_string_builder = placeholder->string_builder;\n"};
-static String meta_string_59 = {96, "meta_action_run(placeholder->action, runtime, runtime->current_string_builder, runtime->arena);\n"};
+static String meta_string_59 = {97, "meta_action_run(&placeholder->action, runtime, runtime->current_string_builder, runtime->arena);\n"};
 static String meta_string_60 = {43, "placeholder_item = placeholder_item->next;\n"};
 static String meta_string_61 = {2, "}\n"};
 static String meta_string_62 = {53, "string_builder_render(runtime->main_string_builder);\n"};
@@ -5037,7 +5037,7 @@ int main(void) {
     while (placeholder_item) {
         MetaPlaceholder* placeholder = placeholder_item->data;
         runtime->current_string_builder = placeholder->string_builder;
-        meta_action_run(placeholder->action, runtime, runtime->current_string_builder, runtime->arena);
+        meta_action_run(&placeholder->action, runtime, runtime->current_string_builder, runtime->arena);
         placeholder_item = placeholder_item->next;
     }
     string_builder_render(runtime->main_string_builder);
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 543e0ca..90c3e83 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -74,7 +74,7 @@ file = rule*:xs space !. -> {
         "while (placeholder_item) {\n" >
             "MetaPlaceholder* placeholder = placeholder_item->data;\n"
             "runtime->current_string_builder = placeholder->string_builder;\n"
-            "meta_action_run(placeholder->action, runtime, runtime->current_string_builder, runtime->arena);\n"
+            "meta_action_run(&placeholder->action, runtime, runtime->current_string_builder, runtime->arena);\n"
             "placeholder_item = placeholder_item->next;\n"
         < "}\n"
         "string_builder_render(runtime->main_string_builder);\n"

commit 5882f07d1b0212e24fe4fdb153feb5f0327320e0
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sun Nov 23 21:45:23 2025 +0100

    Fix name

diff --git a/src/meta.c b/src/meta.c
index 899d1c7..793f0e0 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -143,14 +143,7 @@ MetaPlaceholders* meta_placeholders_create(Arena* arena) {
     return (MetaPlaceholders*)list_create(arena);
 }
 
-void meta_placeholder_append(Arena* arena, MetaPlaceholders* placeholders, StringBuilder* string_builder, MetaAction* action) {
-    MetaPlaceholder* next_placeholder = arena_alloc(arena, sizeof(MetaPlaceholder));
-    next_placeholder->string_builder = string_builder;
-    next_placeholder->action = action;
-    list_append(arena, placeholders, (void*)next_placeholder);
-}
-
-void meta_placeholder_append2(Arena* arena, MetaPlaceholders* placeholders, StringBuilder* string_builder, MetaAction action) {
+void meta_placeholder_append(Arena* arena, MetaPlaceholders* placeholders, StringBuilder* string_builder, MetaAction action) {
     MetaPlaceholder* next_placeholder = arena_alloc(arena, sizeof(MetaPlaceholder));
     next_placeholder->string_builder = string_builder;
     next_placeholder->action = arena_copy(arena, sizeof(action), (unsigned char*)&action);
diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index ca5cf4c..39bf2f2 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -334,7 +334,7 @@ static String meta_string_291 = {31, "StringBuilder* string_builder;\n"};
 static String meta_string_292 = {31, "StringBuilder* string_builder;\n"};
 static String meta_string_293 = {39, "string_builder = string_builder_create("};
 static String meta_string_294 = {10, "->arena);\n"};
-static String meta_string_295 = {25, "meta_placeholder_append2("};
+static String meta_string_295 = {24, "meta_placeholder_append("};
 static String meta_string_296 = {9, "->arena, "};
 static String meta_string_297 = {63, "->placeholders, string_builder, meta_action_create(placeholder_"};
 static String meta_string_298 = {27, ", variables, NULL, 0, 0));\n"};
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 32ade26..543e0ca 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -388,7 +388,7 @@ actionexpr =
             unique("StringBuilder* string_builder;\n")
         }
         "string_builder = string_builder_create(" runtime "->arena);\n"
-        "meta_placeholder_append2(" runtime "->arena, " runtime "->placeholders, string_builder, meta_action_create(placeholder_" W[1] ", variables, NULL, 0, 0));\n"
+        "meta_placeholder_append(" runtime "->arena, " runtime "->placeholders, string_builder, meta_action_create(placeholder_" W[1] ", variables, NULL, 0, 0));\n"
         "string_builder_append(" runtime "->current_string_builder, " runtime "->arena, NULL, 0, string_builder);\n"
     }
     | space string:x genRuntime:runtime -> {

2025-11-23 21:32 Rickard pushed to rlworkbench

commit ef6bb1a46a7318ecb5a83b595dfbbd6faa40ca25
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sun Nov 23 21:14:37 2025 +0100

    Don't allocate memory on heap for slices used only for comparisons

diff --git a/src/meta.c b/src/meta.c
index 209efe8..899d1c7 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -52,7 +52,9 @@ void meta_action_run(MetaAction* action, void* runtime, StringBuilder* string_bu
                 variable = variable->next;
             }
         } else {
-            string_builder_append(string_builder, arena, string_slice(arena, action->input_buffer, action->start, action->end), 0, NULL);
+            String* slice = arena_alloc(arena, sizeof(String));
+            string_slice(action->input_buffer, action->start, action->end, slice);
+            string_builder_append(string_builder, arena, slice, 0, NULL);
         }
     }
 }
diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index 3d61196..ca5cf4c 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -232,273 +232,278 @@ static String meta_string_189 = {34, "_ = meta_action_create_invalid();\n"};
 static String meta_string_190 = {2, "}\n"};
 static String meta_string_191 = {14, "String* data;\n"};
 static String meta_string_192 = {14, "String* data;\n"};
-static String meta_string_193 = {7, "data = "};
-static String meta_string_194 = {2, ";\n"};
-static String meta_string_195 = {202, "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n"};
-static String meta_string_196 = {32, "parse_state->pos += data->size;\n"};
-static String meta_string_197 = {110, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"};
-static String meta_string_198 = {9, "} else {\n"};
-static String meta_string_199 = {34, "_ = meta_action_create_invalid();\n"};
-static String meta_string_200 = {2, "}\n"};
-static String meta_string_201 = {1, "{"};
-static String meta_string_202 = {1, "}"};
-static String meta_string_203 = {5, "void "};
-static String meta_string_204 = {7, "action_"};
-static String meta_string_205 = {35, "(void* runtime, void* variables) {\n"};
-static String meta_string_206 = {2, "}\n"};
-static String meta_string_207 = {1, "\n"};
-static String meta_string_208 = {7, "struct "};
-static String meta_string_209 = {6, "Action"};
-static String meta_string_210 = {10, "Vars* vars"};
-static String meta_string_211 = {49, " = arena_alloc(parse_state->arena, sizeof(struct "};
+static String meta_string_193 = {14, "String slice;\n"};
+static String meta_string_194 = {14, "String slice;\n"};
+static String meta_string_195 = {7, "data = "};
+static String meta_string_196 = {2, ";\n"};
+static String meta_string_197 = {96, "string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);\n"};
+static String meta_string_198 = {102, "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {\n"};
+static String meta_string_199 = {32, "parse_state->pos += data->size;\n"};
+static String meta_string_200 = {110, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"};
+static String meta_string_201 = {9, "} else {\n"};
+static String meta_string_202 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_203 = {2, "}\n"};
+static String meta_string_204 = {1, "{"};
+static String meta_string_205 = {1, "}"};
+static String meta_string_206 = {5, "void "};
+static String meta_string_207 = {7, "action_"};
+static String meta_string_208 = {35, "(void* runtime, void* variables) {\n"};
+static String meta_string_209 = {2, "}\n"};
+static String meta_string_210 = {1, "\n"};
+static String meta_string_211 = {7, "struct "};
 static String meta_string_212 = {6, "Action"};
-static String meta_string_213 = {8, "Vars));\n"};
-static String meta_string_214 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
-static String meta_string_215 = {26, "return meta_action_create("};
-static String meta_string_216 = {7, "action_"};
-static String meta_string_217 = {13, ", (void*)vars"};
-static String meta_string_218 = {66, ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
-static String meta_string_219 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
-static String meta_string_220 = {102, "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
-static String meta_string_221 = {2, "(("};
-static String meta_string_222 = {17, "Runtime*)runtime)"};
-static String meta_string_223 = {7, "unseen("};
-static String meta_string_224 = {6, ") -> {"};
-static String meta_string_225 = {1, "}"};
-static String meta_string_226 = {19, "MetaAction action;\n"};
-static String meta_string_227 = {19, "MetaAction action;\n"};
-static String meta_string_228 = {9, "action = "};
-static String meta_string_229 = {2, ";\n"};
-static String meta_string_230 = {29, "if (!string_builder_contains("};
-static String meta_string_231 = {39, "->current_string_builder, string_slice("};
-static String meta_string_232 = {60, "->arena, action.input_buffer, action.start, action.end))) {\n"};
-static String meta_string_233 = {2, "}\n"};
-static String meta_string_234 = {7, "unique("};
-static String meta_string_235 = {1, ")"};
+static String meta_string_213 = {10, "Vars* vars"};
+static String meta_string_214 = {49, " = arena_alloc(parse_state->arena, sizeof(struct "};
+static String meta_string_215 = {6, "Action"};
+static String meta_string_216 = {8, "Vars));\n"};
+static String meta_string_217 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
+static String meta_string_218 = {26, "return meta_action_create("};
+static String meta_string_219 = {7, "action_"};
+static String meta_string_220 = {13, ", (void*)vars"};
+static String meta_string_221 = {66, ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
+static String meta_string_222 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
+static String meta_string_223 = {102, "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
+static String meta_string_224 = {2, "(("};
+static String meta_string_225 = {17, "Runtime*)runtime)"};
+static String meta_string_226 = {7, "unseen("};
+static String meta_string_227 = {6, ") -> {"};
+static String meta_string_228 = {1, "}"};
+static String meta_string_229 = {19, "MetaAction action;\n"};
+static String meta_string_230 = {19, "MetaAction action;\n"};
+static String meta_string_231 = {14, "String slice;\n"};
+static String meta_string_232 = {14, "String slice;\n"};
+static String meta_string_233 = {9, "action = "};
+static String meta_string_234 = {2, ";\n"};
+static String meta_string_235 = {69, "string_slice(action.input_buffer, action.start, action.end, &slice);\n"};
 static String meta_string_236 = {29, "if (!string_builder_contains("};
-static String meta_string_237 = {26, "->current_string_builder, "};
-static String meta_string_238 = {5, ")) {\n"};
-static String meta_string_239 = {22, "string_builder_append("};
-static String meta_string_240 = {26, "->current_string_builder, "};
-static String meta_string_241 = {9, "->arena, "};
-static String meta_string_242 = {12, ", 0, NULL);\n"};
-static String meta_string_243 = {2, "}\n"};
-static String meta_string_244 = {1, ">"};
-static String meta_string_245 = {1, "{"};
-static String meta_string_246 = {1, "}"};
-static String meta_string_247 = {36, "StringBuilder* last_string_builder;\n"};
-static String meta_string_248 = {36, "StringBuilder* last_string_builder;\n"};
-static String meta_string_249 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_250 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_251 = {22, "last_string_builder = "};
-static String meta_string_252 = {26, "->current_string_builder;\n"};
-static String meta_string_253 = {17, "string_builder = "};
-static String meta_string_254 = {23, "->named_string_builder_"};
-static String meta_string_255 = {2, ";\n"};
-static String meta_string_256 = {43, "->current_string_builder = string_builder;\n"};
-static String meta_string_257 = {48, "->current_string_builder = last_string_builder;\n"};
-static String meta_string_258 = {1, "<"};
-static String meta_string_259 = {22, "string_builder_append("};
-static String meta_string_260 = {26, "->current_string_builder, "};
-static String meta_string_261 = {18, "->arena, NULL, 0, "};
-static String meta_string_262 = {23, "->named_string_builder_"};
-static String meta_string_263 = {3, ");\n"};
-static String meta_string_264 = {1, "$"};
-static String meta_string_265 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_266 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_267 = {39, "string_builder = string_builder_create("};
-static String meta_string_268 = {10, "->arena);\n"};
-static String meta_string_269 = {23, "->named_string_builder_"};
-static String meta_string_270 = {19, " = string_builder;\n"};
-static String meta_string_271 = {22, "string_builder_append("};
-static String meta_string_272 = {26, "->current_string_builder, "};
-static String meta_string_273 = {29, "->arena, string_from_integer("};
-static String meta_string_274 = {9, "->arena, "};
-static String meta_string_275 = {13, "), 0, NULL);\n"};
-static String meta_string_276 = {17, "meta_action_run(&"};
-static String meta_string_277 = {11, ", runtime, "};
-static String meta_string_278 = {26, "->current_string_builder, "};
-static String meta_string_279 = {10, "->arena);\n"};
-static String meta_string_280 = {17, "void placeholder_"};
-static String meta_string_281 = {34, "(void* runtime, void* variables);\n"};
-static String meta_string_282 = {17, "void placeholder_"};
-static String meta_string_283 = {35, "(void* runtime, void* variables) {\n"};
-static String meta_string_284 = {2, "}\n"};
-static String meta_string_285 = {1, "\n"};
-static String meta_string_286 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_287 = {31, "StringBuilder* string_builder;\n"};
-static String meta_string_288 = {39, "string_builder = string_builder_create("};
-static String meta_string_289 = {10, "->arena);\n"};
-static String meta_string_290 = {25, "meta_placeholder_append2("};
-static String meta_string_291 = {9, "->arena, "};
-static String meta_string_292 = {63, "->placeholders, string_builder, meta_action_create(placeholder_"};
-static String meta_string_293 = {27, ", variables, NULL, 0, 0));\n"};
-static String meta_string_294 = {22, "string_builder_append("};
-static String meta_string_295 = {26, "->current_string_builder, "};
-static String meta_string_296 = {35, "->arena, NULL, 0, string_builder);\n"};
-static String meta_string_297 = {22, "string_builder_append("};
-static String meta_string_298 = {26, "->current_string_builder, "};
-static String meta_string_299 = {9, "->arena, "};
-static String meta_string_300 = {12, ", 0, NULL);\n"};
-static String meta_string_301 = {1, "#"};
-static String meta_string_302 = {1, "("};
-static String meta_string_303 = {1, " "};
-static String meta_string_304 = {1, ")"};
-static String meta_string_305 = {4, "->W_"};
-static String meta_string_306 = {8, " = meta_"};
+static String meta_string_237 = {37, "->current_string_builder, &slice)) {\n"};
+static String meta_string_238 = {2, "}\n"};
+static String meta_string_239 = {7, "unique("};
+static String meta_string_240 = {1, ")"};
+static String meta_string_241 = {29, "if (!string_builder_contains("};
+static String meta_string_242 = {26, "->current_string_builder, "};
+static String meta_string_243 = {5, ")) {\n"};
+static String meta_string_244 = {22, "string_builder_append("};
+static String meta_string_245 = {26, "->current_string_builder, "};
+static String meta_string_246 = {9, "->arena, "};
+static String meta_string_247 = {12, ", 0, NULL);\n"};
+static String meta_string_248 = {2, "}\n"};
+static String meta_string_249 = {1, ">"};
+static String meta_string_250 = {1, "{"};
+static String meta_string_251 = {1, "}"};
+static String meta_string_252 = {36, "StringBuilder* last_string_builder;\n"};
+static String meta_string_253 = {36, "StringBuilder* last_string_builder;\n"};
+static String meta_string_254 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_255 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_256 = {22, "last_string_builder = "};
+static String meta_string_257 = {26, "->current_string_builder;\n"};
+static String meta_string_258 = {17, "string_builder = "};
+static String meta_string_259 = {23, "->named_string_builder_"};
+static String meta_string_260 = {2, ";\n"};
+static String meta_string_261 = {43, "->current_string_builder = string_builder;\n"};
+static String meta_string_262 = {48, "->current_string_builder = last_string_builder;\n"};
+static String meta_string_263 = {1, "<"};
+static String meta_string_264 = {22, "string_builder_append("};
+static String meta_string_265 = {26, "->current_string_builder, "};
+static String meta_string_266 = {18, "->arena, NULL, 0, "};
+static String meta_string_267 = {23, "->named_string_builder_"};
+static String meta_string_268 = {3, ");\n"};
+static String meta_string_269 = {1, "$"};
+static String meta_string_270 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_271 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_272 = {39, "string_builder = string_builder_create("};
+static String meta_string_273 = {10, "->arena);\n"};
+static String meta_string_274 = {23, "->named_string_builder_"};
+static String meta_string_275 = {19, " = string_builder;\n"};
+static String meta_string_276 = {22, "string_builder_append("};
+static String meta_string_277 = {26, "->current_string_builder, "};
+static String meta_string_278 = {29, "->arena, string_from_integer("};
+static String meta_string_279 = {9, "->arena, "};
+static String meta_string_280 = {13, "), 0, NULL);\n"};
+static String meta_string_281 = {17, "meta_action_run(&"};
+static String meta_string_282 = {11, ", runtime, "};
+static String meta_string_283 = {26, "->current_string_builder, "};
+static String meta_string_284 = {10, "->arena);\n"};
+static String meta_string_285 = {17, "void placeholder_"};
+static String meta_string_286 = {34, "(void* runtime, void* variables);\n"};
+static String meta_string_287 = {17, "void placeholder_"};
+static String meta_string_288 = {35, "(void* runtime, void* variables) {\n"};
+static String meta_string_289 = {2, "}\n"};
+static String meta_string_290 = {1, "\n"};
+static String meta_string_291 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_292 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_293 = {39, "string_builder = string_builder_create("};
+static String meta_string_294 = {10, "->arena);\n"};
+static String meta_string_295 = {25, "meta_placeholder_append2("};
+static String meta_string_296 = {9, "->arena, "};
+static String meta_string_297 = {63, "->placeholders, string_builder, meta_action_create(placeholder_"};
+static String meta_string_298 = {27, ", variables, NULL, 0, 0));\n"};
+static String meta_string_299 = {22, "string_builder_append("};
+static String meta_string_300 = {26, "->current_string_builder, "};
+static String meta_string_301 = {35, "->arena, NULL, 0, string_builder);\n"};
+static String meta_string_302 = {22, "string_builder_append("};
+static String meta_string_303 = {26, "->current_string_builder, "};
+static String meta_string_304 = {9, "->arena, "};
+static String meta_string_305 = {12, ", 0, NULL);\n"};
+static String meta_string_306 = {1, "#"};
 static String meta_string_307 = {1, "("};
-static String meta_string_308 = {4, "->W_"};
-static String meta_string_309 = {3, " ? "};
+static String meta_string_308 = {1, " "};
+static String meta_string_309 = {1, ")"};
 static String meta_string_310 = {4, "->W_"};
-static String meta_string_311 = {6, " : 0, "};
-static String meta_string_312 = {3, ");\n"};
-static String meta_string_313 = {1, ">"};
-static String meta_string_314 = {1, "<"};
-static String meta_string_315 = {22, "string_builder_append("};
-static String meta_string_316 = {26, "->current_string_builder, "};
-static String meta_string_317 = {25, "->arena, NULL, 1, NULL);\n"};
-static String meta_string_318 = {22, "string_builder_append("};
-static String meta_string_319 = {26, "->current_string_builder, "};
-static String meta_string_320 = {26, "->arena, NULL, -1, NULL);\n"};
-static String meta_string_321 = {36, "StringBuilder* named_string_builder_"};
-static String meta_string_322 = {2, ";\n"};
-static String meta_string_323 = {1, "0"};
-static String meta_string_324 = {1, "1"};
-static String meta_string_325 = {1, "2"};
-static String meta_string_326 = {1, "3"};
-static String meta_string_327 = {1, "4"};
-static String meta_string_328 = {1, "5"};
-static String meta_string_329 = {1, "6"};
-static String meta_string_330 = {1, "7"};
-static String meta_string_331 = {1, "8"};
-static String meta_string_332 = {1, "9"};
-static String meta_string_333 = {1, "{"};
-static String meta_string_334 = {1, "*"};
-static String meta_string_335 = {1, "}"};
-static String meta_string_336 = {7, "int i;\n"};
-static String meta_string_337 = {7, "int i;\n"};
-static String meta_string_338 = {14, "for (i=0; i < "};
-static String meta_string_339 = {9, "; i++) {\n"};
-static String meta_string_340 = {22, "string_builder_append("};
-static String meta_string_341 = {26, "->current_string_builder, "};
-static String meta_string_342 = {9, "->arena, "};
-static String meta_string_343 = {12, ", 0, NULL);\n"};
-static String meta_string_344 = {2, "}\n"};
-static String meta_string_345 = {1, "("};
-static String meta_string_346 = {4, "->W_"};
-static String meta_string_347 = {3, " ? "};
-static String meta_string_348 = {4, "->W_"};
-static String meta_string_349 = {5, " : 0)"};
+static String meta_string_311 = {8, " = meta_"};
+static String meta_string_312 = {1, "("};
+static String meta_string_313 = {4, "->W_"};
+static String meta_string_314 = {3, " ? "};
+static String meta_string_315 = {4, "->W_"};
+static String meta_string_316 = {6, " : 0, "};
+static String meta_string_317 = {3, ");\n"};
+static String meta_string_318 = {1, ">"};
+static String meta_string_319 = {1, "<"};
+static String meta_string_320 = {22, "string_builder_append("};
+static String meta_string_321 = {26, "->current_string_builder, "};
+static String meta_string_322 = {25, "->arena, NULL, 1, NULL);\n"};
+static String meta_string_323 = {22, "string_builder_append("};
+static String meta_string_324 = {26, "->current_string_builder, "};
+static String meta_string_325 = {26, "->arena, NULL, -1, NULL);\n"};
+static String meta_string_326 = {36, "StringBuilder* named_string_builder_"};
+static String meta_string_327 = {2, ";\n"};
+static String meta_string_328 = {1, "0"};
+static String meta_string_329 = {1, "1"};
+static String meta_string_330 = {1, "2"};
+static String meta_string_331 = {1, "3"};
+static String meta_string_332 = {1, "4"};
+static String meta_string_333 = {1, "5"};
+static String meta_string_334 = {1, "6"};
+static String meta_string_335 = {1, "7"};
+static String meta_string_336 = {1, "8"};
+static String meta_string_337 = {1, "9"};
+static String meta_string_338 = {1, "{"};
+static String meta_string_339 = {1, "*"};
+static String meta_string_340 = {1, "}"};
+static String meta_string_341 = {7, "int i;\n"};
+static String meta_string_342 = {7, "int i;\n"};
+static String meta_string_343 = {14, "for (i=0; i < "};
+static String meta_string_344 = {9, "; i++) {\n"};
+static String meta_string_345 = {22, "string_builder_append("};
+static String meta_string_346 = {26, "->current_string_builder, "};
+static String meta_string_347 = {9, "->arena, "};
+static String meta_string_348 = {12, ", 0, NULL);\n"};
+static String meta_string_349 = {2, "}\n"};
 static String meta_string_350 = {1, "("};
-static String meta_string_351 = {1, "-"};
-static String meta_string_352 = {1, ")"};
-static String meta_string_353 = {2, "(("};
-static String meta_string_354 = {4, "->W_"};
-static String meta_string_355 = {3, " ? "};
-static String meta_string_356 = {4, "->W_"};
-static String meta_string_357 = {6, " : 0)-"};
-static String meta_string_358 = {1, ")"};
-static String meta_string_359 = {7, "number("};
-static String meta_string_360 = {1, ")"};
-static String meta_string_361 = {2, "(0"};
-static String meta_string_362 = {1, ")"};
-static String meta_string_363 = {25, "+(meta_action_first_byte("};
-static String meta_string_364 = {1, ")"};
+static String meta_string_351 = {4, "->W_"};
+static String meta_string_352 = {3, " ? "};
+static String meta_string_353 = {4, "->W_"};
+static String meta_string_354 = {5, " : 0)"};
+static String meta_string_355 = {1, "("};
+static String meta_string_356 = {1, "-"};
+static String meta_string_357 = {1, ")"};
+static String meta_string_358 = {2, "(("};
+static String meta_string_359 = {4, "->W_"};
+static String meta_string_360 = {3, " ? "};
+static String meta_string_361 = {4, "->W_"};
+static String meta_string_362 = {6, " : 0)-"};
+static String meta_string_363 = {1, ")"};
+static String meta_string_364 = {7, "number("};
 static String meta_string_365 = {1, ")"};
-static String meta_string_366 = {2, "<<"};
-static String meta_string_367 = {1, "\""};
-static String meta_string_368 = {1, "\""};
-static String meta_string_369 = {14, "static String "};
-static String meta_string_370 = {7, "string_"};
-static String meta_string_371 = {4, " = {"};
-static String meta_string_372 = {3, ", \""};
-static String meta_string_373 = {4, "\"};\n"};
-static String meta_string_374 = {2, "(&"};
+static String meta_string_366 = {2, "(0"};
+static String meta_string_367 = {1, ")"};
+static String meta_string_368 = {25, "+(meta_action_first_byte("};
+static String meta_string_369 = {1, ")"};
+static String meta_string_370 = {1, ")"};
+static String meta_string_371 = {2, "<<"};
+static String meta_string_372 = {1, "\""};
+static String meta_string_373 = {1, "\""};
+static String meta_string_374 = {14, "static String "};
 static String meta_string_375 = {7, "string_"};
-static String meta_string_376 = {1, ")"};
-static String meta_string_377 = {1, "("};
-static String meta_string_378 = {1, ")"};
-static String meta_string_379 = {10, "(((struct "};
-static String meta_string_380 = {6, "Action"};
-static String meta_string_381 = {18, "Vars*)variables)->"};
-static String meta_string_382 = {1, ")"};
-static String meta_string_383 = {4, ".len"};
-static String meta_string_384 = {15, "meta_action_len"};
-static String meta_string_385 = {6, ".count"};
-static String meta_string_386 = {17, "meta_action_count"};
-static String meta_string_387 = {2, "W["};
-static String meta_string_388 = {1, "]"};
-static String meta_string_389 = {15, "unsigned int W_"};
-static String meta_string_390 = {2, ";\n"};
-static String meta_string_391 = {1, "\""};
-static String meta_string_392 = {1, "\'"};
-static String meta_string_393 = {1, "\'"};
-static String meta_string_394 = {14, "static String "};
-static String meta_string_395 = {7, "string_"};
-static String meta_string_396 = {4, " = {"};
-static String meta_string_397 = {3, ", \""};
-static String meta_string_398 = {4, "\"};\n"};
-static String meta_string_399 = {2, "(&"};
+static String meta_string_376 = {4, " = {"};
+static String meta_string_377 = {3, ", \""};
+static String meta_string_378 = {4, "\"};\n"};
+static String meta_string_379 = {2, "(&"};
+static String meta_string_380 = {7, "string_"};
+static String meta_string_381 = {1, ")"};
+static String meta_string_382 = {1, "("};
+static String meta_string_383 = {1, ")"};
+static String meta_string_384 = {10, "(((struct "};
+static String meta_string_385 = {6, "Action"};
+static String meta_string_386 = {18, "Vars*)variables)->"};
+static String meta_string_387 = {1, ")"};
+static String meta_string_388 = {4, ".len"};
+static String meta_string_389 = {15, "meta_action_len"};
+static String meta_string_390 = {6, ".count"};
+static String meta_string_391 = {17, "meta_action_count"};
+static String meta_string_392 = {2, "W["};
+static String meta_string_393 = {1, "]"};
+static String meta_string_394 = {15, "unsigned int W_"};
+static String meta_string_395 = {2, ";\n"};
+static String meta_string_396 = {1, "\""};
+static String meta_string_397 = {1, "\'"};
+static String meta_string_398 = {1, "\'"};
+static String meta_string_399 = {14, "static String "};
 static String meta_string_400 = {7, "string_"};
-static String meta_string_401 = {1, ")"};
-static String meta_string_402 = {1, "\""};
-static String meta_string_403 = {2, "\\\""};
-static String meta_string_404 = {1, "\'"};
-static String meta_string_405 = {1, "\\"};
-static String meta_string_406 = {1, "a"};
-static String meta_string_407 = {1, "b"};
-static String meta_string_408 = {1, "c"};
-static String meta_string_409 = {1, "d"};
-static String meta_string_410 = {1, "e"};
-static String meta_string_411 = {1, "f"};
-static String meta_string_412 = {1, "g"};
-static String meta_string_413 = {1, "h"};
-static String meta_string_414 = {1, "i"};
-static String meta_string_415 = {1, "j"};
-static String meta_string_416 = {1, "k"};
-static String meta_string_417 = {1, "l"};
-static String meta_string_418 = {1, "m"};
-static String meta_string_419 = {1, "n"};
-static String meta_string_420 = {1, "o"};
-static String meta_string_421 = {1, "p"};
-static String meta_string_422 = {1, "q"};
-static String meta_string_423 = {1, "r"};
-static String meta_string_424 = {1, "s"};
-static String meta_string_425 = {1, "t"};
-static String meta_string_426 = {1, "u"};
-static String meta_string_427 = {1, "v"};
-static String meta_string_428 = {1, "w"};
-static String meta_string_429 = {1, "x"};
-static String meta_string_430 = {1, "y"};
-static String meta_string_431 = {1, "z"};
-static String meta_string_432 = {1, "A"};
-static String meta_string_433 = {1, "B"};
-static String meta_string_434 = {1, "C"};
-static String meta_string_435 = {1, "D"};
-static String meta_string_436 = {1, "E"};
-static String meta_string_437 = {1, "F"};
-static String meta_string_438 = {1, "G"};
-static String meta_string_439 = {1, "H"};
-static String meta_string_440 = {1, "I"};
-static String meta_string_441 = {1, "J"};
-static String meta_string_442 = {1, "K"};
-static String meta_string_443 = {1, "L"};
-static String meta_string_444 = {1, "M"};
-static String meta_string_445 = {1, "N"};
-static String meta_string_446 = {1, "O"};
-static String meta_string_447 = {1, "P"};
-static String meta_string_448 = {1, "Q"};
-static String meta_string_449 = {1, "R"};
-static String meta_string_450 = {1, "S"};
-static String meta_string_451 = {1, "T"};
-static String meta_string_452 = {1, "U"};
-static String meta_string_453 = {1, "V"};
-static String meta_string_454 = {1, "W"};
-static String meta_string_455 = {1, "X"};
-static String meta_string_456 = {1, "Y"};
-static String meta_string_457 = {1, "Z"};
-static String meta_string_458 = {1, " "};
-static String meta_string_459 = {1, "\n"};
+static String meta_string_401 = {4, " = {"};
+static String meta_string_402 = {3, ", \""};
+static String meta_string_403 = {4, "\"};\n"};
+static String meta_string_404 = {2, "(&"};
+static String meta_string_405 = {7, "string_"};
+static String meta_string_406 = {1, ")"};
+static String meta_string_407 = {1, "\""};
+static String meta_string_408 = {2, "\\\""};
+static String meta_string_409 = {1, "\'"};
+static String meta_string_410 = {1, "\\"};
+static String meta_string_411 = {1, "a"};
+static String meta_string_412 = {1, "b"};
+static String meta_string_413 = {1, "c"};
+static String meta_string_414 = {1, "d"};
+static String meta_string_415 = {1, "e"};
+static String meta_string_416 = {1, "f"};
+static String meta_string_417 = {1, "g"};
+static String meta_string_418 = {1, "h"};
+static String meta_string_419 = {1, "i"};
+static String meta_string_420 = {1, "j"};
+static String meta_string_421 = {1, "k"};
+static String meta_string_422 = {1, "l"};
+static String meta_string_423 = {1, "m"};
+static String meta_string_424 = {1, "n"};
+static String meta_string_425 = {1, "o"};
+static String meta_string_426 = {1, "p"};
+static String meta_string_427 = {1, "q"};
+static String meta_string_428 = {1, "r"};
+static String meta_string_429 = {1, "s"};
+static String meta_string_430 = {1, "t"};
+static String meta_string_431 = {1, "u"};
+static String meta_string_432 = {1, "v"};
+static String meta_string_433 = {1, "w"};
+static String meta_string_434 = {1, "x"};
+static String meta_string_435 = {1, "y"};
+static String meta_string_436 = {1, "z"};
+static String meta_string_437 = {1, "A"};
+static String meta_string_438 = {1, "B"};
+static String meta_string_439 = {1, "C"};
+static String meta_string_440 = {1, "D"};
+static String meta_string_441 = {1, "E"};
+static String meta_string_442 = {1, "F"};
+static String meta_string_443 = {1, "G"};
+static String meta_string_444 = {1, "H"};
+static String meta_string_445 = {1, "I"};
+static String meta_string_446 = {1, "J"};
+static String meta_string_447 = {1, "K"};
+static String meta_string_448 = {1, "L"};
+static String meta_string_449 = {1, "M"};
+static String meta_string_450 = {1, "N"};
+static String meta_string_451 = {1, "O"};
+static String meta_string_452 = {1, "P"};
+static String meta_string_453 = {1, "Q"};
+static String meta_string_454 = {1, "R"};
+static String meta_string_455 = {1, "S"};
+static String meta_string_456 = {1, "T"};
+static String meta_string_457 = {1, "U"};
+static String meta_string_458 = {1, "V"};
+static String meta_string_459 = {1, "W"};
+static String meta_string_460 = {1, "X"};
+static String meta_string_461 = {1, "Y"};
+static String meta_string_462 = {1, "Z"};
+static String meta_string_463 = {1, " "};
+static String meta_string_464 = {1, "\n"};
 MetaAction meta_rule_main(MetaParseState* parse_state);
 struct meta_Action1Vars {
     MetaAction xs;
@@ -1372,20 +1377,24 @@ void meta_action_39(void* runtime, void* variables) {
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_191))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_192), 0, NULL);
     }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_193))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_194), 0, NULL);
+    }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_193), 0, NULL);
-    meta_action_run(&(((struct meta_Action39Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_194), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_195), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    meta_action_run(&(((struct meta_Action39Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_196), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_197), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_198), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_199), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_200), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_201), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_202), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_203), 0, NULL);
 }
 
 void meta_action_40(void* runtime, void* variables) {
@@ -1394,54 +1403,54 @@ void meta_action_40(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_203), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_206), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_204), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_207), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_205), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_208), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_actionVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_actionVars);
     meta_action_run(&(((struct meta_Action40Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_206), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_207), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_209), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_210), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_orInit;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_208), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_209), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_210), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_211), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_212), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_213), 0, NULL);
-    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_214), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_215), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_216), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_215), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_216), 0, NULL);
+    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_217), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_218), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_219), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_220), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_221), 0, NULL);
 }
 
 void meta_action_41(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_219), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_220), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_222), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_223), 0, NULL);
 }
 
 void meta_action_42(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_221), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_224), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_222), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_225), 0, NULL);
 }
 
 void meta_action_43(void* runtime, void* variables) {
@@ -1450,40 +1459,42 @@ void meta_action_43(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_226))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_227), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_229))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_230), 0, NULL);
+    }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_231))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_232), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_228), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_233), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_229), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_230), 0, NULL);
-    meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_231), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_234), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_235), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_236), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_232), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_237), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_233), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_238), 0, NULL);
 }
 
 void meta_action_44(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_236), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_241), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_237), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_242), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_238), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_243), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_239), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_244), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_240), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_245), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_241), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_246), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_242), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_247), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_243), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_248), 0, NULL);
 }
 
 void meta_action_45(void* runtime, void* variables) {
@@ -1492,38 +1503,38 @@ void meta_action_45(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_247))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_248), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_252))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_253), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_249))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_250), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_254))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_255), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_251), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_256), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_252), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_253), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_257), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_258), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_254), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_259), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_255), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_260), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_256), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_261), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_257), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_262), 0, NULL);
 }
 
 void meta_action_46(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_259), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_264), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_260), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_265), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_261), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_266), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_262), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_267), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_263), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_268), 0, NULL);
 }
 
 void meta_action_47(void* runtime, void* variables) {
@@ -1532,39 +1543,39 @@ void meta_action_47(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_265))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_266), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_270))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_271), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_267), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_272), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_268), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_273), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_269), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_274), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_270), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_275), 0, NULL);
 }
 
 void meta_action_48(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_271), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_276), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_272), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_277), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_273), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_278), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_274), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_279), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_275), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_280), 0, NULL);
 }
 
 void meta_action_49(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_276), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_281), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_277), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_282), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_278), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_283), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_279), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_284), 0, NULL);
 }
 
 void meta_action_50(void* runtime, void* variables) {
@@ -1574,104 +1585,106 @@ void meta_action_50(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_280), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_285), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_281), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_286), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholders;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_282), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_287), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_283), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_288), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_placeholderVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_placeholderVars);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_284), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_285), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_289), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_290), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_286))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_287), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_291))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_292), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_288), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_293), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_289), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_290), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_294), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_295), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_291), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_296), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_292), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_297), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_293), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_294), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_298), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_299), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_295), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_300), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_296), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_301), 0, NULL);
 }
 
 void meta_action_51(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_297), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_302), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_298), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_303), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_299), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_304), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_300), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_305), 0, NULL);
 }
 
 void meta_action_52(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_305), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_310), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_306), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_311), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_307), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_312), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_308), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_313), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_309), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_314), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_310), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_315), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_311), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_316), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_312), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_317), 0, NULL);
 }
 
 void meta_action_53(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_315), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_320), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_316), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_321), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_317), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_322), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_318), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_323), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_319), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_324), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_320), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_325), 0, NULL);
 }
 
 void meta_action_54(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     MetaAction action;
+    String slice;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_namedStringBuilders;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     action = (((struct meta_Action54Vars*)variables)->x);
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action.input_buffer, action.start, action.end))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_321), 0, NULL);
+    string_slice(action.input_buffer, action.start, action.end, &slice);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, &slice)) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_326), 0, NULL);
         meta_action_run(&(((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_322), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_327), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     meta_action_run(&(((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
@@ -1687,49 +1700,49 @@ void meta_action_67(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholderVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_336))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_337), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_341))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_342), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_338), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_343), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_339), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_344), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_340), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_345), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_341), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_346), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_342), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_347), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_343), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_348), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_344), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_349), 0, NULL);
 }
 
 void meta_action_68(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_345), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_350), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_346), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_351), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_347), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_352), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_348), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_353), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_349), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_354), 0, NULL);
 }
 
 void meta_action_69(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_353), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_358), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_354), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_359), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_355), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_360), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_356), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_361), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_357), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_362), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_358), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_363), 0, NULL);
 }
 
 void meta_action_70(void* runtime, void* variables) {
@@ -1737,17 +1750,17 @@ void meta_action_70(void* runtime, void* variables) {
 }
 
 void meta_action_71(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_361), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_366), 0, NULL);
     meta_action_run(&(((struct meta_Action71Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_362), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_367), 0, NULL);
 }
 
 void meta_action_72(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_363), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_368), 0, NULL);
     meta_action_run(&(((struct meta_Action72Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_364), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_369), 0, NULL);
     meta_action_run(&(((struct meta_Action72Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_365), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_370), 0, NULL);
 }
 
 void meta_action_74(void* runtime, void* variables) {
@@ -1760,60 +1773,62 @@ void meta_action_75(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_369), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_374), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_370), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_375), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_371), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_376), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, meta_action_count((((struct meta_Action75Vars*)variables)->xs))), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_372), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_377), 0, NULL);
     meta_action_run(&(((struct meta_Action75Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_373), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_378), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_374), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_379), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_375), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_380), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_376), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_381), 0, NULL);
 }
 
 void meta_action_76(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action76Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_377), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_382), 0, NULL);
     meta_action_run(&(((struct meta_Action76Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_378), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_383), 0, NULL);
 }
 
 void meta_action_77(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_379), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_384), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_380), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_385), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_381), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_386), 0, NULL);
     meta_action_run(&(((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_382), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_387), 0, NULL);
 }
 
 void meta_action_78(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_384), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_389), 0, NULL);
 }
 
 void meta_action_79(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_386), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_391), 0, NULL);
 }
 
 void meta_action_80(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     MetaAction action;
+    String slice;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_namedWs;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     action = (((struct meta_Action80Vars*)variables)->x);
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action.input_buffer, action.start, action.end))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_389), 0, NULL);
+    string_slice(action.input_buffer, action.start, action.end, &slice);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, &slice)) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_394), 0, NULL);
         meta_action_run(&(((struct meta_Action80Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_390), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_395), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     meta_action_run(&(((struct meta_Action80Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
@@ -1826,25 +1841,25 @@ void meta_action_83(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_394), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_399), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_395), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_400), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_396), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_401), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, meta_action_count((((struct meta_Action83Vars*)variables)->xs))), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_397), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_402), 0, NULL);
     meta_action_run(&(((struct meta_Action83Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_398), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_403), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_399), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_404), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_400), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_405), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_401), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_406), 0, NULL);
 }
 
 void meta_action_85(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_403), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_408), 0, NULL);
 }
 
 MetaAction meta_rule_main(MetaParseState* parse_state) {
@@ -1889,12 +1904,14 @@ MetaAction meta_rule_metaField(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action2Vars* vars2 = arena_alloc(parse_state->arena, sizeof(struct meta_Action2Vars));
     data = (&meta_string_1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -1968,6 +1985,7 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
@@ -1983,7 +2001,8 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
                     data = (&meta_string_73);
-                    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
@@ -1998,7 +2017,8 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
                                 _ = meta_rule_space(parse_state);
                                 if (_.valid) {
                                     data = (&meta_string_74);
-                                    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                                    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                                    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                         parse_state->pos += data->size;
                                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                                     } else {
@@ -2025,12 +2045,14 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action5Vars* vars5 = arena_alloc(parse_state->arena, sizeof(struct meta_Action5Vars));
     data = (&meta_string_89);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -2041,7 +2063,8 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
         vars5->x = _;
         if (_.valid) {
             data = (&meta_string_90);
-            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+            string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
@@ -2360,11 +2383,13 @@ MetaAction meta_rule_opBind(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = (&meta_string_155);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -2383,11 +2408,13 @@ MetaAction meta_rule_opStar(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = (&meta_string_156);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -2406,11 +2433,13 @@ MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = (&meta_string_157);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -2429,11 +2458,13 @@ MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = (&meta_string_158);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -2452,11 +2483,13 @@ MetaAction meta_rule_opAny(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = (&meta_string_159);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -2475,11 +2508,13 @@ MetaAction meta_rule_opOr(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = (&meta_string_160);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -2498,11 +2533,13 @@ MetaAction meta_rule_opAction(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = (&meta_string_161);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -2523,6 +2560,7 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
@@ -2531,7 +2569,8 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     while (1) {
         star_pos = parse_state->pos;
         data = (&meta_string_162);
-        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
@@ -2586,12 +2625,14 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action34Vars* vars34 = arena_alloc(parse_state->arena, sizeof(struct meta_Action34Vars));
     data = (&meta_string_166);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -2605,7 +2646,8 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action35Vars* vars35 = arena_alloc(parse_state->arena, sizeof(struct meta_Action35Vars));
     data = (&meta_string_167);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -2624,6 +2666,7 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -2641,7 +2684,8 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action37Vars* vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
     data = (&meta_string_172);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -2692,6 +2736,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -2705,8 +2750,9 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
         if (_.valid) {
             _ = meta_rule_space(parse_state);
             if (_.valid) {
-                data = (&meta_string_201);
-                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                data = (&meta_string_204);
+                string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
@@ -2729,8 +2775,9 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_202);
-                            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                            data = (&meta_string_205);
+                            string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                             } else {
@@ -2790,6 +2837,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -2799,8 +2847,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action43Vars* vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_223);
-        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        data = (&meta_string_226);
+        string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
@@ -2810,8 +2859,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_nameAsActionLookup(parse_state);
             vars43->x = _;
             if (_.valid) {
-                data = (&meta_string_224);
-                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                data = (&meta_string_227);
+                string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
@@ -2834,8 +2884,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_225);
-                            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                            data = (&meta_string_228);
+                            string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                             } else {
@@ -2860,8 +2911,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action44Vars* vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_234);
-        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        data = (&meta_string_239);
+        string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
@@ -2871,8 +2923,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_string(parse_state);
             vars44->x = _;
             if (_.valid) {
-                data = (&meta_string_235);
-                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                data = (&meta_string_240);
+                string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
@@ -2894,8 +2947,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action45Vars* vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_244);
-        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        data = (&meta_string_249);
+        string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
@@ -2907,8 +2961,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = (&meta_string_245);
-                    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                    data = (&meta_string_250);
+                    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
@@ -2931,8 +2986,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                         if (_.valid) {
                             _ = meta_rule_space(parse_state);
                             if (_.valid) {
-                                data = (&meta_string_246);
-                                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                                data = (&meta_string_251);
+                                string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                     parse_state->pos += data->size;
                                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                                 } else {
@@ -2958,8 +3014,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action46Vars* vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_258);
-        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        data = (&meta_string_263);
+        string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
@@ -2983,8 +3040,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action47Vars* vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_264);
-        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        data = (&meta_string_269);
+        string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
@@ -3072,8 +3130,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action52Vars* vars52 = arena_alloc(parse_state->arena, sizeof(struct meta_Action52Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_301);
-        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        data = (&meta_string_306);
+        string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
@@ -3083,8 +3142,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_name(parse_state);
             vars52->x = _;
             if (_.valid) {
-                data = (&meta_string_302);
-                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                data = (&meta_string_307);
+                string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
@@ -3094,8 +3154,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     _ = meta_rule_wvar(parse_state);
                     vars52->y = _;
                     if (_.valid) {
-                        data = (&meta_string_303);
-                        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                        data = (&meta_string_308);
+                        string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                             parse_state->pos += data->size;
                             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                         } else {
@@ -3105,8 +3166,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                             _ = meta_rule_actionPrimitiveExpression(parse_state);
                             vars52->z = _;
                             if (_.valid) {
-                                data = (&meta_string_304);
-                                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                                data = (&meta_string_309);
+                                string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                     parse_state->pos += data->size;
                                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                                 } else {
@@ -3132,8 +3194,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action53Vars* vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = (&meta_string_313);
-        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        data = (&meta_string_318);
+        string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+        if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
@@ -3156,8 +3219,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = (&meta_string_314);
-                    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                    data = (&meta_string_319);
+                    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
@@ -3227,11 +3291,13 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_323);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_328);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3243,8 +3309,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_324);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_329);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3256,8 +3323,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_325);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_330);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3269,8 +3337,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_326);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_331);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3282,8 +3351,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_327);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_332);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3295,8 +3365,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_328);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_333);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3308,8 +3379,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_329);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_334);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3321,8 +3393,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_330);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_335);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3334,8 +3407,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_331);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_336);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3347,8 +3421,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_332);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_337);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3367,12 +3442,14 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action67Vars* vars67 = arena_alloc(parse_state->arena, sizeof(struct meta_Action67Vars));
-    data = (&meta_string_333);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_338);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3384,8 +3461,9 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
             _ = meta_rule_string(parse_state);
             vars67->x = _;
             if (_.valid) {
-                data = (&meta_string_334);
-                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                data = (&meta_string_339);
+                string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
@@ -3397,8 +3475,9 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = (&meta_string_335);
-                            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                            data = (&meta_string_340);
+                            string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                             } else {
@@ -3427,6 +3506,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -3447,8 +3527,9 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action69Vars* vars69 = arena_alloc(parse_state->arena, sizeof(struct meta_Action69Vars));
-    data = (&meta_string_350);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_355);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3458,8 +3539,9 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
         _ = meta_rule_wvar(parse_state);
         vars69->x = _;
         if (_.valid) {
-            data = (&meta_string_351);
-            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+            data = (&meta_string_356);
+            string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
@@ -3469,8 +3551,9 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
                 _ = meta_rule_dotname(parse_state);
                 vars69->y = _;
                 if (_.valid) {
-                    data = (&meta_string_352);
-                    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                    data = (&meta_string_357);
+                    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+                    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
@@ -3500,8 +3583,9 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action71Vars* vars71 = arena_alloc(parse_state->arena, sizeof(struct meta_Action71Vars));
-    data = (&meta_string_359);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_364);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3522,8 +3606,9 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars71->xs = _;
         if (_.valid) {
-            data = (&meta_string_360);
-            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+            data = (&meta_string_365);
+            string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
@@ -3569,11 +3654,13 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_366);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_371);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3600,6 +3687,7 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_String;
     String* data;
+    String slice;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -3607,8 +3695,9 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action75Vars* vars75 = arena_alloc(parse_state->arena, sizeof(struct meta_Action75Vars));
-    data = (&meta_string_367);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_372);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3629,8 +3718,9 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars75->xs = _;
         if (_.valid) {
-            data = (&meta_string_368);
-            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+            data = (&meta_string_373);
+            string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
@@ -3695,13 +3785,15 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action78Vars* vars78 = arena_alloc(parse_state->arena, sizeof(struct meta_Action78Vars));
-    data = (&meta_string_383);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_388);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3724,8 +3816,9 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action79Vars* vars79 = arena_alloc(parse_state->arena, sizeof(struct meta_Action79Vars));
-    data = (&meta_string_385);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_390);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3754,12 +3847,14 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action80Vars* vars80 = arena_alloc(parse_state->arena, sizeof(struct meta_Action80Vars));
-    data = (&meta_string_387);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_392);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3774,8 +3869,9 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
         }
         vars80->x = _;
         if (_.valid) {
-            data = (&meta_string_388);
-            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+            data = (&meta_string_393);
+            string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
@@ -3797,6 +3893,7 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     unsigned int nlookahead_pos;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
@@ -3808,8 +3905,9 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = (&meta_string_391);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_396);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3842,6 +3940,7 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_CharString;
     String* data;
+    String slice;
     List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -3849,8 +3948,9 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action83Vars* vars83 = arena_alloc(parse_state->arena, sizeof(struct meta_Action83Vars));
-    data = (&meta_string_392);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_397);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3871,8 +3971,9 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars83->xs = _;
         if (_.valid) {
-            data = (&meta_string_393);
-            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+            data = (&meta_string_398);
+            string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+            if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
@@ -3893,6 +3994,7 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
@@ -3905,8 +4007,9 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action85Vars* vars85 = arena_alloc(parse_state->arena, sizeof(struct meta_Action85Vars));
-    data = (&meta_string_402);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_407);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3919,8 +4022,9 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = (&meta_string_404);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_409);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -3953,11 +4057,13 @@ MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Escape;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_405);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_410);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4069,11 +4175,13 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_406);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_411);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4085,8 +4193,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_407);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_412);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4098,8 +4207,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_408);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_413);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4111,8 +4221,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_409);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_414);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4124,8 +4235,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_410);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_415);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4137,8 +4249,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_411);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_416);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4150,8 +4263,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_412);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_417);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4163,8 +4277,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_413);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_418);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4176,8 +4291,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_414);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_419);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4189,8 +4305,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_415);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_420);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4202,8 +4319,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_416);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_421);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4215,8 +4333,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_417);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_422);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4228,8 +4347,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_418);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_423);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4241,8 +4361,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_419);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_424);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4254,8 +4375,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_420);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_425);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4267,8 +4389,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_421);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_426);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4280,8 +4403,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_422);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_427);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4293,8 +4417,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_423);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_428);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4306,8 +4431,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_424);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_429);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4319,8 +4445,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_425);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_430);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4332,8 +4459,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_426);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_431);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4345,8 +4473,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_427);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_432);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4358,8 +4487,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_428);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_433);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4371,8 +4501,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_429);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_434);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4384,8 +4515,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_430);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_435);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4397,8 +4529,9 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_431);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_436);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4417,11 +4550,13 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_432);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_437);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4433,8 +4568,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_433);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_438);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4446,8 +4582,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_434);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_439);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4459,8 +4596,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_435);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_440);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4472,8 +4610,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_436);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_441);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4485,8 +4624,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_437);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_442);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4498,8 +4638,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_438);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_443);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4511,8 +4652,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_439);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_444);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4524,8 +4666,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_440);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_445);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4537,8 +4680,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_441);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_446);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4550,8 +4694,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_442);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_447);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4563,8 +4708,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_443);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_448);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4576,8 +4722,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_444);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_449);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4589,8 +4736,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_445);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_450);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4602,8 +4750,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_446);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_451);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4615,8 +4764,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_447);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_452);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4628,8 +4778,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_448);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_453);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4641,8 +4792,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_449);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_454);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4654,8 +4806,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_450);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_455);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4667,8 +4820,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_451);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_456);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4680,8 +4834,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_452);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_457);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4693,8 +4848,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_453);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_458);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4706,8 +4862,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_454);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_459);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4719,8 +4876,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_455);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_460);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4732,8 +4890,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_456);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_461);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4745,8 +4904,9 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_457);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_462);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4822,11 +4982,13 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
+    String slice;
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_458);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_463);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
@@ -4838,8 +5000,9 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = (&meta_string_459);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+    data = (&meta_string_464);
+    string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 546f3dc..32ade26 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -290,9 +290,11 @@ matchExprPrimitive =
     | charString:x -> {
         >ruleVars {
             unique("String* data;\n")
+            unique("String slice;\n")
         }
         "data = " x ";\n"
-        "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n" >
+        "string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);\n"
+        "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {\n" >
             "parse_state->pos += data->size;\n"
             "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"
         < "} else {\n" >
@@ -329,9 +331,11 @@ actionexpr =
     | space 'unseen(' nameAsActionLookup:x ') -> {' actionexpr*:ys space '}' genRuntime:runtime -> {
         >actionVars {
             unique("MetaAction action;\n")
+            unique("String slice;\n")
         }
         "action = " x ";\n"
-        "if (!string_builder_contains(" runtime "->current_string_builder, string_slice(" runtime "->arena, action.input_buffer, action.start, action.end))) {\n" >
+        "string_slice(action.input_buffer, action.start, action.end, &slice);\n"
+        "if (!string_builder_contains(" runtime "->current_string_builder, &slice)) {\n" >
             ys
         < "}\n"
     }
diff --git a/src/string.c b/src/string.c
index 9a47992..9f6fbd2 100644
--- a/src/string.c
+++ b/src/string.c
@@ -6,12 +6,10 @@ typedef struct string {
     char* buffer;
 } String;
 
-String* string_slice(Arena* arena, String* data, unsigned int start, unsigned int end) {
-    String* buffer = arena_alloc(arena, sizeof(String));
-    buffer->buffer = data->buffer;
-    buffer->size = end-start;
-    buffer->buffer += start;
-    return buffer;
+void string_slice(String* in, unsigned int start, unsigned int end, String* out) {
+    out->buffer = in->buffer;
+    out->size = end-start;
+    out->buffer += start;
 }
 
 String* string_from_integer(Arena* arena, unsigned int value) {

commit 73a556fbe5637bbcfcb89bdb18c2fd45d5712f33
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sun Nov 23 20:56:15 2025 +0100

    Create symbol string only once and not on the heap repeatedly

diff --git a/src/meta.c b/src/meta.c
index 8539008..209efe8 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -61,6 +61,24 @@ unsigned int meta_action_len(MetaAction action) {
     return action.end-action.start;
 }
 
+unsigned int meta_action_count(MetaAction action) {
+    int count = 0;
+    if (action.function) {
+        count = 1;
+    } else {
+        if (action.variables) {
+            ListItem* variable = ((List*)action.variables)->pre_first->next;
+            while (variable) {
+                count++;
+                variable = variable->next;
+            }
+        } else {
+            count = 1;
+        }
+    }
+    return count;
+}
+
 unsigned char meta_action_first_byte(MetaAction action) {
     return (unsigned char)action.input_buffer->buffer[action.start];
 }
diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index e82184c..3d61196 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -40,466 +40,465 @@ meta_Runtime* meta_create_runtime(Arena* arena) {
     return runtime;
 }
 
-static char meta_symbol_1[] = "#id = ";
-static char meta_symbol_2[] = "_";
-static char meta_symbol_3[] = "#include <stdio.h>\n";
-static char meta_symbol_4[] = "#include <string.h>\n";
-static char meta_symbol_5[] = "#include <stdlib.h>\n";
-static char meta_symbol_6[] = "#include <stdint.h>\n";
-static char meta_symbol_7[] = "\n";
-static char meta_symbol_8[] = "#include \"arena.c\"\n";
-static char meta_symbol_9[] = "#include \"list.c\"\n";
-static char meta_symbol_10[] = "#include \"string.c\"\n";
-static char meta_symbol_11[] = "#include \"stringbuilder.c\"\n";
-static char meta_symbol_12[] = "#include \"meta.c\"\n";
-static char meta_symbol_13[] = "\n";
-static char meta_symbol_14[] = "typedef struct ";
-static char meta_symbol_15[] = "runtime {\n";
-static char meta_symbol_16[] = "StringBuilder* main_string_builder;\n";
-static char meta_symbol_17[] = "StringBuilder* current_string_builder;\n";
-static char meta_symbol_18[] = "MetaPlaceholders* placeholders;\n";
-static char meta_symbol_19[] = "Arena* arena;\n";
-static char meta_symbol_20[] = "} ";
-static char meta_symbol_21[] = "Runtime;\n";
-static char meta_symbol_22[] = "\n";
-static char meta_symbol_23[] = "Runtime* ";
-static char meta_symbol_24[] = "create_runtime(Arena* arena) {\n";
-static char meta_symbol_25[] = "Runtime* runtime = arena_alloc(arena, sizeof(";
-static char meta_symbol_26[] = "Runtime));\n";
-static char meta_symbol_27[] = "runtime->main_string_builder = string_builder_create(arena);\n";
-static char meta_symbol_28[] = "runtime->current_string_builder = runtime->main_string_builder;\n";
-static char meta_symbol_29[] = "runtime->placeholders = meta_placeholders_create(arena);\n";
-static char meta_symbol_30[] = "runtime->arena = arena;\n";
-static char meta_symbol_31[] = "return runtime;\n";
-static char meta_symbol_32[] = "}\n";
-static char meta_symbol_33[] = "\n";
-static char meta_symbol_34[] = "\n";
-static char meta_symbol_35[] = "#ifndef NO_MAIN\n";
-static char meta_symbol_36[] = "int main(void) {\n";
-static char meta_symbol_37[] = "Arena arena = arena_create(2<<25);\n";
-static char meta_symbol_38[] = "MetaParseState* parse_state = meta_parse_state_from_stdin(&arena);\n";
-static char meta_symbol_39[] = "unsigned int input_pos = arena.used;\n";
-static char meta_symbol_40[] = "unsigned int parse_pos;\n";
-static char meta_symbol_41[] = "unsigned int parse_size;\n";
-static char meta_symbol_42[] = "unsigned int codegen_size;\n";
-static char meta_symbol_43[] = "Runtime* runtime = ";
-static char meta_symbol_44[] = "create_runtime(parse_state->arena);\n";
-static char meta_symbol_45[] = "MetaAction action = ";
-static char meta_symbol_46[] = "rule_main(parse_state);\n";
-static char meta_symbol_47[] = "ListItem* placeholder_item;\n";
-static char meta_symbol_48[] = "if (!action.valid) {\n";
-static char meta_symbol_49[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
-static char meta_symbol_50[] = "exit(1);\n";
-static char meta_symbol_51[] = "}\n";
-static char meta_symbol_52[] = "parse_size = arena.used - input_pos;\n";
-static char meta_symbol_53[] = "parse_pos = arena.used;\n";
-static char meta_symbol_54[] = "meta_action_run(&action, runtime, runtime->current_string_builder, runtime->arena);\n";
-static char meta_symbol_55[] = "placeholder_item = runtime->placeholders->pre_first->next;\n";
-static char meta_symbol_56[] = "while (placeholder_item) {\n";
-static char meta_symbol_57[] = "MetaPlaceholder* placeholder = placeholder_item->data;\n";
-static char meta_symbol_58[] = "runtime->current_string_builder = placeholder->string_builder;\n";
-static char meta_symbol_59[] = "meta_action_run(placeholder->action, runtime, runtime->current_string_builder, runtime->arena);\n";
-static char meta_symbol_60[] = "placeholder_item = placeholder_item->next;\n";
-static char meta_symbol_61[] = "}\n";
-static char meta_symbol_62[] = "string_builder_render(runtime->main_string_builder);\n";
-static char meta_symbol_63[] = "codegen_size = arena.used - parse_pos;\n";
-static char meta_symbol_64[] = "fprintf(stderr, \"  DEBUG: Input size   = %d\\n\", parse_state->input_buffer->size);\n";
-static char meta_symbol_65[] = "fprintf(stderr, \"  DEBUG: Parse size   = %d\\n\", parse_size);\n";
-static char meta_symbol_66[] = "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", parse_size/parse_state->input_buffer->size);\n";
-static char meta_symbol_67[] = "fprintf(stderr, \"  DEBUG: Codegen size = %d\\n\", codegen_size);\n";
-static char meta_symbol_68[] = "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", codegen_size/parse_state->input_buffer->size);\n";
-static char meta_symbol_69[] = "fprintf(stderr, \"  DEBUG: Total size   = %d\\n\", arena.used);\n";
-static char meta_symbol_70[] = "return 0;\n";
-static char meta_symbol_71[] = "}\n";
-static char meta_symbol_72[] = "#endif\n";
-static char meta_symbol_73[] = "=";
-static char meta_symbol_74[] = ";";
-static char meta_symbol_75[] = "MetaAction ";
-static char meta_symbol_76[] = "rule_";
-static char meta_symbol_77[] = "(MetaParseState* parse_state);\n";
-static char meta_symbol_78[] = "MetaAction ";
-static char meta_symbol_79[] = "rule_";
-static char meta_symbol_80[] = "(MetaParseState* parse_state) {\n";
-static char meta_symbol_81[] = "unsigned int or_backtrack_pos;\n";
-static char meta_symbol_82[] = "unsigned int action_start_pos;\n";
-static char meta_symbol_83[] = "MetaAction _;\n";
-static char meta_symbol_84[] = "MetaHighlight highlight = ";
-static char meta_symbol_85[] = ";\n";
-static char meta_symbol_86[] = "return meta_action_create_invalid();\n";
-static char meta_symbol_87[] = "}\n";
-static char meta_symbol_88[] = "\n";
-static char meta_symbol_89[] = "[";
-static char meta_symbol_90[] = "]";
-static char meta_symbol_91[] = "MetaHighlight_";
-static char meta_symbol_92[] = "MetaHighlight_None";
-static char meta_symbol_93[] = "or_backtrack_pos = parse_state->pos;\n";
-static char meta_symbol_94[] = "struct ";
-static char meta_symbol_95[] = "Action";
-static char meta_symbol_96[] = "Vars {\n";
-static char meta_symbol_97[] = "};\n";
-static char meta_symbol_98[] = "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n";
-static char meta_symbol_99[] = "action_start_pos = parse_state->pos;\n";
-static char meta_symbol_100[] = "if (_.valid) {\n";
-static char meta_symbol_101[] = "}\n";
-static char meta_symbol_102[] = "unsigned int nlookahead_pos;\n";
-static char meta_symbol_103[] = "unsigned int nlookahead_pos;\n";
-static char meta_symbol_104[] = "nlookahead_pos = parse_state->pos;\n";
-static char meta_symbol_105[] = "if (_.valid) {\n";
-static char meta_symbol_106[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_107[] = "} else {\n";
-static char meta_symbol_108[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char meta_symbol_109[] = "}\n";
-static char meta_symbol_110[] = "meta_parse_state_backtrack(parse_state, nlookahead_pos);\n";
-static char meta_symbol_111[] = "unsigned int lookahead_pos;\n";
-static char meta_symbol_112[] = "unsigned int lookahead_pos;\n";
-static char meta_symbol_113[] = "lookahead_pos = parse_state->pos;\n";
-static char meta_symbol_114[] = "if (_.valid) {\n";
-static char meta_symbol_115[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char meta_symbol_116[] = "} else {\n";
-static char meta_symbol_117[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_118[] = "}\n";
-static char meta_symbol_119[] = "meta_parse_state_backtrack(parse_state, lookahead_pos);\n";
-static char meta_symbol_120[] = "MetaAction ";
-static char meta_symbol_121[] = ";\n";
-static char meta_symbol_122[] = "vars";
-static char meta_symbol_123[] = "->";
-static char meta_symbol_124[] = " = _;\n";
-static char meta_symbol_125[] = "List* star_variables;\n";
-static char meta_symbol_126[] = "List* star_variables;\n";
-static char meta_symbol_127[] = "unsigned int star_pos;\n";
-static char meta_symbol_128[] = "unsigned int star_pos;\n";
-static char meta_symbol_129[] = "unsigned int star_start_pos;\n";
-static char meta_symbol_130[] = "unsigned int star_start_pos;\n";
-static char meta_symbol_131[] = "star_variables = list_create(parse_state->arena);\n";
-static char meta_symbol_132[] = "star_start_pos = parse_state->pos;\n";
-static char meta_symbol_133[] = "while (1) {\n";
-static char meta_symbol_134[] = "star_pos = parse_state->pos;\n";
-static char meta_symbol_135[] = "if (!_.valid) {\n";
-static char meta_symbol_136[] = "meta_parse_state_backtrack(parse_state, star_pos);\n";
-static char meta_symbol_137[] = "break;\n";
-static char meta_symbol_138[] = "}\n";
-static char meta_symbol_139[] = "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n";
-static char meta_symbol_140[] = "}\n";
-static char meta_symbol_141[] = "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char meta_symbol_142[] = "unsigned int star_pos;\n";
-static char meta_symbol_143[] = "unsigned int star_pos;\n";
-static char meta_symbol_144[] = "unsigned int star_start_pos;\n";
-static char meta_symbol_145[] = "unsigned int star_start_pos;\n";
-static char meta_symbol_146[] = "star_start_pos = parse_state->pos;\n";
-static char meta_symbol_147[] = "while (1) {\n";
-static char meta_symbol_148[] = "star_pos = parse_state->pos;\n";
-static char meta_symbol_149[] = "if (!_.valid) {\n";
-static char meta_symbol_150[] = "meta_parse_state_backtrack(parse_state, star_pos);\n";
-static char meta_symbol_151[] = "break;\n";
-static char meta_symbol_152[] = "}\n";
-static char meta_symbol_153[] = "}\n";
-static char meta_symbol_154[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char meta_symbol_155[] = ":";
-static char meta_symbol_156[] = "*";
-static char meta_symbol_157[] = "&";
-static char meta_symbol_158[] = "!";
-static char meta_symbol_159[] = ".";
-static char meta_symbol_160[] = "|";
-static char meta_symbol_161[] = "->";
-static char meta_symbol_162[] = "_";
-static char meta_symbol_163[] = "bitpattern <<= 1;\n";
-static char meta_symbol_164[] = "bitmask <<= 1;\n";
-static char meta_symbol_165[] = "bitmask |= 1;\n";
-static char meta_symbol_166[] = "0";
-static char meta_symbol_167[] = "1";
-static char meta_symbol_168[] = "bitpattern |= 1;\n";
-static char meta_symbol_169[] = "_ = ";
-static char meta_symbol_170[] = "rule_";
-static char meta_symbol_171[] = "(parse_state);\n";
-static char meta_symbol_172[] = "0b";
-static char meta_symbol_173[] = "unsigned char bitpattern;\n";
-static char meta_symbol_174[] = "unsigned char bitpattern;\n";
-static char meta_symbol_175[] = "unsigned char bitmask;\n";
-static char meta_symbol_176[] = "unsigned char bitmask;\n";
-static char meta_symbol_177[] = "bitpattern = 0;\n";
-static char meta_symbol_178[] = "bitmask = 0;\n";
-static char meta_symbol_179[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
-static char meta_symbol_180[] = "parse_state->pos += 1;\n";
-static char meta_symbol_181[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char meta_symbol_182[] = "} else {\n";
-static char meta_symbol_183[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_184[] = "}\n";
-static char meta_symbol_185[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char meta_symbol_186[] = "parse_state->pos += 1;\n";
-static char meta_symbol_187[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char meta_symbol_188[] = "} else {\n";
-static char meta_symbol_189[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_190[] = "}\n";
-static char meta_symbol_191[] = "String* data;\n";
-static char meta_symbol_192[] = "String* data;\n";
-static char meta_symbol_193[] = "data = ";
-static char meta_symbol_194[] = ";\n";
-static char meta_symbol_195[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char meta_symbol_196[] = "parse_state->pos += data->size;\n";
-static char meta_symbol_197[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char meta_symbol_198[] = "} else {\n";
-static char meta_symbol_199[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_200[] = "}\n";
-static char meta_symbol_201[] = "{";
-static char meta_symbol_202[] = "}";
-static char meta_symbol_203[] = "void ";
-static char meta_symbol_204[] = "action_";
-static char meta_symbol_205[] = "(void* runtime, void* variables) {\n";
-static char meta_symbol_206[] = "}\n";
-static char meta_symbol_207[] = "\n";
-static char meta_symbol_208[] = "struct ";
-static char meta_symbol_209[] = "Action";
-static char meta_symbol_210[] = "Vars* vars";
-static char meta_symbol_211[] = " = arena_alloc(parse_state->arena, sizeof(struct ";
-static char meta_symbol_212[] = "Action";
-static char meta_symbol_213[] = "Vars));\n";
-static char meta_symbol_214[] = "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n";
-static char meta_symbol_215[] = "return meta_action_create(";
-static char meta_symbol_216[] = "action_";
-static char meta_symbol_217[] = ", (void*)vars";
-static char meta_symbol_218[] = ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char meta_symbol_219[] = "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n";
-static char meta_symbol_220[] = "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char meta_symbol_221[] = "((";
-static char meta_symbol_222[] = "Runtime*)runtime)";
-static char meta_symbol_223[] = "unseen(";
-static char meta_symbol_224[] = ") -> {";
-static char meta_symbol_225[] = "}";
-static char meta_symbol_226[] = "MetaAction action;\n";
-static char meta_symbol_227[] = "MetaAction action;\n";
-static char meta_symbol_228[] = "action = ";
-static char meta_symbol_229[] = ";\n";
-static char meta_symbol_230[] = "if (!string_builder_contains(";
-static char meta_symbol_231[] = "->current_string_builder, string_slice(";
-static char meta_symbol_232[] = "->arena, action.input_buffer, action.start, action.end))) {\n";
-static char meta_symbol_233[] = "}\n";
-static char meta_symbol_234[] = "unique(";
-static char meta_symbol_235[] = ")";
-static char meta_symbol_236[] = "if (!string_builder_contains(";
-static char meta_symbol_237[] = "->current_string_builder, ";
-static char meta_symbol_238[] = ")) {\n";
-static char meta_symbol_239[] = "string_builder_append(";
-static char meta_symbol_240[] = "->current_string_builder, ";
-static char meta_symbol_241[] = "->arena, ";
-static char meta_symbol_242[] = ", 0, NULL);\n";
-static char meta_symbol_243[] = "}\n";
-static char meta_symbol_244[] = ">";
-static char meta_symbol_245[] = "{";
-static char meta_symbol_246[] = "}";
-static char meta_symbol_247[] = "StringBuilder* last_string_builder;\n";
-static char meta_symbol_248[] = "StringBuilder* last_string_builder;\n";
-static char meta_symbol_249[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_250[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_251[] = "last_string_builder = ";
-static char meta_symbol_252[] = "->current_string_builder;\n";
-static char meta_symbol_253[] = "string_builder = ";
-static char meta_symbol_254[] = "->named_string_builder_";
-static char meta_symbol_255[] = ";\n";
-static char meta_symbol_256[] = "->current_string_builder = string_builder;\n";
-static char meta_symbol_257[] = "->current_string_builder = last_string_builder;\n";
-static char meta_symbol_258[] = "<";
-static char meta_symbol_259[] = "string_builder_append(";
-static char meta_symbol_260[] = "->current_string_builder, ";
-static char meta_symbol_261[] = "->arena, NULL, 0, ";
-static char meta_symbol_262[] = "->named_string_builder_";
-static char meta_symbol_263[] = ");\n";
-static char meta_symbol_264[] = "$";
-static char meta_symbol_265[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_266[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_267[] = "string_builder = string_builder_create(";
-static char meta_symbol_268[] = "->arena);\n";
-static char meta_symbol_269[] = "->named_string_builder_";
-static char meta_symbol_270[] = " = string_builder;\n";
-static char meta_symbol_271[] = "string_builder_append(";
-static char meta_symbol_272[] = "->current_string_builder, ";
-static char meta_symbol_273[] = "->arena, string_from_integer(";
-static char meta_symbol_274[] = "->arena, ";
-static char meta_symbol_275[] = "), 0, NULL);\n";
-static char meta_symbol_276[] = "meta_action_run(&";
-static char meta_symbol_277[] = ", runtime, ";
-static char meta_symbol_278[] = "->current_string_builder, ";
-static char meta_symbol_279[] = "->arena);\n";
-static char meta_symbol_280[] = "void placeholder_";
-static char meta_symbol_281[] = "(void* runtime, void* variables);\n";
-static char meta_symbol_282[] = "void placeholder_";
-static char meta_symbol_283[] = "(void* runtime, void* variables) {\n";
-static char meta_symbol_284[] = "}\n";
-static char meta_symbol_285[] = "\n";
-static char meta_symbol_286[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_287[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_288[] = "string_builder = string_builder_create(";
-static char meta_symbol_289[] = "->arena);\n";
-static char meta_symbol_290[] = "meta_placeholder_append2(";
-static char meta_symbol_291[] = "->arena, ";
-static char meta_symbol_292[] = "->placeholders, string_builder, meta_action_create(placeholder_";
-static char meta_symbol_293[] = ", variables, NULL, 0, 0));\n";
-static char meta_symbol_294[] = "string_builder_append(";
-static char meta_symbol_295[] = "->current_string_builder, ";
-static char meta_symbol_296[] = "->arena, NULL, 0, string_builder);\n";
-static char meta_symbol_297[] = "string_builder_append(";
-static char meta_symbol_298[] = "->current_string_builder, ";
-static char meta_symbol_299[] = "->arena, ";
-static char meta_symbol_300[] = ", 0, NULL);\n";
-static char meta_symbol_301[] = "#";
-static char meta_symbol_302[] = "(";
-static char meta_symbol_303[] = " ";
-static char meta_symbol_304[] = ")";
-static char meta_symbol_305[] = "->W_";
-static char meta_symbol_306[] = " = meta_";
-static char meta_symbol_307[] = "(";
-static char meta_symbol_308[] = "->W_";
-static char meta_symbol_309[] = " ? ";
-static char meta_symbol_310[] = "->W_";
-static char meta_symbol_311[] = " : 0, ";
-static char meta_symbol_312[] = ");\n";
-static char meta_symbol_313[] = ">";
-static char meta_symbol_314[] = "<";
-static char meta_symbol_315[] = "string_builder_append(";
-static char meta_symbol_316[] = "->current_string_builder, ";
-static char meta_symbol_317[] = "->arena, NULL, 1, NULL);\n";
-static char meta_symbol_318[] = "string_builder_append(";
-static char meta_symbol_319[] = "->current_string_builder, ";
-static char meta_symbol_320[] = "->arena, NULL, -1, NULL);\n";
-static char meta_symbol_321[] = "StringBuilder* named_string_builder_";
-static char meta_symbol_322[] = ";\n";
-static char meta_symbol_323[] = "0";
-static char meta_symbol_324[] = "1";
-static char meta_symbol_325[] = "2";
-static char meta_symbol_326[] = "3";
-static char meta_symbol_327[] = "4";
-static char meta_symbol_328[] = "5";
-static char meta_symbol_329[] = "6";
-static char meta_symbol_330[] = "7";
-static char meta_symbol_331[] = "8";
-static char meta_symbol_332[] = "9";
-static char meta_symbol_333[] = "{";
-static char meta_symbol_334[] = "*";
-static char meta_symbol_335[] = "}";
-static char meta_symbol_336[] = "int i;\n";
-static char meta_symbol_337[] = "int i;\n";
-static char meta_symbol_338[] = "for (i=0; i < ";
-static char meta_symbol_339[] = "; i++) {\n";
-static char meta_symbol_340[] = "string_builder_append(";
-static char meta_symbol_341[] = "->current_string_builder, ";
-static char meta_symbol_342[] = "->arena, ";
-static char meta_symbol_343[] = ", 0, NULL);\n";
-static char meta_symbol_344[] = "}\n";
-static char meta_symbol_345[] = "(";
-static char meta_symbol_346[] = "->W_";
-static char meta_symbol_347[] = " ? ";
-static char meta_symbol_348[] = "->W_";
-static char meta_symbol_349[] = " : 0)";
-static char meta_symbol_350[] = "(";
-static char meta_symbol_351[] = "-";
-static char meta_symbol_352[] = ")";
-static char meta_symbol_353[] = "((";
-static char meta_symbol_354[] = "->W_";
-static char meta_symbol_355[] = " ? ";
-static char meta_symbol_356[] = "->W_";
-static char meta_symbol_357[] = " : 0)-";
-static char meta_symbol_358[] = ")";
-static char meta_symbol_359[] = "number(";
-static char meta_symbol_360[] = ")";
-static char meta_symbol_361[] = "(0";
-static char meta_symbol_362[] = ")";
-static char meta_symbol_363[] = "+(meta_action_first_byte(";
-static char meta_symbol_364[] = ")";
-static char meta_symbol_365[] = ")";
-static char meta_symbol_366[] = "<<";
-static char meta_symbol_367[] = "\"";
-static char meta_symbol_368[] = "\"";
-static char meta_symbol_369[] = "static char ";
-static char meta_symbol_370[] = "symbol_";
-static char meta_symbol_371[] = "[] = \"";
-static char meta_symbol_372[] = "\";\n";
-static char meta_symbol_373[] = "string_from_cstring(";
-static char meta_symbol_374[] = "->arena, ";
-static char meta_symbol_375[] = "symbol_";
-static char meta_symbol_376[] = ", sizeof(";
-static char meta_symbol_377[] = "symbol_";
-static char meta_symbol_378[] = ")-1)";
-static char meta_symbol_379[] = "(";
-static char meta_symbol_380[] = ")";
-static char meta_symbol_381[] = "(((struct ";
-static char meta_symbol_382[] = "Action";
-static char meta_symbol_383[] = "Vars*)variables)->";
-static char meta_symbol_384[] = ")";
-static char meta_symbol_385[] = ".len";
-static char meta_symbol_386[] = "meta_action_len";
-static char meta_symbol_387[] = "W[";
-static char meta_symbol_388[] = "]";
-static char meta_symbol_389[] = "unsigned int W_";
-static char meta_symbol_390[] = ";\n";
-static char meta_symbol_391[] = "\"";
-static char meta_symbol_392[] = "\'";
-static char meta_symbol_393[] = "\'";
-static char meta_symbol_394[] = "static char ";
-static char meta_symbol_395[] = "symbol_";
-static char meta_symbol_396[] = "[] = \"";
-static char meta_symbol_397[] = "\";\n";
-static char meta_symbol_398[] = "string_from_cstring(parse_state->arena, ";
-static char meta_symbol_399[] = "symbol_";
-static char meta_symbol_400[] = ", sizeof(";
-static char meta_symbol_401[] = "symbol_";
-static char meta_symbol_402[] = ")-1)";
-static char meta_symbol_403[] = "\"";
-static char meta_symbol_404[] = "\\\"";
-static char meta_symbol_405[] = "\'";
-static char meta_symbol_406[] = "\\";
-static char meta_symbol_407[] = "a";
-static char meta_symbol_408[] = "b";
-static char meta_symbol_409[] = "c";
-static char meta_symbol_410[] = "d";
-static char meta_symbol_411[] = "e";
-static char meta_symbol_412[] = "f";
-static char meta_symbol_413[] = "g";
-static char meta_symbol_414[] = "h";
-static char meta_symbol_415[] = "i";
-static char meta_symbol_416[] = "j";
-static char meta_symbol_417[] = "k";
-static char meta_symbol_418[] = "l";
-static char meta_symbol_419[] = "m";
-static char meta_symbol_420[] = "n";
-static char meta_symbol_421[] = "o";
-static char meta_symbol_422[] = "p";
-static char meta_symbol_423[] = "q";
-static char meta_symbol_424[] = "r";
-static char meta_symbol_425[] = "s";
-static char meta_symbol_426[] = "t";
-static char meta_symbol_427[] = "u";
-static char meta_symbol_428[] = "v";
-static char meta_symbol_429[] = "w";
-static char meta_symbol_430[] = "x";
-static char meta_symbol_431[] = "y";
-static char meta_symbol_432[] = "z";
-static char meta_symbol_433[] = "A";
-static char meta_symbol_434[] = "B";
-static char meta_symbol_435[] = "C";
-static char meta_symbol_436[] = "D";
-static char meta_symbol_437[] = "E";
-static char meta_symbol_438[] = "F";
-static char meta_symbol_439[] = "G";
-static char meta_symbol_440[] = "H";
-static char meta_symbol_441[] = "I";
-static char meta_symbol_442[] = "J";
-static char meta_symbol_443[] = "K";
-static char meta_symbol_444[] = "L";
-static char meta_symbol_445[] = "M";
-static char meta_symbol_446[] = "N";
-static char meta_symbol_447[] = "O";
-static char meta_symbol_448[] = "P";
-static char meta_symbol_449[] = "Q";
-static char meta_symbol_450[] = "R";
-static char meta_symbol_451[] = "S";
-static char meta_symbol_452[] = "T";
-static char meta_symbol_453[] = "U";
-static char meta_symbol_454[] = "V";
-static char meta_symbol_455[] = "W";
-static char meta_symbol_456[] = "X";
-static char meta_symbol_457[] = "Y";
-static char meta_symbol_458[] = "Z";
-static char meta_symbol_459[] = " ";
-static char meta_symbol_460[] = "\n";
+static String meta_string_1 = {6, "#id = "};
+static String meta_string_2 = {1, "_"};
+static String meta_string_3 = {19, "#include <stdio.h>\n"};
+static String meta_string_4 = {20, "#include <string.h>\n"};
+static String meta_string_5 = {20, "#include <stdlib.h>\n"};
+static String meta_string_6 = {20, "#include <stdint.h>\n"};
+static String meta_string_7 = {1, "\n"};
+static String meta_string_8 = {19, "#include \"arena.c\"\n"};
+static String meta_string_9 = {18, "#include \"list.c\"\n"};
+static String meta_string_10 = {20, "#include \"string.c\"\n"};
+static String meta_string_11 = {27, "#include \"stringbuilder.c\"\n"};
+static String meta_string_12 = {18, "#include \"meta.c\"\n"};
+static String meta_string_13 = {1, "\n"};
+static String meta_string_14 = {15, "typedef struct "};
+static String meta_string_15 = {10, "runtime {\n"};
+static String meta_string_16 = {36, "StringBuilder* main_string_builder;\n"};
+static String meta_string_17 = {39, "StringBuilder* current_string_builder;\n"};
+static String meta_string_18 = {32, "MetaPlaceholders* placeholders;\n"};
+static String meta_string_19 = {14, "Arena* arena;\n"};
+static String meta_string_20 = {2, "} "};
+static String meta_string_21 = {9, "Runtime;\n"};
+static String meta_string_22 = {1, "\n"};
+static String meta_string_23 = {9, "Runtime* "};
+static String meta_string_24 = {31, "create_runtime(Arena* arena) {\n"};
+static String meta_string_25 = {45, "Runtime* runtime = arena_alloc(arena, sizeof("};
+static String meta_string_26 = {11, "Runtime));\n"};
+static String meta_string_27 = {61, "runtime->main_string_builder = string_builder_create(arena);\n"};
+static String meta_string_28 = {64, "runtime->current_string_builder = runtime->main_string_builder;\n"};
+static String meta_string_29 = {57, "runtime->placeholders = meta_placeholders_create(arena);\n"};
+static String meta_string_30 = {24, "runtime->arena = arena;\n"};
+static String meta_string_31 = {16, "return runtime;\n"};
+static String meta_string_32 = {2, "}\n"};
+static String meta_string_33 = {1, "\n"};
+static String meta_string_34 = {1, "\n"};
+static String meta_string_35 = {16, "#ifndef NO_MAIN\n"};
+static String meta_string_36 = {17, "int main(void) {\n"};
+static String meta_string_37 = {35, "Arena arena = arena_create(2<<25);\n"};
+static String meta_string_38 = {67, "MetaParseState* parse_state = meta_parse_state_from_stdin(&arena);\n"};
+static String meta_string_39 = {37, "unsigned int input_pos = arena.used;\n"};
+static String meta_string_40 = {24, "unsigned int parse_pos;\n"};
+static String meta_string_41 = {25, "unsigned int parse_size;\n"};
+static String meta_string_42 = {27, "unsigned int codegen_size;\n"};
+static String meta_string_43 = {19, "Runtime* runtime = "};
+static String meta_string_44 = {36, "create_runtime(parse_state->arena);\n"};
+static String meta_string_45 = {20, "MetaAction action = "};
+static String meta_string_46 = {24, "rule_main(parse_state);\n"};
+static String meta_string_47 = {28, "ListItem* placeholder_item;\n"};
+static String meta_string_48 = {21, "if (!action.valid) {\n"};
+static String meta_string_49 = {109, "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n"};
+static String meta_string_50 = {9, "exit(1);\n"};
+static String meta_string_51 = {2, "}\n"};
+static String meta_string_52 = {37, "parse_size = arena.used - input_pos;\n"};
+static String meta_string_53 = {24, "parse_pos = arena.used;\n"};
+static String meta_string_54 = {84, "meta_action_run(&action, runtime, runtime->current_string_builder, runtime->arena);\n"};
+static String meta_string_55 = {59, "placeholder_item = runtime->placeholders->pre_first->next;\n"};
+static String meta_string_56 = {27, "while (placeholder_item) {\n"};
+static String meta_string_57 = {55, "MetaPlaceholder* placeholder = placeholder_item->data;\n"};
+static String meta_string_58 = {63, "runtime->current_string_builder = placeholder->string_builder;\n"};
+static String meta_string_59 = {96, "meta_action_run(placeholder->action, runtime, runtime->current_string_builder, runtime->arena);\n"};
+static String meta_string_60 = {43, "placeholder_item = placeholder_item->next;\n"};
+static String meta_string_61 = {2, "}\n"};
+static String meta_string_62 = {53, "string_builder_render(runtime->main_string_builder);\n"};
+static String meta_string_63 = {39, "codegen_size = arena.used - parse_pos;\n"};
+static String meta_string_64 = {82, "fprintf(stderr, \"  DEBUG: Input size   = %d\\n\", parse_state->input_buffer->size);\n"};
+static String meta_string_65 = {61, "fprintf(stderr, \"  DEBUG: Parse size   = %d\\n\", parse_size);\n"};
+static String meta_string_66 = {94, "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", parse_size/parse_state->input_buffer->size);\n"};
+static String meta_string_67 = {63, "fprintf(stderr, \"  DEBUG: Codegen size = %d\\n\", codegen_size);\n"};
+static String meta_string_68 = {96, "fprintf(stderr, \"  DEBUG: Ratio        = %dx\\n\", codegen_size/parse_state->input_buffer->size);\n"};
+static String meta_string_69 = {61, "fprintf(stderr, \"  DEBUG: Total size   = %d\\n\", arena.used);\n"};
+static String meta_string_70 = {10, "return 0;\n"};
+static String meta_string_71 = {2, "}\n"};
+static String meta_string_72 = {7, "#endif\n"};
+static String meta_string_73 = {1, "="};
+static String meta_string_74 = {1, ";"};
+static String meta_string_75 = {11, "MetaAction "};
+static String meta_string_76 = {5, "rule_"};
+static String meta_string_77 = {31, "(MetaParseState* parse_state);\n"};
+static String meta_string_78 = {11, "MetaAction "};
+static String meta_string_79 = {5, "rule_"};
+static String meta_string_80 = {32, "(MetaParseState* parse_state) {\n"};
+static String meta_string_81 = {31, "unsigned int or_backtrack_pos;\n"};
+static String meta_string_82 = {31, "unsigned int action_start_pos;\n"};
+static String meta_string_83 = {14, "MetaAction _;\n"};
+static String meta_string_84 = {26, "MetaHighlight highlight = "};
+static String meta_string_85 = {2, ";\n"};
+static String meta_string_86 = {37, "return meta_action_create_invalid();\n"};
+static String meta_string_87 = {2, "}\n"};
+static String meta_string_88 = {1, "\n"};
+static String meta_string_89 = {1, "["};
+static String meta_string_90 = {1, "]"};
+static String meta_string_91 = {14, "MetaHighlight_"};
+static String meta_string_92 = {18, "MetaHighlight_None"};
+static String meta_string_93 = {37, "or_backtrack_pos = parse_state->pos;\n"};
+static String meta_string_94 = {7, "struct "};
+static String meta_string_95 = {6, "Action"};
+static String meta_string_96 = {7, "Vars {\n"};
+static String meta_string_97 = {3, "};\n"};
+static String meta_string_98 = {59, "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n"};
+static String meta_string_99 = {37, "action_start_pos = parse_state->pos;\n"};
+static String meta_string_100 = {15, "if (_.valid) {\n"};
+static String meta_string_101 = {2, "}\n"};
+static String meta_string_102 = {29, "unsigned int nlookahead_pos;\n"};
+static String meta_string_103 = {29, "unsigned int nlookahead_pos;\n"};
+static String meta_string_104 = {35, "nlookahead_pos = parse_state->pos;\n"};
+static String meta_string_105 = {15, "if (_.valid) {\n"};
+static String meta_string_106 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_107 = {9, "} else {\n"};
+static String meta_string_108 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
+static String meta_string_109 = {2, "}\n"};
+static String meta_string_110 = {57, "meta_parse_state_backtrack(parse_state, nlookahead_pos);\n"};
+static String meta_string_111 = {28, "unsigned int lookahead_pos;\n"};
+static String meta_string_112 = {28, "unsigned int lookahead_pos;\n"};
+static String meta_string_113 = {34, "lookahead_pos = parse_state->pos;\n"};
+static String meta_string_114 = {15, "if (_.valid) {\n"};
+static String meta_string_115 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
+static String meta_string_116 = {9, "} else {\n"};
+static String meta_string_117 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_118 = {2, "}\n"};
+static String meta_string_119 = {56, "meta_parse_state_backtrack(parse_state, lookahead_pos);\n"};
+static String meta_string_120 = {11, "MetaAction "};
+static String meta_string_121 = {2, ";\n"};
+static String meta_string_122 = {4, "vars"};
+static String meta_string_123 = {2, "->"};
+static String meta_string_124 = {6, " = _;\n"};
+static String meta_string_125 = {22, "List* star_variables;\n"};
+static String meta_string_126 = {22, "List* star_variables;\n"};
+static String meta_string_127 = {23, "unsigned int star_pos;\n"};
+static String meta_string_128 = {23, "unsigned int star_pos;\n"};
+static String meta_string_129 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_130 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_131 = {50, "star_variables = list_create(parse_state->arena);\n"};
+static String meta_string_132 = {35, "star_start_pos = parse_state->pos;\n"};
+static String meta_string_133 = {12, "while (1) {\n"};
+static String meta_string_134 = {29, "star_pos = parse_state->pos;\n"};
+static String meta_string_135 = {16, "if (!_.valid) {\n"};
+static String meta_string_136 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
+static String meta_string_137 = {7, "break;\n"};
+static String meta_string_138 = {2, "}\n"};
+static String meta_string_139 = {112, "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n"};
+static String meta_string_140 = {2, "}\n"};
+static String meta_string_141 = {114, "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
+static String meta_string_142 = {23, "unsigned int star_pos;\n"};
+static String meta_string_143 = {23, "unsigned int star_pos;\n"};
+static String meta_string_144 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_145 = {29, "unsigned int star_start_pos;\n"};
+static String meta_string_146 = {35, "star_start_pos = parse_state->pos;\n"};
+static String meta_string_147 = {12, "while (1) {\n"};
+static String meta_string_148 = {29, "star_pos = parse_state->pos;\n"};
+static String meta_string_149 = {16, "if (!_.valid) {\n"};
+static String meta_string_150 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
+static String meta_string_151 = {7, "break;\n"};
+static String meta_string_152 = {2, "}\n"};
+static String meta_string_153 = {2, "}\n"};
+static String meta_string_154 = {97, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
+static String meta_string_155 = {1, ":"};
+static String meta_string_156 = {1, "*"};
+static String meta_string_157 = {1, "&"};
+static String meta_string_158 = {1, "!"};
+static String meta_string_159 = {1, "."};
+static String meta_string_160 = {1, "|"};
+static String meta_string_161 = {2, "->"};
+static String meta_string_162 = {1, "_"};
+static String meta_string_163 = {18, "bitpattern <<= 1;\n"};
+static String meta_string_164 = {15, "bitmask <<= 1;\n"};
+static String meta_string_165 = {14, "bitmask |= 1;\n"};
+static String meta_string_166 = {1, "0"};
+static String meta_string_167 = {1, "1"};
+static String meta_string_168 = {17, "bitpattern |= 1;\n"};
+static String meta_string_169 = {4, "_ = "};
+static String meta_string_170 = {5, "rule_"};
+static String meta_string_171 = {15, "(parse_state);\n"};
+static String meta_string_172 = {2, "0b"};
+static String meta_string_173 = {26, "unsigned char bitpattern;\n"};
+static String meta_string_174 = {26, "unsigned char bitpattern;\n"};
+static String meta_string_175 = {23, "unsigned char bitmask;\n"};
+static String meta_string_176 = {23, "unsigned char bitmask;\n"};
+static String meta_string_177 = {16, "bitpattern = 0;\n"};
+static String meta_string_178 = {13, "bitmask = 0;\n"};
+static String meta_string_179 = {162, "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n"};
+static String meta_string_180 = {23, "parse_state->pos += 1;\n"};
+static String meta_string_181 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
+static String meta_string_182 = {9, "} else {\n"};
+static String meta_string_183 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_184 = {2, "}\n"};
+static String meta_string_185 = {58, "if (parse_state->pos < parse_state->input_buffer->size) {\n"};
+static String meta_string_186 = {23, "parse_state->pos += 1;\n"};
+static String meta_string_187 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
+static String meta_string_188 = {9, "} else {\n"};
+static String meta_string_189 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_190 = {2, "}\n"};
+static String meta_string_191 = {14, "String* data;\n"};
+static String meta_string_192 = {14, "String* data;\n"};
+static String meta_string_193 = {7, "data = "};
+static String meta_string_194 = {2, ";\n"};
+static String meta_string_195 = {202, "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n"};
+static String meta_string_196 = {32, "parse_state->pos += data->size;\n"};
+static String meta_string_197 = {110, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"};
+static String meta_string_198 = {9, "} else {\n"};
+static String meta_string_199 = {34, "_ = meta_action_create_invalid();\n"};
+static String meta_string_200 = {2, "}\n"};
+static String meta_string_201 = {1, "{"};
+static String meta_string_202 = {1, "}"};
+static String meta_string_203 = {5, "void "};
+static String meta_string_204 = {7, "action_"};
+static String meta_string_205 = {35, "(void* runtime, void* variables) {\n"};
+static String meta_string_206 = {2, "}\n"};
+static String meta_string_207 = {1, "\n"};
+static String meta_string_208 = {7, "struct "};
+static String meta_string_209 = {6, "Action"};
+static String meta_string_210 = {10, "Vars* vars"};
+static String meta_string_211 = {49, " = arena_alloc(parse_state->arena, sizeof(struct "};
+static String meta_string_212 = {6, "Action"};
+static String meta_string_213 = {8, "Vars));\n"};
+static String meta_string_214 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
+static String meta_string_215 = {26, "return meta_action_create("};
+static String meta_string_216 = {7, "action_"};
+static String meta_string_217 = {13, ", (void*)vars"};
+static String meta_string_218 = {66, ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
+static String meta_string_219 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
+static String meta_string_220 = {102, "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
+static String meta_string_221 = {2, "(("};
+static String meta_string_222 = {17, "Runtime*)runtime)"};
+static String meta_string_223 = {7, "unseen("};
+static String meta_string_224 = {6, ") -> {"};
+static String meta_string_225 = {1, "}"};
+static String meta_string_226 = {19, "MetaAction action;\n"};
+static String meta_string_227 = {19, "MetaAction action;\n"};
+static String meta_string_228 = {9, "action = "};
+static String meta_string_229 = {2, ";\n"};
+static String meta_string_230 = {29, "if (!string_builder_contains("};
+static String meta_string_231 = {39, "->current_string_builder, string_slice("};
+static String meta_string_232 = {60, "->arena, action.input_buffer, action.start, action.end))) {\n"};
+static String meta_string_233 = {2, "}\n"};
+static String meta_string_234 = {7, "unique("};
+static String meta_string_235 = {1, ")"};
+static String meta_string_236 = {29, "if (!string_builder_contains("};
+static String meta_string_237 = {26, "->current_string_builder, "};
+static String meta_string_238 = {5, ")) {\n"};
+static String meta_string_239 = {22, "string_builder_append("};
+static String meta_string_240 = {26, "->current_string_builder, "};
+static String meta_string_241 = {9, "->arena, "};
+static String meta_string_242 = {12, ", 0, NULL);\n"};
+static String meta_string_243 = {2, "}\n"};
+static String meta_string_244 = {1, ">"};
+static String meta_string_245 = {1, "{"};
+static String meta_string_246 = {1, "}"};
+static String meta_string_247 = {36, "StringBuilder* last_string_builder;\n"};
+static String meta_string_248 = {36, "StringBuilder* last_string_builder;\n"};
+static String meta_string_249 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_250 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_251 = {22, "last_string_builder = "};
+static String meta_string_252 = {26, "->current_string_builder;\n"};
+static String meta_string_253 = {17, "string_builder = "};
+static String meta_string_254 = {23, "->named_string_builder_"};
+static String meta_string_255 = {2, ";\n"};
+static String meta_string_256 = {43, "->current_string_builder = string_builder;\n"};
+static String meta_string_257 = {48, "->current_string_builder = last_string_builder;\n"};
+static String meta_string_258 = {1, "<"};
+static String meta_string_259 = {22, "string_builder_append("};
+static String meta_string_260 = {26, "->current_string_builder, "};
+static String meta_string_261 = {18, "->arena, NULL, 0, "};
+static String meta_string_262 = {23, "->named_string_builder_"};
+static String meta_string_263 = {3, ");\n"};
+static String meta_string_264 = {1, "$"};
+static String meta_string_265 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_266 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_267 = {39, "string_builder = string_builder_create("};
+static String meta_string_268 = {10, "->arena);\n"};
+static String meta_string_269 = {23, "->named_string_builder_"};
+static String meta_string_270 = {19, " = string_builder;\n"};
+static String meta_string_271 = {22, "string_builder_append("};
+static String meta_string_272 = {26, "->current_string_builder, "};
+static String meta_string_273 = {29, "->arena, string_from_integer("};
+static String meta_string_274 = {9, "->arena, "};
+static String meta_string_275 = {13, "), 0, NULL);\n"};
+static String meta_string_276 = {17, "meta_action_run(&"};
+static String meta_string_277 = {11, ", runtime, "};
+static String meta_string_278 = {26, "->current_string_builder, "};
+static String meta_string_279 = {10, "->arena);\n"};
+static String meta_string_280 = {17, "void placeholder_"};
+static String meta_string_281 = {34, "(void* runtime, void* variables);\n"};
+static String meta_string_282 = {17, "void placeholder_"};
+static String meta_string_283 = {35, "(void* runtime, void* variables) {\n"};
+static String meta_string_284 = {2, "}\n"};
+static String meta_string_285 = {1, "\n"};
+static String meta_string_286 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_287 = {31, "StringBuilder* string_builder;\n"};
+static String meta_string_288 = {39, "string_builder = string_builder_create("};
+static String meta_string_289 = {10, "->arena);\n"};
+static String meta_string_290 = {25, "meta_placeholder_append2("};
+static String meta_string_291 = {9, "->arena, "};
+static String meta_string_292 = {63, "->placeholders, string_builder, meta_action_create(placeholder_"};
+static String meta_string_293 = {27, ", variables, NULL, 0, 0));\n"};
+static String meta_string_294 = {22, "string_builder_append("};
+static String meta_string_295 = {26, "->current_string_builder, "};
+static String meta_string_296 = {35, "->arena, NULL, 0, string_builder);\n"};
+static String meta_string_297 = {22, "string_builder_append("};
+static String meta_string_298 = {26, "->current_string_builder, "};
+static String meta_string_299 = {9, "->arena, "};
+static String meta_string_300 = {12, ", 0, NULL);\n"};
+static String meta_string_301 = {1, "#"};
+static String meta_string_302 = {1, "("};
+static String meta_string_303 = {1, " "};
+static String meta_string_304 = {1, ")"};
+static String meta_string_305 = {4, "->W_"};
+static String meta_string_306 = {8, " = meta_"};
+static String meta_string_307 = {1, "("};
+static String meta_string_308 = {4, "->W_"};
+static String meta_string_309 = {3, " ? "};
+static String meta_string_310 = {4, "->W_"};
+static String meta_string_311 = {6, " : 0, "};
+static String meta_string_312 = {3, ");\n"};
+static String meta_string_313 = {1, ">"};
+static String meta_string_314 = {1, "<"};
+static String meta_string_315 = {22, "string_builder_append("};
+static String meta_string_316 = {26, "->current_string_builder, "};
+static String meta_string_317 = {25, "->arena, NULL, 1, NULL);\n"};
+static String meta_string_318 = {22, "string_builder_append("};
+static String meta_string_319 = {26, "->current_string_builder, "};
+static String meta_string_320 = {26, "->arena, NULL, -1, NULL);\n"};
+static String meta_string_321 = {36, "StringBuilder* named_string_builder_"};
+static String meta_string_322 = {2, ";\n"};
+static String meta_string_323 = {1, "0"};
+static String meta_string_324 = {1, "1"};
+static String meta_string_325 = {1, "2"};
+static String meta_string_326 = {1, "3"};
+static String meta_string_327 = {1, "4"};
+static String meta_string_328 = {1, "5"};
+static String meta_string_329 = {1, "6"};
+static String meta_string_330 = {1, "7"};
+static String meta_string_331 = {1, "8"};
+static String meta_string_332 = {1, "9"};
+static String meta_string_333 = {1, "{"};
+static String meta_string_334 = {1, "*"};
+static String meta_string_335 = {1, "}"};
+static String meta_string_336 = {7, "int i;\n"};
+static String meta_string_337 = {7, "int i;\n"};
+static String meta_string_338 = {14, "for (i=0; i < "};
+static String meta_string_339 = {9, "; i++) {\n"};
+static String meta_string_340 = {22, "string_builder_append("};
+static String meta_string_341 = {26, "->current_string_builder, "};
+static String meta_string_342 = {9, "->arena, "};
+static String meta_string_343 = {12, ", 0, NULL);\n"};
+static String meta_string_344 = {2, "}\n"};
+static String meta_string_345 = {1, "("};
+static String meta_string_346 = {4, "->W_"};
+static String meta_string_347 = {3, " ? "};
+static String meta_string_348 = {4, "->W_"};
+static String meta_string_349 = {5, " : 0)"};
+static String meta_string_350 = {1, "("};
+static String meta_string_351 = {1, "-"};
+static String meta_string_352 = {1, ")"};
+static String meta_string_353 = {2, "(("};
+static String meta_string_354 = {4, "->W_"};
+static String meta_string_355 = {3, " ? "};
+static String meta_string_356 = {4, "->W_"};
+static String meta_string_357 = {6, " : 0)-"};
+static String meta_string_358 = {1, ")"};
+static String meta_string_359 = {7, "number("};
+static String meta_string_360 = {1, ")"};
+static String meta_string_361 = {2, "(0"};
+static String meta_string_362 = {1, ")"};
+static String meta_string_363 = {25, "+(meta_action_first_byte("};
+static String meta_string_364 = {1, ")"};
+static String meta_string_365 = {1, ")"};
+static String meta_string_366 = {2, "<<"};
+static String meta_string_367 = {1, "\""};
+static String meta_string_368 = {1, "\""};
+static String meta_string_369 = {14, "static String "};
+static String meta_string_370 = {7, "string_"};
+static String meta_string_371 = {4, " = {"};
+static String meta_string_372 = {3, ", \""};
+static String meta_string_373 = {4, "\"};\n"};
+static String meta_string_374 = {2, "(&"};
+static String meta_string_375 = {7, "string_"};
+static String meta_string_376 = {1, ")"};
+static String meta_string_377 = {1, "("};
+static String meta_string_378 = {1, ")"};
+static String meta_string_379 = {10, "(((struct "};
+static String meta_string_380 = {6, "Action"};
+static String meta_string_381 = {18, "Vars*)variables)->"};
+static String meta_string_382 = {1, ")"};
+static String meta_string_383 = {4, ".len"};
+static String meta_string_384 = {15, "meta_action_len"};
+static String meta_string_385 = {6, ".count"};
+static String meta_string_386 = {17, "meta_action_count"};
+static String meta_string_387 = {2, "W["};
+static String meta_string_388 = {1, "]"};
+static String meta_string_389 = {15, "unsigned int W_"};
+static String meta_string_390 = {2, ";\n"};
+static String meta_string_391 = {1, "\""};
+static String meta_string_392 = {1, "\'"};
+static String meta_string_393 = {1, "\'"};
+static String meta_string_394 = {14, "static String "};
+static String meta_string_395 = {7, "string_"};
+static String meta_string_396 = {4, " = {"};
+static String meta_string_397 = {3, ", \""};
+static String meta_string_398 = {4, "\"};\n"};
+static String meta_string_399 = {2, "(&"};
+static String meta_string_400 = {7, "string_"};
+static String meta_string_401 = {1, ")"};
+static String meta_string_402 = {1, "\""};
+static String meta_string_403 = {2, "\\\""};
+static String meta_string_404 = {1, "\'"};
+static String meta_string_405 = {1, "\\"};
+static String meta_string_406 = {1, "a"};
+static String meta_string_407 = {1, "b"};
+static String meta_string_408 = {1, "c"};
+static String meta_string_409 = {1, "d"};
+static String meta_string_410 = {1, "e"};
+static String meta_string_411 = {1, "f"};
+static String meta_string_412 = {1, "g"};
+static String meta_string_413 = {1, "h"};
+static String meta_string_414 = {1, "i"};
+static String meta_string_415 = {1, "j"};
+static String meta_string_416 = {1, "k"};
+static String meta_string_417 = {1, "l"};
+static String meta_string_418 = {1, "m"};
+static String meta_string_419 = {1, "n"};
+static String meta_string_420 = {1, "o"};
+static String meta_string_421 = {1, "p"};
+static String meta_string_422 = {1, "q"};
+static String meta_string_423 = {1, "r"};
+static String meta_string_424 = {1, "s"};
+static String meta_string_425 = {1, "t"};
+static String meta_string_426 = {1, "u"};
+static String meta_string_427 = {1, "v"};
+static String meta_string_428 = {1, "w"};
+static String meta_string_429 = {1, "x"};
+static String meta_string_430 = {1, "y"};
+static String meta_string_431 = {1, "z"};
+static String meta_string_432 = {1, "A"};
+static String meta_string_433 = {1, "B"};
+static String meta_string_434 = {1, "C"};
+static String meta_string_435 = {1, "D"};
+static String meta_string_436 = {1, "E"};
+static String meta_string_437 = {1, "F"};
+static String meta_string_438 = {1, "G"};
+static String meta_string_439 = {1, "H"};
+static String meta_string_440 = {1, "I"};
+static String meta_string_441 = {1, "J"};
+static String meta_string_442 = {1, "K"};
+static String meta_string_443 = {1, "L"};
+static String meta_string_444 = {1, "M"};
+static String meta_string_445 = {1, "N"};
+static String meta_string_446 = {1, "O"};
+static String meta_string_447 = {1, "P"};
+static String meta_string_448 = {1, "Q"};
+static String meta_string_449 = {1, "R"};
+static String meta_string_450 = {1, "S"};
+static String meta_string_451 = {1, "T"};
+static String meta_string_452 = {1, "U"};
+static String meta_string_453 = {1, "V"};
+static String meta_string_454 = {1, "W"};
+static String meta_string_455 = {1, "X"};
+static String meta_string_456 = {1, "Y"};
+static String meta_string_457 = {1, "Z"};
+static String meta_string_458 = {1, " "};
+static String meta_string_459 = {1, "\n"};
 MetaAction meta_rule_main(MetaParseState* parse_state);
 struct meta_Action1Vars {
     MetaAction xs;
@@ -738,77 +737,78 @@ struct meta_Action69Vars {
     MetaAction runtime;
 };
 struct meta_Action70Vars {
+    MetaAction y;
+};
+struct meta_Action71Vars {
     MetaAction xs;
 };
 MetaAction meta_rule_numberPart(MetaParseState* parse_state);
-struct meta_Action71Vars {
+struct meta_Action72Vars {
     MetaAction x;
     MetaAction y;
 };
 MetaAction meta_rule_maybeShift(MetaParseState* parse_state);
-struct meta_Action72Vars {
-};
 struct meta_Action73Vars {
 };
-MetaAction meta_rule_string(MetaParseState* parse_state);
 struct meta_Action74Vars {
+};
+MetaAction meta_rule_string(MetaParseState* parse_state);
+struct meta_Action75Vars {
     MetaAction xs;
     MetaAction runtime;
 };
 MetaAction meta_rule_dotname(MetaParseState* parse_state);
-struct meta_Action75Vars {
+struct meta_Action76Vars {
     MetaAction x;
     MetaAction y;
 };
 MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state);
-struct meta_Action76Vars {
+struct meta_Action77Vars {
     MetaAction x;
 };
 MetaAction meta_rule_nextname(MetaParseState* parse_state);
-struct meta_Action77Vars {
-};
-MetaAction meta_rule_wvar(MetaParseState* parse_state);
 struct meta_Action78Vars {
-    MetaAction x;
 };
-MetaAction meta_rule_stringInner(MetaParseState* parse_state);
 struct meta_Action79Vars {
 };
+MetaAction meta_rule_wvar(MetaParseState* parse_state);
 struct meta_Action80Vars {
+    MetaAction x;
 };
-MetaAction meta_rule_charString(MetaParseState* parse_state);
+MetaAction meta_rule_stringInner(MetaParseState* parse_state);
 struct meta_Action81Vars {
-    MetaAction xs;
 };
-MetaAction meta_rule_charStringInner(MetaParseState* parse_state);
 struct meta_Action82Vars {
 };
+MetaAction meta_rule_charString(MetaParseState* parse_state);
 struct meta_Action83Vars {
+    MetaAction xs;
 };
+MetaAction meta_rule_charStringInner(MetaParseState* parse_state);
 struct meta_Action84Vars {
 };
-MetaAction meta_rule_stringEscape(MetaParseState* parse_state);
 struct meta_Action85Vars {
 };
-MetaAction meta_rule_ruleName(MetaParseState* parse_state);
 struct meta_Action86Vars {
 };
-MetaAction meta_rule_variableName(MetaParseState* parse_state);
+MetaAction meta_rule_stringEscape(MetaParseState* parse_state);
 struct meta_Action87Vars {
 };
-MetaAction meta_rule_name(MetaParseState* parse_state);
+MetaAction meta_rule_ruleName(MetaParseState* parse_state);
 struct meta_Action88Vars {
 };
-MetaAction meta_rule_char(MetaParseState* parse_state);
+MetaAction meta_rule_variableName(MetaParseState* parse_state);
 struct meta_Action89Vars {
 };
+MetaAction meta_rule_name(MetaParseState* parse_state);
 struct meta_Action90Vars {
 };
-MetaAction meta_rule_lower(MetaParseState* parse_state);
+MetaAction meta_rule_char(MetaParseState* parse_state);
 struct meta_Action91Vars {
 };
 struct meta_Action92Vars {
 };
+MetaAction meta_rule_lower(MetaParseState* parse_state);
 struct meta_Action93Vars {
 };
 struct meta_Action94Vars {
@@ -857,11 +857,11 @@ struct meta_Action115Vars {
 };
 struct meta_Action116Vars {
 };
-MetaAction meta_rule_upper(MetaParseState* parse_state);
 struct meta_Action117Vars {
 };
 struct meta_Action118Vars {
 };
+MetaAction meta_rule_upper(MetaParseState* parse_state);
 struct meta_Action119Vars {
 };
 struct meta_Action120Vars {
@@ -910,17 +910,21 @@ struct meta_Action141Vars {
 };
 struct meta_Action142Vars {
 };
-MetaAction meta_rule_number(MetaParseState* parse_state);
 struct meta_Action143Vars {
 };
-MetaAction meta_rule_space(MetaParseState* parse_state);
 struct meta_Action144Vars {
 };
-MetaAction meta_rule_spacechar(MetaParseState* parse_state);
+MetaAction meta_rule_number(MetaParseState* parse_state);
 struct meta_Action145Vars {
 };
+MetaAction meta_rule_space(MetaParseState* parse_state);
 struct meta_Action146Vars {
 };
+MetaAction meta_rule_spacechar(MetaParseState* parse_state);
+struct meta_Action147Vars {
+};
+struct meta_Action148Vars {
+};
 
 void meta_action_1(void* runtime, void* variables) {
     StringBuilder* string_builder;
@@ -937,66 +941,66 @@ void meta_action_2(void* runtime, void* variables) {
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_prefix;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     meta_action_run(&(((struct meta_Action2Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_2, sizeof(meta_symbol_2)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_2), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
 }
 
 void meta_action_3(void* runtime, void* variables) {
     StringBuilder* string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_3, sizeof(meta_symbol_3)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_4, sizeof(meta_symbol_4)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_5, sizeof(meta_symbol_5)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_6, sizeof(meta_symbol_6)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_7, sizeof(meta_symbol_7)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_8, sizeof(meta_symbol_8)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_9, sizeof(meta_symbol_9)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_10, sizeof(meta_symbol_10)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_11, sizeof(meta_symbol_11)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_12, sizeof(meta_symbol_12)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_13, sizeof(meta_symbol_13)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_14, sizeof(meta_symbol_14)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_3), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_4), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_5), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_6), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_7), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_8), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_9), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_10), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_11), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_12), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_13), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_14), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_15, sizeof(meta_symbol_15)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_15), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_16, sizeof(meta_symbol_16)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_16), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_namedStringBuilders = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_namedStringBuilders);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_17, sizeof(meta_symbol_17)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_17), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_namedWs = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_namedWs);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_18, sizeof(meta_symbol_18)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_19, sizeof(meta_symbol_19)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_18), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_19), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_20, sizeof(meta_symbol_20)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_20), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_21, sizeof(meta_symbol_21)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_22, sizeof(meta_symbol_22)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_21), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_22), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_23, sizeof(meta_symbol_23)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_23), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_24, sizeof(meta_symbol_24)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_24), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_25, sizeof(meta_symbol_25)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_25), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_26, sizeof(meta_symbol_26)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_27, sizeof(meta_symbol_27)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_28, sizeof(meta_symbol_28)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_29, sizeof(meta_symbol_29)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_30, sizeof(meta_symbol_30)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_31, sizeof(meta_symbol_31)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_26), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_27), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_28), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_29), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_30), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_31), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_32, sizeof(meta_symbol_32)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_33, sizeof(meta_symbol_33)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_32), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_33), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_symbols = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_symbols);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_definitions = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_definitions);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_34, sizeof(meta_symbol_34)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_34), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_actions = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_actions);
@@ -1004,53 +1008,53 @@ void meta_action_3(void* runtime, void* variables) {
     ((meta_Runtime*)runtime)->named_string_builder_placeholders = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_placeholders);
     meta_action_run(&(((struct meta_Action3Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_35, sizeof(meta_symbol_35)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_36, sizeof(meta_symbol_36)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_35), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_36), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_37, sizeof(meta_symbol_37)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_38, sizeof(meta_symbol_38)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_39, sizeof(meta_symbol_39)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_40, sizeof(meta_symbol_40)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_41, sizeof(meta_symbol_41)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_42, sizeof(meta_symbol_42)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_37), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_38), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_39), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_40), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_41), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_42), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_43, sizeof(meta_symbol_43)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_43), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_44, sizeof(meta_symbol_44)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_45, sizeof(meta_symbol_45)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_44), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_45), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_46, sizeof(meta_symbol_46)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_47, sizeof(meta_symbol_47)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_48, sizeof(meta_symbol_48)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_46), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_47), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_48), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_49, sizeof(meta_symbol_49)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_50, sizeof(meta_symbol_50)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_49), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_50), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_51, sizeof(meta_symbol_51)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_52, sizeof(meta_symbol_52)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_53, sizeof(meta_symbol_53)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_54, sizeof(meta_symbol_54)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_55, sizeof(meta_symbol_55)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_56, sizeof(meta_symbol_56)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_51), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_52), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_53), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_54), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_55), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_56), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_57, sizeof(meta_symbol_57)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_58, sizeof(meta_symbol_58)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_59, sizeof(meta_symbol_59)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_60, sizeof(meta_symbol_60)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_57), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_58), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_59), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_60), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_61, sizeof(meta_symbol_61)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_62, sizeof(meta_symbol_62)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_63, sizeof(meta_symbol_63)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_64, sizeof(meta_symbol_64)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_65, sizeof(meta_symbol_65)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_66, sizeof(meta_symbol_66)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_67, sizeof(meta_symbol_67)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_68, sizeof(meta_symbol_68)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_69, sizeof(meta_symbol_69)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_70, sizeof(meta_symbol_70)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_61), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_62), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_63), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_64), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_65), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_66), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_67), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_68), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_69), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_70), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_71, sizeof(meta_symbol_71)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_72, sizeof(meta_symbol_72)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_71), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_72), 0, NULL);
 }
 
 void meta_action_4(void* runtime, void* variables) {
@@ -1059,45 +1063,45 @@ void meta_action_4(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_75, sizeof(meta_symbol_75)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_75), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_76, sizeof(meta_symbol_76)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_76), 0, NULL);
     meta_action_run(&(((struct meta_Action4Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_77, sizeof(meta_symbol_77)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_77), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_78, sizeof(meta_symbol_78)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_78), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_79, sizeof(meta_symbol_79)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_79), 0, NULL);
     meta_action_run(&(((struct meta_Action4Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_80, sizeof(meta_symbol_80)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_80), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_81, sizeof(meta_symbol_81)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_82, sizeof(meta_symbol_82)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_83, sizeof(meta_symbol_83)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_84, sizeof(meta_symbol_84)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_81), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_82), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_83), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_84), 0, NULL);
     meta_action_run(&(((struct meta_Action4Vars*)variables)->h), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_85, sizeof(meta_symbol_85)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_85), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_ruleVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_ruleVars);
     meta_action_run(&(((struct meta_Action4Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_86, sizeof(meta_symbol_86)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_86), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_87, sizeof(meta_symbol_87)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_88, sizeof(meta_symbol_88)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_87), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_88), 0, NULL);
 }
 
 void meta_action_5(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_91, sizeof(meta_symbol_91)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_91), 0, NULL);
     meta_action_run(&(((struct meta_Action5Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_6(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_92, sizeof(meta_symbol_92)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_92), 0, NULL);
 }
 
 void meta_action_8(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_93, sizeof(meta_symbol_93)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_93), 0, NULL);
     meta_action_run(&(((struct meta_Action8Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     meta_action_run(&(((struct meta_Action8Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
@@ -1116,20 +1120,20 @@ void meta_action_13(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_94, sizeof(meta_symbol_94)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_94), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_95, sizeof(meta_symbol_95)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_95), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_96, sizeof(meta_symbol_96)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_96), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_variables = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_variables);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_97, sizeof(meta_symbol_97)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_97), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_98, sizeof(meta_symbol_98)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_99, sizeof(meta_symbol_99)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_98), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_99), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_orInit = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_orInit);
@@ -1138,11 +1142,11 @@ void meta_action_13(void* runtime, void* variables) {
 
 void meta_action_14(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action14Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_100, sizeof(meta_symbol_100)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_100), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action14Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_101, sizeof(meta_symbol_101)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_101), 0, NULL);
 }
 
 void meta_action_15(void* runtime, void* variables) {
@@ -1155,22 +1159,22 @@ void meta_action_16(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_102, sizeof(meta_symbol_102)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_103, sizeof(meta_symbol_103)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_102))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_103), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_104, sizeof(meta_symbol_104)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_104), 0, NULL);
     meta_action_run(&(((struct meta_Action16Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_105, sizeof(meta_symbol_105)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_105), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_106, sizeof(meta_symbol_106)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_106), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_107, sizeof(meta_symbol_107)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_107), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_108, sizeof(meta_symbol_108)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_108), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_109, sizeof(meta_symbol_109)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_110, sizeof(meta_symbol_110)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_109), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_110), 0, NULL);
 }
 
 void meta_action_17(void* runtime, void* variables) {
@@ -1179,22 +1183,22 @@ void meta_action_17(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_111, sizeof(meta_symbol_111)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_112, sizeof(meta_symbol_112)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_111))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_112), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_113, sizeof(meta_symbol_113)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_113), 0, NULL);
     meta_action_run(&(((struct meta_Action17Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_114, sizeof(meta_symbol_114)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_114), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_115, sizeof(meta_symbol_115)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_115), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_116, sizeof(meta_symbol_116)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_116), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_117, sizeof(meta_symbol_117)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_117), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_118, sizeof(meta_symbol_118)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_119, sizeof(meta_symbol_119)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_118), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_119), 0, NULL);
 }
 
 void meta_action_18(void* runtime, void* variables) {
@@ -1208,15 +1212,15 @@ void meta_action_19(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_variables;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_120, sizeof(meta_symbol_120)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_120), 0, NULL);
     meta_action_run(&(((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_121, sizeof(meta_symbol_121)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_121), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_122, sizeof(meta_symbol_122)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_122), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_123, sizeof(meta_symbol_123)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_123), 0, NULL);
     meta_action_run(&(((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_124, sizeof(meta_symbol_124)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_124), 0, NULL);
 }
 
 void meta_action_20(void* runtime, void* variables) {
@@ -1228,32 +1232,32 @@ void meta_action_21(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_125, sizeof(meta_symbol_125)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_126, sizeof(meta_symbol_126)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_125))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_126), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_127, sizeof(meta_symbol_127)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_128, sizeof(meta_symbol_128)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_127))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_128), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_129, sizeof(meta_symbol_129)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_130, sizeof(meta_symbol_130)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_129))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_130), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_131, sizeof(meta_symbol_131)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_132, sizeof(meta_symbol_132)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_133, sizeof(meta_symbol_133)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_131), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_132), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_133), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_134, sizeof(meta_symbol_134)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_134), 0, NULL);
     meta_action_run(&(((struct meta_Action21Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_135, sizeof(meta_symbol_135)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_135), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_136, sizeof(meta_symbol_136)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_137, sizeof(meta_symbol_137)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_136), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_137), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_138, sizeof(meta_symbol_138)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_139, sizeof(meta_symbol_139)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_138), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_139), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_140, sizeof(meta_symbol_140)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_141, sizeof(meta_symbol_141)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_140), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_141), 0, NULL);
 }
 
 void meta_action_22(void* runtime, void* variables) {
@@ -1262,27 +1266,27 @@ void meta_action_22(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_142, sizeof(meta_symbol_142)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_143, sizeof(meta_symbol_143)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_142))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_143), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_144, sizeof(meta_symbol_144)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_145, sizeof(meta_symbol_145)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_144))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_145), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_146, sizeof(meta_symbol_146)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_147, sizeof(meta_symbol_147)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_146), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_147), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_148, sizeof(meta_symbol_148)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_148), 0, NULL);
     meta_action_run(&(((struct meta_Action22Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_149, sizeof(meta_symbol_149)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_149), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_150, sizeof(meta_symbol_150)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_151, sizeof(meta_symbol_151)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_150), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_151), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_152, sizeof(meta_symbol_152)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_152), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_153, sizeof(meta_symbol_153)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_154, sizeof(meta_symbol_154)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_153), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_154), 0, NULL);
 }
 
 void meta_action_23(void* runtime, void* variables) {
@@ -1290,14 +1294,14 @@ void meta_action_23(void* runtime, void* variables) {
 }
 
 void meta_action_31(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_163, sizeof(meta_symbol_163)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_164, sizeof(meta_symbol_164)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_163), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_164), 0, NULL);
     meta_action_run(&(((struct meta_Action31Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_32(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action32Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_165, sizeof(meta_symbol_165)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_165), 0, NULL);
 }
 
 void meta_action_33(void* runtime, void* variables) {
@@ -1307,15 +1311,15 @@ void meta_action_34(void* runtime, void* variables) {
 }
 
 void meta_action_35(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_168, sizeof(meta_symbol_168)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_168), 0, NULL);
 }
 
 void meta_action_36(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_169, sizeof(meta_symbol_169)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_169), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_170, sizeof(meta_symbol_170)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_170), 0, NULL);
     meta_action_run(&(((struct meta_Action36Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_171, sizeof(meta_symbol_171)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_171), 0, NULL);
 }
 
 void meta_action_37(void* runtime, void* variables) {
@@ -1324,39 +1328,39 @@ void meta_action_37(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_173, sizeof(meta_symbol_173)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_174, sizeof(meta_symbol_174)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_173))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_174), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_175, sizeof(meta_symbol_175)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_176, sizeof(meta_symbol_176)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_175))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_176), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_177, sizeof(meta_symbol_177)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_178, sizeof(meta_symbol_178)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_177), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_178), 0, NULL);
     meta_action_run(&(((struct meta_Action37Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_179, sizeof(meta_symbol_179)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_179), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_180, sizeof(meta_symbol_180)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_181, sizeof(meta_symbol_181)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_180), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_181), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_182, sizeof(meta_symbol_182)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_182), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_183, sizeof(meta_symbol_183)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_183), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_184, sizeof(meta_symbol_184)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_184), 0, NULL);
 }
 
 void meta_action_38(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_185, sizeof(meta_symbol_185)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_185), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_186, sizeof(meta_symbol_186)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_187, sizeof(meta_symbol_187)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_186), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_187), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_188, sizeof(meta_symbol_188)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_188), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_189, sizeof(meta_symbol_189)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_189), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_190, sizeof(meta_symbol_190)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_190), 0, NULL);
 }
 
 void meta_action_39(void* runtime, void* variables) {
@@ -1365,23 +1369,23 @@ void meta_action_39(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_191, sizeof(meta_symbol_191)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_192, sizeof(meta_symbol_192)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_191))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_192), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_193, sizeof(meta_symbol_193)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_193), 0, NULL);
     meta_action_run(&(((struct meta_Action39Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_194, sizeof(meta_symbol_194)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_195, sizeof(meta_symbol_195)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_194), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_195), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_196, sizeof(meta_symbol_196)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_197, sizeof(meta_symbol_197)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_196), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_197), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_198, sizeof(meta_symbol_198)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_198), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_199, sizeof(meta_symbol_199)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_199), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_200, sizeof(meta_symbol_200)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_200), 0, NULL);
 }
 
 void meta_action_40(void* runtime, void* variables) {
@@ -1390,54 +1394,54 @@ void meta_action_40(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_203, sizeof(meta_symbol_203)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_203), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_204, sizeof(meta_symbol_204)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_204), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_205, sizeof(meta_symbol_205)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_205), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_actionVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_actionVars);
     meta_action_run(&(((struct meta_Action40Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_206, sizeof(meta_symbol_206)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_207, sizeof(meta_symbol_207)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_206), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_207), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_orInit;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_208, sizeof(meta_symbol_208)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_208), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_209, sizeof(meta_symbol_209)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_209), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_210, sizeof(meta_symbol_210)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_210), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_211, sizeof(meta_symbol_211)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_211), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_212, sizeof(meta_symbol_212)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_212), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_213, sizeof(meta_symbol_213)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_213), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_214, sizeof(meta_symbol_214)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_215, sizeof(meta_symbol_215)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_214), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_215), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_216, sizeof(meta_symbol_216)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_216), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_217, sizeof(meta_symbol_217)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_217), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_218, sizeof(meta_symbol_218)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_218), 0, NULL);
 }
 
 void meta_action_41(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_219, sizeof(meta_symbol_219)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_220, sizeof(meta_symbol_220)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_219), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_220), 0, NULL);
 }
 
 void meta_action_42(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_221, sizeof(meta_symbol_221)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_221), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_222, sizeof(meta_symbol_222)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_222), 0, NULL);
 }
 
 void meta_action_43(void* runtime, void* variables) {
@@ -1446,40 +1450,40 @@ void meta_action_43(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_226, sizeof(meta_symbol_226)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_227, sizeof(meta_symbol_227)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_226))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_227), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_228, sizeof(meta_symbol_228)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_228), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_229, sizeof(meta_symbol_229)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_230, sizeof(meta_symbol_230)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_229), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_230), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_231, sizeof(meta_symbol_231)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_231), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_232, sizeof(meta_symbol_232)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_232), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_233, sizeof(meta_symbol_233)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_233), 0, NULL);
 }
 
 void meta_action_44(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_236, sizeof(meta_symbol_236)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_236), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_237, sizeof(meta_symbol_237)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_237), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_238, sizeof(meta_symbol_238)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_238), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_239, sizeof(meta_symbol_239)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_239), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_240, sizeof(meta_symbol_240)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_240), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_241, sizeof(meta_symbol_241)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_241), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_242, sizeof(meta_symbol_242)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_242), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_243, sizeof(meta_symbol_243)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_243), 0, NULL);
 }
 
 void meta_action_45(void* runtime, void* variables) {
@@ -1488,38 +1492,38 @@ void meta_action_45(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_247, sizeof(meta_symbol_247)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_248, sizeof(meta_symbol_248)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_247))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_248), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_249, sizeof(meta_symbol_249)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_250, sizeof(meta_symbol_250)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_249))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_250), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_251, sizeof(meta_symbol_251)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_251), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_252, sizeof(meta_symbol_252)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_253, sizeof(meta_symbol_253)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_252), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_253), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_254, sizeof(meta_symbol_254)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_254), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_255, sizeof(meta_symbol_255)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_255), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_256, sizeof(meta_symbol_256)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_256), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_257, sizeof(meta_symbol_257)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_257), 0, NULL);
 }
 
 void meta_action_46(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_259, sizeof(meta_symbol_259)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_259), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_260, sizeof(meta_symbol_260)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_260), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_261, sizeof(meta_symbol_261)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_261), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_262, sizeof(meta_symbol_262)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_262), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_263, sizeof(meta_symbol_263)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_263), 0, NULL);
 }
 
 void meta_action_47(void* runtime, void* variables) {
@@ -1528,39 +1532,39 @@ void meta_action_47(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_265, sizeof(meta_symbol_265)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_266, sizeof(meta_symbol_266)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_265))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_266), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_267, sizeof(meta_symbol_267)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_267), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_268, sizeof(meta_symbol_268)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_268), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_269, sizeof(meta_symbol_269)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_269), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_270, sizeof(meta_symbol_270)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_270), 0, NULL);
 }
 
 void meta_action_48(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_271, sizeof(meta_symbol_271)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_271), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_272, sizeof(meta_symbol_272)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_272), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_273, sizeof(meta_symbol_273)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_273), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_274, sizeof(meta_symbol_274)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_274), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_275, sizeof(meta_symbol_275)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_275), 0, NULL);
 }
 
 void meta_action_49(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_276, sizeof(meta_symbol_276)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_276), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_277, sizeof(meta_symbol_277)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_277), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_278, sizeof(meta_symbol_278)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_278), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_279, sizeof(meta_symbol_279)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_279), 0, NULL);
 }
 
 void meta_action_50(void* runtime, void* variables) {
@@ -1570,90 +1574,90 @@ void meta_action_50(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_280, sizeof(meta_symbol_280)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_280), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_281, sizeof(meta_symbol_281)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_281), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholders;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_282, sizeof(meta_symbol_282)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_282), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_283, sizeof(meta_symbol_283)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_283), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_placeholderVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_placeholderVars);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_284, sizeof(meta_symbol_284)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_285, sizeof(meta_symbol_285)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_284), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_285), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_286, sizeof(meta_symbol_286)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_287, sizeof(meta_symbol_287)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_286))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_287), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_288, sizeof(meta_symbol_288)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_288), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_289, sizeof(meta_symbol_289)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_290, sizeof(meta_symbol_290)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_289), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_290), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_291, sizeof(meta_symbol_291)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_291), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_292, sizeof(meta_symbol_292)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_292), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_293, sizeof(meta_symbol_293)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_294, sizeof(meta_symbol_294)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_293), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_294), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_295, sizeof(meta_symbol_295)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_295), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_296, sizeof(meta_symbol_296)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_296), 0, NULL);
 }
 
 void meta_action_51(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_297, sizeof(meta_symbol_297)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_297), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_298, sizeof(meta_symbol_298)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_298), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_299, sizeof(meta_symbol_299)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_299), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_300, sizeof(meta_symbol_300)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_300), 0, NULL);
 }
 
 void meta_action_52(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_305, sizeof(meta_symbol_305)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_305), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_306, sizeof(meta_symbol_306)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_306), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_307, sizeof(meta_symbol_307)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_307), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_308, sizeof(meta_symbol_308)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_308), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_309, sizeof(meta_symbol_309)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_309), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_310, sizeof(meta_symbol_310)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_310), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_311, sizeof(meta_symbol_311)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_311), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_312, sizeof(meta_symbol_312)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_312), 0, NULL);
 }
 
 void meta_action_53(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_315, sizeof(meta_symbol_315)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_315), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_316, sizeof(meta_symbol_316)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_316), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_317, sizeof(meta_symbol_317)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_317), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_318, sizeof(meta_symbol_318)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_318), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_319, sizeof(meta_symbol_319)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_319), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_320, sizeof(meta_symbol_320)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_320), 0, NULL);
 }
 
 void meta_action_54(void* runtime, void* variables) {
@@ -1665,9 +1669,9 @@ void meta_action_54(void* runtime, void* variables) {
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     action = (((struct meta_Action54Vars*)variables)->x);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action.input_buffer, action.start, action.end))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_321, sizeof(meta_symbol_321)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_321), 0, NULL);
         meta_action_run(&(((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_322, sizeof(meta_symbol_322)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_322), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     meta_action_run(&(((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
@@ -1683,162 +1687,164 @@ void meta_action_67(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholderVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_336, sizeof(meta_symbol_336)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_337, sizeof(meta_symbol_337)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, (&meta_string_336))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_337), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_338, sizeof(meta_symbol_338)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_338), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_339, sizeof(meta_symbol_339)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_339), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_340, sizeof(meta_symbol_340)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_340), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_341, sizeof(meta_symbol_341)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_341), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_342, sizeof(meta_symbol_342)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_342), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_343, sizeof(meta_symbol_343)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_343), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_344, sizeof(meta_symbol_344)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_344), 0, NULL);
 }
 
 void meta_action_68(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_345, sizeof(meta_symbol_345)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_345), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_346, sizeof(meta_symbol_346)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_346), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_347, sizeof(meta_symbol_347)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_347), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_348, sizeof(meta_symbol_348)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_348), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_349, sizeof(meta_symbol_349)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_349), 0, NULL);
 }
 
 void meta_action_69(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_353, sizeof(meta_symbol_353)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_353), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_354, sizeof(meta_symbol_354)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_354), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_355, sizeof(meta_symbol_355)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_355), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_356, sizeof(meta_symbol_356)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_356), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_357, sizeof(meta_symbol_357)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_357), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_358, sizeof(meta_symbol_358)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_358), 0, NULL);
 }
 
 void meta_action_70(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_361, sizeof(meta_symbol_361)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action70Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_362, sizeof(meta_symbol_362)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action70Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_71(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_363, sizeof(meta_symbol_363)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action71Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_364, sizeof(meta_symbol_364)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action71Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_365, sizeof(meta_symbol_365)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_361), 0, NULL);
+    meta_action_run(&(((struct meta_Action71Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_362), 0, NULL);
 }
 
-void meta_action_73(void* runtime, void* variables) {
+void meta_action_72(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_363), 0, NULL);
+    meta_action_run(&(((struct meta_Action72Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_364), 0, NULL);
+    meta_action_run(&(((struct meta_Action72Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_365), 0, NULL);
 }
 
 void meta_action_74(void* runtime, void* variables) {
+}
+
+void meta_action_75(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     ((meta_Runtime*)runtime)->W_2 = meta_inc(((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0, 1);
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_369, sizeof(meta_symbol_369)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_369), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_370, sizeof(meta_symbol_370)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_370), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_371, sizeof(meta_symbol_371)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action74Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_372, sizeof(meta_symbol_372)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_371), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, meta_action_count((((struct meta_Action75Vars*)variables)->xs))), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_372), 0, NULL);
+    meta_action_run(&(((struct meta_Action75Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_373), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_373, sizeof(meta_symbol_373)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action74Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_374, sizeof(meta_symbol_374)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_374), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_375, sizeof(meta_symbol_375)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_375), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_376, sizeof(meta_symbol_376)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_377, sizeof(meta_symbol_377)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_378, sizeof(meta_symbol_378)-1), 0, NULL);
-}
-
-void meta_action_75(void* runtime, void* variables) {
-    meta_action_run(&(((struct meta_Action75Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_379, sizeof(meta_symbol_379)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action75Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_380, sizeof(meta_symbol_380)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_376), 0, NULL);
 }
 
 void meta_action_76(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_381, sizeof(meta_symbol_381)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_382, sizeof(meta_symbol_382)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_383, sizeof(meta_symbol_383)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action76Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_377), 0, NULL);
     meta_action_run(&(((struct meta_Action76Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_384, sizeof(meta_symbol_384)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_378), 0, NULL);
 }
 
 void meta_action_77(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_386, sizeof(meta_symbol_386)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_379), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_380), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_381), 0, NULL);
+    meta_action_run(&(((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_382), 0, NULL);
 }
 
 void meta_action_78(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_384), 0, NULL);
+}
+
+void meta_action_79(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_386), 0, NULL);
+}
+
+void meta_action_80(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     MetaAction action;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_namedWs;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    action = (((struct meta_Action78Vars*)variables)->x);
+    action = (((struct meta_Action80Vars*)variables)->x);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action.input_buffer, action.start, action.end))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_389, sizeof(meta_symbol_389)-1), 0, NULL);
-        meta_action_run(&(((struct meta_Action78Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_390, sizeof(meta_symbol_390)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_389), 0, NULL);
+        meta_action_run(&(((struct meta_Action80Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_390), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    meta_action_run(&(((struct meta_Action78Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action80Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
-void meta_action_81(void* runtime, void* variables) {
+void meta_action_83(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     ((meta_Runtime*)runtime)->W_2 = meta_inc(((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0, 1);
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_394, sizeof(meta_symbol_394)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_394), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_395, sizeof(meta_symbol_395)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_395), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_396, sizeof(meta_symbol_396)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action81Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_397, sizeof(meta_symbol_397)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_396), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, meta_action_count((((struct meta_Action83Vars*)variables)->xs))), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_397), 0, NULL);
+    meta_action_run(&(((struct meta_Action83Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_398), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_398, sizeof(meta_symbol_398)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_399, sizeof(meta_symbol_399)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_400, sizeof(meta_symbol_400)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_399), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_401, sizeof(meta_symbol_401)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_400), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_402, sizeof(meta_symbol_402)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_401), 0, NULL);
 }
 
-void meta_action_83(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_404, sizeof(meta_symbol_404)-1), 0, NULL);
+void meta_action_85(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, (&meta_string_403), 0, NULL);
 }
 
 MetaAction meta_rule_main(MetaParseState* parse_state) {
@@ -1887,7 +1893,7 @@ MetaAction meta_rule_metaField(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action2Vars* vars2 = arena_alloc(parse_state->arena, sizeof(struct meta_Action2Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_1, sizeof(meta_symbol_1)-1);
+    data = (&meta_string_1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -1976,7 +1982,7 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_73, sizeof(meta_symbol_73)-1);
+                    data = (&meta_string_73);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -1991,7 +1997,7 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
                             if (_.valid) {
                                 _ = meta_rule_space(parse_state);
                                 if (_.valid) {
-                                    data = string_from_cstring(parse_state->arena, meta_symbol_74, sizeof(meta_symbol_74)-1);
+                                    data = (&meta_string_74);
                                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                         parse_state->pos += data->size;
                                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2023,7 +2029,7 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action5Vars* vars5 = arena_alloc(parse_state->arena, sizeof(struct meta_Action5Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_89, sizeof(meta_symbol_89)-1);
+    data = (&meta_string_89);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2034,7 +2040,7 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
         _ = meta_rule_metaName(parse_state);
         vars5->x = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_90, sizeof(meta_symbol_90)-1);
+            data = (&meta_string_90);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2357,7 +2363,7 @@ MetaAction meta_rule_opBind(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_155, sizeof(meta_symbol_155)-1);
+    data = (&meta_string_155);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2380,7 +2386,7 @@ MetaAction meta_rule_opStar(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_156, sizeof(meta_symbol_156)-1);
+    data = (&meta_string_156);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2403,7 +2409,7 @@ MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_157, sizeof(meta_symbol_157)-1);
+    data = (&meta_string_157);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2426,7 +2432,7 @@ MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_158, sizeof(meta_symbol_158)-1);
+    data = (&meta_string_158);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2449,7 +2455,7 @@ MetaAction meta_rule_opAny(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_159, sizeof(meta_symbol_159)-1);
+    data = (&meta_string_159);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2472,7 +2478,7 @@ MetaAction meta_rule_opOr(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_160, sizeof(meta_symbol_160)-1);
+    data = (&meta_string_160);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2495,7 +2501,7 @@ MetaAction meta_rule_opAction(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_161, sizeof(meta_symbol_161)-1);
+    data = (&meta_string_161);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2524,7 +2530,7 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = string_from_cstring(parse_state->arena, meta_symbol_162, sizeof(meta_symbol_162)-1);
+        data = (&meta_string_162);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2584,7 +2590,7 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action34Vars* vars34 = arena_alloc(parse_state->arena, sizeof(struct meta_Action34Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_166, sizeof(meta_symbol_166)-1);
+    data = (&meta_string_166);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2598,7 +2604,7 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action35Vars* vars35 = arena_alloc(parse_state->arena, sizeof(struct meta_Action35Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_167, sizeof(meta_symbol_167)-1);
+    data = (&meta_string_167);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2634,7 +2640,7 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action37Vars* vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_172, sizeof(meta_symbol_172)-1);
+    data = (&meta_string_172);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2699,7 +2705,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
         if (_.valid) {
             _ = meta_rule_space(parse_state);
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_201, sizeof(meta_symbol_201)-1);
+                data = (&meta_string_201);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2723,7 +2729,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = string_from_cstring(parse_state->arena, meta_symbol_202, sizeof(meta_symbol_202)-1);
+                            data = (&meta_string_202);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2793,7 +2799,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action43Vars* vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_223, sizeof(meta_symbol_223)-1);
+        data = (&meta_string_223);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2804,7 +2810,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_nameAsActionLookup(parse_state);
             vars43->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_224, sizeof(meta_symbol_224)-1);
+                data = (&meta_string_224);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2828,7 +2834,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = string_from_cstring(parse_state->arena, meta_symbol_225, sizeof(meta_symbol_225)-1);
+                            data = (&meta_string_225);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2854,7 +2860,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action44Vars* vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_234, sizeof(meta_symbol_234)-1);
+        data = (&meta_string_234);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2865,7 +2871,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_string(parse_state);
             vars44->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_235, sizeof(meta_symbol_235)-1);
+                data = (&meta_string_235);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2888,7 +2894,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action45Vars* vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_244, sizeof(meta_symbol_244)-1);
+        data = (&meta_string_244);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2901,7 +2907,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_245, sizeof(meta_symbol_245)-1);
+                    data = (&meta_string_245);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2925,7 +2931,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                         if (_.valid) {
                             _ = meta_rule_space(parse_state);
                             if (_.valid) {
-                                data = string_from_cstring(parse_state->arena, meta_symbol_246, sizeof(meta_symbol_246)-1);
+                                data = (&meta_string_246);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2952,7 +2958,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action46Vars* vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_258, sizeof(meta_symbol_258)-1);
+        data = (&meta_string_258);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2977,7 +2983,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action47Vars* vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_264, sizeof(meta_symbol_264)-1);
+        data = (&meta_string_264);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3066,7 +3072,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action52Vars* vars52 = arena_alloc(parse_state->arena, sizeof(struct meta_Action52Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_301, sizeof(meta_symbol_301)-1);
+        data = (&meta_string_301);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3077,7 +3083,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_name(parse_state);
             vars52->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_302, sizeof(meta_symbol_302)-1);
+                data = (&meta_string_302);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3088,7 +3094,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     _ = meta_rule_wvar(parse_state);
                     vars52->y = _;
                     if (_.valid) {
-                        data = string_from_cstring(parse_state->arena, meta_symbol_303, sizeof(meta_symbol_303)-1);
+                        data = (&meta_string_303);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3099,7 +3105,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                             _ = meta_rule_actionPrimitiveExpression(parse_state);
                             vars52->z = _;
                             if (_.valid) {
-                                data = string_from_cstring(parse_state->arena, meta_symbol_304, sizeof(meta_symbol_304)-1);
+                                data = (&meta_string_304);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3126,7 +3132,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     struct meta_Action53Vars* vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_313, sizeof(meta_symbol_313)-1);
+        data = (&meta_string_313);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3150,7 +3156,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_314, sizeof(meta_symbol_314)-1);
+                    data = (&meta_string_314);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3224,7 +3230,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_323, sizeof(meta_symbol_323)-1);
+    data = (&meta_string_323);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3237,7 +3243,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_324, sizeof(meta_symbol_324)-1);
+    data = (&meta_string_324);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3250,7 +3256,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_325, sizeof(meta_symbol_325)-1);
+    data = (&meta_string_325);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3263,7 +3269,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_326, sizeof(meta_symbol_326)-1);
+    data = (&meta_string_326);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3276,7 +3282,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_327, sizeof(meta_symbol_327)-1);
+    data = (&meta_string_327);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3289,7 +3295,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_328, sizeof(meta_symbol_328)-1);
+    data = (&meta_string_328);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3302,7 +3308,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_329, sizeof(meta_symbol_329)-1);
+    data = (&meta_string_329);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3315,7 +3321,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_330, sizeof(meta_symbol_330)-1);
+    data = (&meta_string_330);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3328,7 +3334,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_331, sizeof(meta_symbol_331)-1);
+    data = (&meta_string_331);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3341,7 +3347,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_332, sizeof(meta_symbol_332)-1);
+    data = (&meta_string_332);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3365,7 +3371,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action67Vars* vars67 = arena_alloc(parse_state->arena, sizeof(struct meta_Action67Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_333, sizeof(meta_symbol_333)-1);
+    data = (&meta_string_333);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3378,7 +3384,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
             _ = meta_rule_string(parse_state);
             vars67->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_334, sizeof(meta_symbol_334)-1);
+                data = (&meta_string_334);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3391,7 +3397,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = string_from_cstring(parse_state->arena, meta_symbol_335, sizeof(meta_symbol_335)-1);
+                            data = (&meta_string_335);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3441,7 +3447,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action69Vars* vars69 = arena_alloc(parse_state->arena, sizeof(struct meta_Action69Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_350, sizeof(meta_symbol_350)-1);
+    data = (&meta_string_350);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3452,7 +3458,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
         _ = meta_rule_wvar(parse_state);
         vars69->x = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_351, sizeof(meta_symbol_351)-1);
+            data = (&meta_string_351);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3463,7 +3469,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
                 _ = meta_rule_dotname(parse_state);
                 vars69->y = _;
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_352, sizeof(meta_symbol_352)-1);
+                    data = (&meta_string_352);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3485,7 +3491,16 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action70Vars* vars70 = arena_alloc(parse_state->arena, sizeof(struct meta_Action70Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_359, sizeof(meta_symbol_359)-1);
+    _ = meta_rule_dotname(parse_state);
+    vars70->y = _;
+    if (_.valid) {
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_70, (void*)vars70, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
+    action_start_pos = parse_state->pos;
+    struct meta_Action71Vars* vars71 = arena_alloc(parse_state->arena, sizeof(struct meta_Action71Vars));
+    data = (&meta_string_359);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3505,9 +3520,9 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        vars70->xs = _;
+        vars71->xs = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_360, sizeof(meta_symbol_360)-1);
+            data = (&meta_string_360);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3516,7 +3531,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_70, (void*)vars70, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_71, (void*)vars71, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3531,17 +3546,17 @@ MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action71Vars* vars71 = arena_alloc(parse_state->arena, sizeof(struct meta_Action71Vars));
+    struct meta_Action72Vars* vars72 = arena_alloc(parse_state->arena, sizeof(struct meta_Action72Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_nameAsActionLookup(parse_state);
-        vars71->x = _;
+        vars72->x = _;
         if (_.valid) {
             _ = meta_rule_maybeShift(parse_state);
-            vars71->y = _;
+            vars72->y = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_71, (void*)vars71, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_72, (void*)vars72, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3557,7 +3572,7 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_366, sizeof(meta_symbol_366)-1);
+    data = (&meta_string_366);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3573,9 +3588,9 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action73Vars* vars73 = arena_alloc(parse_state->arena, sizeof(struct meta_Action73Vars));
+    struct meta_Action74Vars* vars74 = arena_alloc(parse_state->arena, sizeof(struct meta_Action74Vars));
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-    return meta_action_create(meta_action_73, (void*)vars73, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    return meta_action_create(meta_action_74, (void*)vars74, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
@@ -3591,8 +3606,8 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action74Vars* vars74 = arena_alloc(parse_state->arena, sizeof(struct meta_Action74Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_367, sizeof(meta_symbol_367)-1);
+    struct meta_Action75Vars* vars75 = arena_alloc(parse_state->arena, sizeof(struct meta_Action75Vars));
+    data = (&meta_string_367);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3612,9 +3627,9 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        vars74->xs = _;
+        vars75->xs = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_368, sizeof(meta_symbol_368)-1);
+            data = (&meta_string_368);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3623,10 +3638,10 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 _ = meta_rule_genRuntime(parse_state);
-                vars74->runtime = _;
+                vars75->runtime = _;
                 if (_.valid) {
                     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                    return meta_action_create(meta_action_74, (void*)vars74, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                    return meta_action_create(meta_action_75, (void*)vars75, parse_state->input_buffer, action_start_pos, parse_state->pos);
                 }
             }
         }
@@ -3642,15 +3657,15 @@ MetaAction meta_rule_dotname(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action75Vars* vars75 = arena_alloc(parse_state->arena, sizeof(struct meta_Action75Vars));
+    struct meta_Action76Vars* vars76 = arena_alloc(parse_state->arena, sizeof(struct meta_Action76Vars));
     _ = meta_rule_nameAsActionLookup(parse_state);
-    vars75->x = _;
+    vars76->x = _;
     if (_.valid) {
         _ = meta_rule_nextname(parse_state);
-        vars75->y = _;
+        vars76->y = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_75, (void*)vars75, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_76, (void*)vars76, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -3664,12 +3679,12 @@ MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action76Vars* vars76 = arena_alloc(parse_state->arena, sizeof(struct meta_Action76Vars));
+    struct meta_Action77Vars* vars77 = arena_alloc(parse_state->arena, sizeof(struct meta_Action77Vars));
     _ = meta_rule_variableName(parse_state);
-    vars76->x = _;
+    vars77->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_76, (void*)vars76, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -3684,8 +3699,8 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action77Vars* vars77 = arena_alloc(parse_state->arena, sizeof(struct meta_Action77Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_385, sizeof(meta_symbol_385)-1);
+    struct meta_Action78Vars* vars78 = arena_alloc(parse_state->arena, sizeof(struct meta_Action78Vars));
+    data = (&meta_string_383);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3703,7 +3718,31 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
         meta_parse_state_backtrack(parse_state, nlookahead_pos);
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_78, (void*)vars78, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        }
+    }
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
+    action_start_pos = parse_state->pos;
+    struct meta_Action79Vars* vars79 = arena_alloc(parse_state->arena, sizeof(struct meta_Action79Vars));
+    data = (&meta_string_385);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = meta_action_create_invalid();
+    }
+    if (_.valid) {
+        nlookahead_pos = parse_state->pos;
+        _ = meta_rule_char(parse_state);
+        if (_.valid) {
+            _ = meta_action_create_invalid();
+        } else {
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
+        }
+        meta_parse_state_backtrack(parse_state, nlookahead_pos);
+        if (_.valid) {
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_79, (void*)vars79, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -3718,8 +3757,8 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action78Vars* vars78 = arena_alloc(parse_state->arena, sizeof(struct meta_Action78Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_387, sizeof(meta_symbol_387)-1);
+    struct meta_Action80Vars* vars80 = arena_alloc(parse_state->arena, sizeof(struct meta_Action80Vars));
+    data = (&meta_string_387);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3733,9 +3772,9 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
         } else {
             _ = meta_action_create_invalid();
         }
-        vars78->x = _;
+        vars80->x = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_388, sizeof(meta_symbol_388)-1);
+            data = (&meta_string_388);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3744,7 +3783,7 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_78, (void*)vars78, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_80, (void*)vars80, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3769,7 +3808,7 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_391, sizeof(meta_symbol_391)-1);
+    data = (&meta_string_391);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3809,8 +3848,8 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action81Vars* vars81 = arena_alloc(parse_state->arena, sizeof(struct meta_Action81Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_392, sizeof(meta_symbol_392)-1);
+    struct meta_Action83Vars* vars83 = arena_alloc(parse_state->arena, sizeof(struct meta_Action83Vars));
+    data = (&meta_string_392);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3830,9 +3869,9 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        vars81->xs = _;
+        vars83->xs = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_393, sizeof(meta_symbol_393)-1);
+            data = (&meta_string_393);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3841,7 +3880,7 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_81, (void*)vars81, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_83, (void*)vars83, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3865,8 +3904,8 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    struct meta_Action83Vars* vars83 = arena_alloc(parse_state->arena, sizeof(struct meta_Action83Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_403, sizeof(meta_symbol_403)-1);
+    struct meta_Action85Vars* vars85 = arena_alloc(parse_state->arena, sizeof(struct meta_Action85Vars));
+    data = (&meta_string_402);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3875,12 +3914,12 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     }
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_83, (void*)vars83, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_85, (void*)vars85, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_405, sizeof(meta_symbol_405)-1);
+    data = (&meta_string_404);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3917,7 +3956,7 @@ MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_406, sizeof(meta_symbol_406)-1);
+    data = (&meta_string_405);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4033,7 +4072,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_407, sizeof(meta_symbol_407)-1);
+    data = (&meta_string_406);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4046,7 +4085,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_408, sizeof(meta_symbol_408)-1);
+    data = (&meta_string_407);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4059,7 +4098,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_409, sizeof(meta_symbol_409)-1);
+    data = (&meta_string_408);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4072,7 +4111,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_410, sizeof(meta_symbol_410)-1);
+    data = (&meta_string_409);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4085,7 +4124,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_411, sizeof(meta_symbol_411)-1);
+    data = (&meta_string_410);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4098,7 +4137,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_412, sizeof(meta_symbol_412)-1);
+    data = (&meta_string_411);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4111,7 +4150,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_413, sizeof(meta_symbol_413)-1);
+    data = (&meta_string_412);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4124,7 +4163,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_414, sizeof(meta_symbol_414)-1);
+    data = (&meta_string_413);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4137,7 +4176,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_415, sizeof(meta_symbol_415)-1);
+    data = (&meta_string_414);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4150,7 +4189,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_416, sizeof(meta_symbol_416)-1);
+    data = (&meta_string_415);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4163,7 +4202,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_417, sizeof(meta_symbol_417)-1);
+    data = (&meta_string_416);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4176,7 +4215,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_418, sizeof(meta_symbol_418)-1);
+    data = (&meta_string_417);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4189,7 +4228,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_419, sizeof(meta_symbol_419)-1);
+    data = (&meta_string_418);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4202,7 +4241,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_420, sizeof(meta_symbol_420)-1);
+    data = (&meta_string_419);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4215,7 +4254,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_421, sizeof(meta_symbol_421)-1);
+    data = (&meta_string_420);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4228,7 +4267,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_422, sizeof(meta_symbol_422)-1);
+    data = (&meta_string_421);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4241,7 +4280,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_423, sizeof(meta_symbol_423)-1);
+    data = (&meta_string_422);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4254,7 +4293,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_424, sizeof(meta_symbol_424)-1);
+    data = (&meta_string_423);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4267,7 +4306,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_425, sizeof(meta_symbol_425)-1);
+    data = (&meta_string_424);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4280,7 +4319,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_426, sizeof(meta_symbol_426)-1);
+    data = (&meta_string_425);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4293,7 +4332,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_427, sizeof(meta_symbol_427)-1);
+    data = (&meta_string_426);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4306,7 +4345,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_428, sizeof(meta_symbol_428)-1);
+    data = (&meta_string_427);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4319,7 +4358,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_429, sizeof(meta_symbol_429)-1);
+    data = (&meta_string_428);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4332,7 +4371,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_430, sizeof(meta_symbol_430)-1);
+    data = (&meta_string_429);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4345,7 +4384,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_431, sizeof(meta_symbol_431)-1);
+    data = (&meta_string_430);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4358,7 +4397,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_432, sizeof(meta_symbol_432)-1);
+    data = (&meta_string_431);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4381,7 +4420,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_433, sizeof(meta_symbol_433)-1);
+    data = (&meta_string_432);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4394,7 +4433,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_434, sizeof(meta_symbol_434)-1);
+    data = (&meta_string_433);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4407,7 +4446,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_435, sizeof(meta_symbol_435)-1);
+    data = (&meta_string_434);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4420,7 +4459,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_436, sizeof(meta_symbol_436)-1);
+    data = (&meta_string_435);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4433,7 +4472,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_437, sizeof(meta_symbol_437)-1);
+    data = (&meta_string_436);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4446,7 +4485,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_438, sizeof(meta_symbol_438)-1);
+    data = (&meta_string_437);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4459,7 +4498,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_439, sizeof(meta_symbol_439)-1);
+    data = (&meta_string_438);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4472,7 +4511,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_440, sizeof(meta_symbol_440)-1);
+    data = (&meta_string_439);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4485,7 +4524,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_441, sizeof(meta_symbol_441)-1);
+    data = (&meta_string_440);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4498,7 +4537,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_442, sizeof(meta_symbol_442)-1);
+    data = (&meta_string_441);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4511,7 +4550,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_443, sizeof(meta_symbol_443)-1);
+    data = (&meta_string_442);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4524,7 +4563,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_444, sizeof(meta_symbol_444)-1);
+    data = (&meta_string_443);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4537,7 +4576,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_445, sizeof(meta_symbol_445)-1);
+    data = (&meta_string_444);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4550,7 +4589,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_446, sizeof(meta_symbol_446)-1);
+    data = (&meta_string_445);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4563,7 +4602,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_447, sizeof(meta_symbol_447)-1);
+    data = (&meta_string_446);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4576,7 +4615,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_448, sizeof(meta_symbol_448)-1);
+    data = (&meta_string_447);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4589,7 +4628,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_449, sizeof(meta_symbol_449)-1);
+    data = (&meta_string_448);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4602,7 +4641,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_450, sizeof(meta_symbol_450)-1);
+    data = (&meta_string_449);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4615,7 +4654,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_451, sizeof(meta_symbol_451)-1);
+    data = (&meta_string_450);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4628,7 +4667,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_452, sizeof(meta_symbol_452)-1);
+    data = (&meta_string_451);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4641,7 +4680,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_453, sizeof(meta_symbol_453)-1);
+    data = (&meta_string_452);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4654,7 +4693,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_454, sizeof(meta_symbol_454)-1);
+    data = (&meta_string_453);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4667,7 +4706,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_455, sizeof(meta_symbol_455)-1);
+    data = (&meta_string_454);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4680,7 +4719,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_456, sizeof(meta_symbol_456)-1);
+    data = (&meta_string_455);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4693,7 +4732,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_457, sizeof(meta_symbol_457)-1);
+    data = (&meta_string_456);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4706,7 +4745,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_458, sizeof(meta_symbol_458)-1);
+    data = (&meta_string_457);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4786,7 +4825,7 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_459, sizeof(meta_symbol_459)-1);
+    data = (&meta_string_458);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4799,7 +4838,7 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     }
     meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_460, sizeof(meta_symbol_460)-1);
+    data = (&meta_string_459);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index d99ef66..546f3dc 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -445,6 +445,9 @@ expr =
     | '(' wvar:x '-' dotname:y ')' genRuntime:runtime -> {
         "((" runtime "->W_" x " ? " runtime "->W_" x " : 0)-"  y ")"
     }
+    | dotname:y -> {
+        y
+    }
     | 'number(' numberPart*:xs ')' -> {
         "(0" xs ")"
     }
@@ -459,9 +462,9 @@ maybeShift = '<<' number | -> {};
 string[String] = '"' stringInner*:xs '"' genRuntime:runtime -> {
     #inc(W[2] 1)
     >symbols {
-        "static char " <prefix "symbol_" W[2] "[] = \"" xs "\";\n"
+        "static String " <prefix "string_" W[2] " = {" xs.count ", \"" xs "\"};\n"
     }
-    "string_from_cstring(" runtime "->arena, " <prefix "symbol_" W[2] ", sizeof(" <prefix "symbol_" W[2] ")-1)"
+    "(&" <prefix "string_" W[2] ")"
 };
 
 dotname = nameAsActionLookup:x nextname:y -> {
@@ -472,7 +475,10 @@ nameAsActionLookup = variableName:x -> {
     "(((struct " <prefix "Action" W[0] "Vars*)variables)->" x ")"
 };
 
-nextname = '.len' !char -> { "meta_action_len" };
+nextname =
+    | '.len' !char -> { "meta_action_len" }
+    | '.count' !char -> { "meta_action_count" }
+    ;
 
 wvar = 'W[' .:x ']' -> {
     >namedWs {
@@ -491,9 +497,9 @@ stringInner =
 charString[CharString] = '\'' charStringInner*:xs '\'' -> {
     #inc(W[2] 1)
     >symbols {
-        "static char " <prefix "symbol_" W[2] "[] = \"" xs "\";\n"
+        "static String " <prefix "string_" W[2] " = {" xs.count ", \"" xs "\"};\n"
     }
-    "string_from_cstring(parse_state->arena, " <prefix "symbol_" W[2] ", sizeof(" <prefix "symbol_" W[2] ")-1)"
+    "(&" <prefix "string_" W[2] ")"
 };
 
 charStringInner =
diff --git a/src/string.c b/src/string.c
index 9a0d83a..9a47992 100644
--- a/src/string.c
+++ b/src/string.c
@@ -14,13 +14,6 @@ String* string_slice(Arena* arena, String* data, unsigned int start, unsigned in
     return buffer;
 }
 
-String* string_from_cstring(Arena* arena, char* data, unsigned int size) {
-    String* buffer = arena_alloc(arena, sizeof(String));
-    buffer->buffer = data;
-    buffer->size = size;
-    return buffer;
-}
-
 String* string_from_integer(Arena* arena, unsigned int value) {
     String* buffer = arena_alloc(arena, sizeof(String));
     buffer->buffer = arena_alloc(arena, 20);

2025-11-23 12:42 Rickard pushed to rlworkbench

commit f0d1dbbd85a32d7c65b973c371966ba9566cf3b1
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sun Nov 23 12:28:55 2025 +0100

    Ignore tags file

diff --git a/.gitignore b/.gitignore
index e2e7327..7151be7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 /out
+/tags

2025-11-23 12:15 Rickard pushed to rlworkbench

commit 7a31ab071257bf8faba614838bca178868c90479
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sun Nov 23 12:14:57 2025 +0100

    Introduce meta_parse_state_backtrack (that also backtracks highlights for star)

diff --git a/src/meta.c b/src/meta.c
index b8fab87..8539008 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -88,6 +88,11 @@ void meta_highlight_clear(MetaParseState* parse_state, unsigned int start, unsig
     }
 }
 
+void meta_parse_state_backtrack(MetaParseState* parse_state, unsigned int pos) {
+    meta_highlight_clear(parse_state, pos, parse_state->pos);
+    parse_state->pos = pos;
+}
+
 MetaParseState* meta_parse_state_from_stdin(Arena* arena) {
     char* pos;
     MetaParseState* parse_state = arena_alloc(arena, sizeof(MetaParseState));
diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index 60ae458..e82184c 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -137,372 +137,369 @@ static char meta_symbol_94[] = "struct ";
 static char meta_symbol_95[] = "Action";
 static char meta_symbol_96[] = "Vars {\n";
 static char meta_symbol_97[] = "};\n";
-static char meta_symbol_98[] = "meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);\n";
-static char meta_symbol_99[] = "parse_state->pos = or_backtrack_pos;\n";
-static char meta_symbol_100[] = "action_start_pos = parse_state->pos;\n";
-static char meta_symbol_101[] = "if (_.valid) {\n";
-static char meta_symbol_102[] = "}\n";
+static char meta_symbol_98[] = "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n";
+static char meta_symbol_99[] = "action_start_pos = parse_state->pos;\n";
+static char meta_symbol_100[] = "if (_.valid) {\n";
+static char meta_symbol_101[] = "}\n";
+static char meta_symbol_102[] = "unsigned int nlookahead_pos;\n";
 static char meta_symbol_103[] = "unsigned int nlookahead_pos;\n";
-static char meta_symbol_104[] = "unsigned int nlookahead_pos;\n";
-static char meta_symbol_105[] = "nlookahead_pos = parse_state->pos;\n";
-static char meta_symbol_106[] = "if (_.valid) {\n";
-static char meta_symbol_107[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_108[] = "} else {\n";
-static char meta_symbol_109[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char meta_symbol_110[] = "}\n";
-static char meta_symbol_111[] = "meta_highlight_clear(parse_state, nlookahead_pos, parse_state->pos);\n";
-static char meta_symbol_112[] = "parse_state->pos = nlookahead_pos;\n";
-static char meta_symbol_113[] = "unsigned int lookahead_pos;\n";
-static char meta_symbol_114[] = "unsigned int lookahead_pos;\n";
-static char meta_symbol_115[] = "lookahead_pos = parse_state->pos;\n";
-static char meta_symbol_116[] = "if (_.valid) {\n";
-static char meta_symbol_117[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char meta_symbol_118[] = "} else {\n";
-static char meta_symbol_119[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_120[] = "}\n";
-static char meta_symbol_121[] = "meta_highlight_clear(parse_state, lookahead_pos, parse_state->pos);\n";
-static char meta_symbol_122[] = "parse_state->pos = lookahead_pos;\n";
-static char meta_symbol_123[] = "MetaAction ";
-static char meta_symbol_124[] = ";\n";
-static char meta_symbol_125[] = "vars";
-static char meta_symbol_126[] = "->";
-static char meta_symbol_127[] = " = _;\n";
-static char meta_symbol_128[] = "List* star_variables;\n";
-static char meta_symbol_129[] = "List* star_variables;\n";
-static char meta_symbol_130[] = "unsigned int star_pos;\n";
-static char meta_symbol_131[] = "unsigned int star_pos;\n";
-static char meta_symbol_132[] = "unsigned int star_start_pos;\n";
-static char meta_symbol_133[] = "unsigned int star_start_pos;\n";
-static char meta_symbol_134[] = "star_variables = list_create(parse_state->arena);\n";
-static char meta_symbol_135[] = "star_start_pos = parse_state->pos;\n";
-static char meta_symbol_136[] = "while (1) {\n";
-static char meta_symbol_137[] = "star_pos = parse_state->pos;\n";
-static char meta_symbol_138[] = "if (!_.valid) {\n";
-static char meta_symbol_139[] = "parse_state->pos = star_pos;\n";
-static char meta_symbol_140[] = "break;\n";
-static char meta_symbol_141[] = "}\n";
-static char meta_symbol_142[] = "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n";
-static char meta_symbol_143[] = "}\n";
-static char meta_symbol_144[] = "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char meta_symbol_145[] = "unsigned int star_pos;\n";
-static char meta_symbol_146[] = "unsigned int star_pos;\n";
-static char meta_symbol_147[] = "unsigned int star_start_pos;\n";
-static char meta_symbol_148[] = "unsigned int star_start_pos;\n";
-static char meta_symbol_149[] = "star_start_pos = parse_state->pos;\n";
-static char meta_symbol_150[] = "while (1) {\n";
-static char meta_symbol_151[] = "star_pos = parse_state->pos;\n";
-static char meta_symbol_152[] = "if (!_.valid) {\n";
-static char meta_symbol_153[] = "parse_state->pos = star_pos;\n";
-static char meta_symbol_154[] = "break;\n";
-static char meta_symbol_155[] = "}\n";
-static char meta_symbol_156[] = "}\n";
-static char meta_symbol_157[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char meta_symbol_158[] = ":";
-static char meta_symbol_159[] = "*";
-static char meta_symbol_160[] = "&";
-static char meta_symbol_161[] = "!";
-static char meta_symbol_162[] = ".";
-static char meta_symbol_163[] = "|";
-static char meta_symbol_164[] = "->";
-static char meta_symbol_165[] = "_";
-static char meta_symbol_166[] = "bitpattern <<= 1;\n";
-static char meta_symbol_167[] = "bitmask <<= 1;\n";
-static char meta_symbol_168[] = "bitmask |= 1;\n";
-static char meta_symbol_169[] = "0";
-static char meta_symbol_170[] = "1";
-static char meta_symbol_171[] = "bitpattern |= 1;\n";
-static char meta_symbol_172[] = "_ = ";
-static char meta_symbol_173[] = "rule_";
-static char meta_symbol_174[] = "(parse_state);\n";
-static char meta_symbol_175[] = "0b";
-static char meta_symbol_176[] = "unsigned char bitpattern;\n";
-static char meta_symbol_177[] = "unsigned char bitpattern;\n";
-static char meta_symbol_178[] = "unsigned char bitmask;\n";
-static char meta_symbol_179[] = "unsigned char bitmask;\n";
-static char meta_symbol_180[] = "bitpattern = 0;\n";
-static char meta_symbol_181[] = "bitmask = 0;\n";
-static char meta_symbol_182[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
-static char meta_symbol_183[] = "parse_state->pos += 1;\n";
-static char meta_symbol_184[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char meta_symbol_185[] = "} else {\n";
-static char meta_symbol_186[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_187[] = "}\n";
-static char meta_symbol_188[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char meta_symbol_189[] = "parse_state->pos += 1;\n";
-static char meta_symbol_190[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char meta_symbol_191[] = "} else {\n";
-static char meta_symbol_192[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_193[] = "}\n";
-static char meta_symbol_194[] = "String* data;\n";
-static char meta_symbol_195[] = "String* data;\n";
-static char meta_symbol_196[] = "data = ";
-static char meta_symbol_197[] = ";\n";
-static char meta_symbol_198[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char meta_symbol_199[] = "parse_state->pos += data->size;\n";
-static char meta_symbol_200[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char meta_symbol_201[] = "} else {\n";
-static char meta_symbol_202[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_203[] = "}\n";
-static char meta_symbol_204[] = "{";
-static char meta_symbol_205[] = "}";
-static char meta_symbol_206[] = "void ";
-static char meta_symbol_207[] = "action_";
-static char meta_symbol_208[] = "(void* runtime, void* variables) {\n";
-static char meta_symbol_209[] = "}\n";
-static char meta_symbol_210[] = "\n";
-static char meta_symbol_211[] = "struct ";
+static char meta_symbol_104[] = "nlookahead_pos = parse_state->pos;\n";
+static char meta_symbol_105[] = "if (_.valid) {\n";
+static char meta_symbol_106[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_107[] = "} else {\n";
+static char meta_symbol_108[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char meta_symbol_109[] = "}\n";
+static char meta_symbol_110[] = "meta_parse_state_backtrack(parse_state, nlookahead_pos);\n";
+static char meta_symbol_111[] = "unsigned int lookahead_pos;\n";
+static char meta_symbol_112[] = "unsigned int lookahead_pos;\n";
+static char meta_symbol_113[] = "lookahead_pos = parse_state->pos;\n";
+static char meta_symbol_114[] = "if (_.valid) {\n";
+static char meta_symbol_115[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char meta_symbol_116[] = "} else {\n";
+static char meta_symbol_117[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_118[] = "}\n";
+static char meta_symbol_119[] = "meta_parse_state_backtrack(parse_state, lookahead_pos);\n";
+static char meta_symbol_120[] = "MetaAction ";
+static char meta_symbol_121[] = ";\n";
+static char meta_symbol_122[] = "vars";
+static char meta_symbol_123[] = "->";
+static char meta_symbol_124[] = " = _;\n";
+static char meta_symbol_125[] = "List* star_variables;\n";
+static char meta_symbol_126[] = "List* star_variables;\n";
+static char meta_symbol_127[] = "unsigned int star_pos;\n";
+static char meta_symbol_128[] = "unsigned int star_pos;\n";
+static char meta_symbol_129[] = "unsigned int star_start_pos;\n";
+static char meta_symbol_130[] = "unsigned int star_start_pos;\n";
+static char meta_symbol_131[] = "star_variables = list_create(parse_state->arena);\n";
+static char meta_symbol_132[] = "star_start_pos = parse_state->pos;\n";
+static char meta_symbol_133[] = "while (1) {\n";
+static char meta_symbol_134[] = "star_pos = parse_state->pos;\n";
+static char meta_symbol_135[] = "if (!_.valid) {\n";
+static char meta_symbol_136[] = "meta_parse_state_backtrack(parse_state, star_pos);\n";
+static char meta_symbol_137[] = "break;\n";
+static char meta_symbol_138[] = "}\n";
+static char meta_symbol_139[] = "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n";
+static char meta_symbol_140[] = "}\n";
+static char meta_symbol_141[] = "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char meta_symbol_142[] = "unsigned int star_pos;\n";
+static char meta_symbol_143[] = "unsigned int star_pos;\n";
+static char meta_symbol_144[] = "unsigned int star_start_pos;\n";
+static char meta_symbol_145[] = "unsigned int star_start_pos;\n";
+static char meta_symbol_146[] = "star_start_pos = parse_state->pos;\n";
+static char meta_symbol_147[] = "while (1) {\n";
+static char meta_symbol_148[] = "star_pos = parse_state->pos;\n";
+static char meta_symbol_149[] = "if (!_.valid) {\n";
+static char meta_symbol_150[] = "meta_parse_state_backtrack(parse_state, star_pos);\n";
+static char meta_symbol_151[] = "break;\n";
+static char meta_symbol_152[] = "}\n";
+static char meta_symbol_153[] = "}\n";
+static char meta_symbol_154[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char meta_symbol_155[] = ":";
+static char meta_symbol_156[] = "*";
+static char meta_symbol_157[] = "&";
+static char meta_symbol_158[] = "!";
+static char meta_symbol_159[] = ".";
+static char meta_symbol_160[] = "|";
+static char meta_symbol_161[] = "->";
+static char meta_symbol_162[] = "_";
+static char meta_symbol_163[] = "bitpattern <<= 1;\n";
+static char meta_symbol_164[] = "bitmask <<= 1;\n";
+static char meta_symbol_165[] = "bitmask |= 1;\n";
+static char meta_symbol_166[] = "0";
+static char meta_symbol_167[] = "1";
+static char meta_symbol_168[] = "bitpattern |= 1;\n";
+static char meta_symbol_169[] = "_ = ";
+static char meta_symbol_170[] = "rule_";
+static char meta_symbol_171[] = "(parse_state);\n";
+static char meta_symbol_172[] = "0b";
+static char meta_symbol_173[] = "unsigned char bitpattern;\n";
+static char meta_symbol_174[] = "unsigned char bitpattern;\n";
+static char meta_symbol_175[] = "unsigned char bitmask;\n";
+static char meta_symbol_176[] = "unsigned char bitmask;\n";
+static char meta_symbol_177[] = "bitpattern = 0;\n";
+static char meta_symbol_178[] = "bitmask = 0;\n";
+static char meta_symbol_179[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
+static char meta_symbol_180[] = "parse_state->pos += 1;\n";
+static char meta_symbol_181[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char meta_symbol_182[] = "} else {\n";
+static char meta_symbol_183[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_184[] = "}\n";
+static char meta_symbol_185[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char meta_symbol_186[] = "parse_state->pos += 1;\n";
+static char meta_symbol_187[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char meta_symbol_188[] = "} else {\n";
+static char meta_symbol_189[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_190[] = "}\n";
+static char meta_symbol_191[] = "String* data;\n";
+static char meta_symbol_192[] = "String* data;\n";
+static char meta_symbol_193[] = "data = ";
+static char meta_symbol_194[] = ";\n";
+static char meta_symbol_195[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char meta_symbol_196[] = "parse_state->pos += data->size;\n";
+static char meta_symbol_197[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char meta_symbol_198[] = "} else {\n";
+static char meta_symbol_199[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_200[] = "}\n";
+static char meta_symbol_201[] = "{";
+static char meta_symbol_202[] = "}";
+static char meta_symbol_203[] = "void ";
+static char meta_symbol_204[] = "action_";
+static char meta_symbol_205[] = "(void* runtime, void* variables) {\n";
+static char meta_symbol_206[] = "}\n";
+static char meta_symbol_207[] = "\n";
+static char meta_symbol_208[] = "struct ";
+static char meta_symbol_209[] = "Action";
+static char meta_symbol_210[] = "Vars* vars";
+static char meta_symbol_211[] = " = arena_alloc(parse_state->arena, sizeof(struct ";
 static char meta_symbol_212[] = "Action";
-static char meta_symbol_213[] = "Vars* vars";
-static char meta_symbol_214[] = " = arena_alloc(parse_state->arena, sizeof(struct ";
-static char meta_symbol_215[] = "Action";
-static char meta_symbol_216[] = "Vars));\n";
-static char meta_symbol_217[] = "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n";
-static char meta_symbol_218[] = "return meta_action_create(";
-static char meta_symbol_219[] = "action_";
-static char meta_symbol_220[] = ", (void*)vars";
-static char meta_symbol_221[] = ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char meta_symbol_222[] = "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n";
-static char meta_symbol_223[] = "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char meta_symbol_224[] = "((";
-static char meta_symbol_225[] = "Runtime*)runtime)";
-static char meta_symbol_226[] = "unseen(";
-static char meta_symbol_227[] = ") -> {";
-static char meta_symbol_228[] = "}";
-static char meta_symbol_229[] = "MetaAction action;\n";
-static char meta_symbol_230[] = "MetaAction action;\n";
-static char meta_symbol_231[] = "action = ";
-static char meta_symbol_232[] = ";\n";
-static char meta_symbol_233[] = "if (!string_builder_contains(";
-static char meta_symbol_234[] = "->current_string_builder, string_slice(";
-static char meta_symbol_235[] = "->arena, action.input_buffer, action.start, action.end))) {\n";
-static char meta_symbol_236[] = "}\n";
-static char meta_symbol_237[] = "unique(";
-static char meta_symbol_238[] = ")";
-static char meta_symbol_239[] = "if (!string_builder_contains(";
+static char meta_symbol_213[] = "Vars));\n";
+static char meta_symbol_214[] = "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n";
+static char meta_symbol_215[] = "return meta_action_create(";
+static char meta_symbol_216[] = "action_";
+static char meta_symbol_217[] = ", (void*)vars";
+static char meta_symbol_218[] = ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char meta_symbol_219[] = "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n";
+static char meta_symbol_220[] = "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char meta_symbol_221[] = "((";
+static char meta_symbol_222[] = "Runtime*)runtime)";
+static char meta_symbol_223[] = "unseen(";
+static char meta_symbol_224[] = ") -> {";
+static char meta_symbol_225[] = "}";
+static char meta_symbol_226[] = "MetaAction action;\n";
+static char meta_symbol_227[] = "MetaAction action;\n";
+static char meta_symbol_228[] = "action = ";
+static char meta_symbol_229[] = ";\n";
+static char meta_symbol_230[] = "if (!string_builder_contains(";
+static char meta_symbol_231[] = "->current_string_builder, string_slice(";
+static char meta_symbol_232[] = "->arena, action.input_buffer, action.start, action.end))) {\n";
+static char meta_symbol_233[] = "}\n";
+static char meta_symbol_234[] = "unique(";
+static char meta_symbol_235[] = ")";
+static char meta_symbol_236[] = "if (!string_builder_contains(";
+static char meta_symbol_237[] = "->current_string_builder, ";
+static char meta_symbol_238[] = ")) {\n";
+static char meta_symbol_239[] = "string_builder_append(";
 static char meta_symbol_240[] = "->current_string_builder, ";
-static char meta_symbol_241[] = ")) {\n";
-static char meta_symbol_242[] = "string_builder_append(";
-static char meta_symbol_243[] = "->current_string_builder, ";
-static char meta_symbol_244[] = "->arena, ";
-static char meta_symbol_245[] = ", 0, NULL);\n";
-static char meta_symbol_246[] = "}\n";
-static char meta_symbol_247[] = ">";
-static char meta_symbol_248[] = "{";
-static char meta_symbol_249[] = "}";
-static char meta_symbol_250[] = "StringBuilder* last_string_builder;\n";
-static char meta_symbol_251[] = "StringBuilder* last_string_builder;\n";
-static char meta_symbol_252[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_253[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_254[] = "last_string_builder = ";
-static char meta_symbol_255[] = "->current_string_builder;\n";
-static char meta_symbol_256[] = "string_builder = ";
-static char meta_symbol_257[] = "->named_string_builder_";
-static char meta_symbol_258[] = ";\n";
-static char meta_symbol_259[] = "->current_string_builder = string_builder;\n";
-static char meta_symbol_260[] = "->current_string_builder = last_string_builder;\n";
-static char meta_symbol_261[] = "<";
-static char meta_symbol_262[] = "string_builder_append(";
-static char meta_symbol_263[] = "->current_string_builder, ";
-static char meta_symbol_264[] = "->arena, NULL, 0, ";
-static char meta_symbol_265[] = "->named_string_builder_";
-static char meta_symbol_266[] = ");\n";
-static char meta_symbol_267[] = "$";
-static char meta_symbol_268[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_269[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_270[] = "string_builder = string_builder_create(";
-static char meta_symbol_271[] = "->arena);\n";
-static char meta_symbol_272[] = "->named_string_builder_";
-static char meta_symbol_273[] = " = string_builder;\n";
-static char meta_symbol_274[] = "string_builder_append(";
-static char meta_symbol_275[] = "->current_string_builder, ";
-static char meta_symbol_276[] = "->arena, string_from_integer(";
-static char meta_symbol_277[] = "->arena, ";
-static char meta_symbol_278[] = "), 0, NULL);\n";
-static char meta_symbol_279[] = "meta_action_run(&";
-static char meta_symbol_280[] = ", runtime, ";
-static char meta_symbol_281[] = "->current_string_builder, ";
-static char meta_symbol_282[] = "->arena);\n";
-static char meta_symbol_283[] = "void placeholder_";
-static char meta_symbol_284[] = "(void* runtime, void* variables);\n";
-static char meta_symbol_285[] = "void placeholder_";
-static char meta_symbol_286[] = "(void* runtime, void* variables) {\n";
-static char meta_symbol_287[] = "}\n";
-static char meta_symbol_288[] = "\n";
-static char meta_symbol_289[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_290[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_291[] = "string_builder = string_builder_create(";
-static char meta_symbol_292[] = "->arena);\n";
-static char meta_symbol_293[] = "meta_placeholder_append2(";
-static char meta_symbol_294[] = "->arena, ";
-static char meta_symbol_295[] = "->placeholders, string_builder, meta_action_create(placeholder_";
-static char meta_symbol_296[] = ", variables, NULL, 0, 0));\n";
+static char meta_symbol_241[] = "->arena, ";
+static char meta_symbol_242[] = ", 0, NULL);\n";
+static char meta_symbol_243[] = "}\n";
+static char meta_symbol_244[] = ">";
+static char meta_symbol_245[] = "{";
+static char meta_symbol_246[] = "}";
+static char meta_symbol_247[] = "StringBuilder* last_string_builder;\n";
+static char meta_symbol_248[] = "StringBuilder* last_string_builder;\n";
+static char meta_symbol_249[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_250[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_251[] = "last_string_builder = ";
+static char meta_symbol_252[] = "->current_string_builder;\n";
+static char meta_symbol_253[] = "string_builder = ";
+static char meta_symbol_254[] = "->named_string_builder_";
+static char meta_symbol_255[] = ";\n";
+static char meta_symbol_256[] = "->current_string_builder = string_builder;\n";
+static char meta_symbol_257[] = "->current_string_builder = last_string_builder;\n";
+static char meta_symbol_258[] = "<";
+static char meta_symbol_259[] = "string_builder_append(";
+static char meta_symbol_260[] = "->current_string_builder, ";
+static char meta_symbol_261[] = "->arena, NULL, 0, ";
+static char meta_symbol_262[] = "->named_string_builder_";
+static char meta_symbol_263[] = ");\n";
+static char meta_symbol_264[] = "$";
+static char meta_symbol_265[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_266[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_267[] = "string_builder = string_builder_create(";
+static char meta_symbol_268[] = "->arena);\n";
+static char meta_symbol_269[] = "->named_string_builder_";
+static char meta_symbol_270[] = " = string_builder;\n";
+static char meta_symbol_271[] = "string_builder_append(";
+static char meta_symbol_272[] = "->current_string_builder, ";
+static char meta_symbol_273[] = "->arena, string_from_integer(";
+static char meta_symbol_274[] = "->arena, ";
+static char meta_symbol_275[] = "), 0, NULL);\n";
+static char meta_symbol_276[] = "meta_action_run(&";
+static char meta_symbol_277[] = ", runtime, ";
+static char meta_symbol_278[] = "->current_string_builder, ";
+static char meta_symbol_279[] = "->arena);\n";
+static char meta_symbol_280[] = "void placeholder_";
+static char meta_symbol_281[] = "(void* runtime, void* variables);\n";
+static char meta_symbol_282[] = "void placeholder_";
+static char meta_symbol_283[] = "(void* runtime, void* variables) {\n";
+static char meta_symbol_284[] = "}\n";
+static char meta_symbol_285[] = "\n";
+static char meta_symbol_286[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_287[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_288[] = "string_builder = string_builder_create(";
+static char meta_symbol_289[] = "->arena);\n";
+static char meta_symbol_290[] = "meta_placeholder_append2(";
+static char meta_symbol_291[] = "->arena, ";
+static char meta_symbol_292[] = "->placeholders, string_builder, meta_action_create(placeholder_";
+static char meta_symbol_293[] = ", variables, NULL, 0, 0));\n";
+static char meta_symbol_294[] = "string_builder_append(";
+static char meta_symbol_295[] = "->current_string_builder, ";
+static char meta_symbol_296[] = "->arena, NULL, 0, string_builder);\n";
 static char meta_symbol_297[] = "string_builder_append(";
 static char meta_symbol_298[] = "->current_string_builder, ";
-static char meta_symbol_299[] = "->arena, NULL, 0, string_builder);\n";
-static char meta_symbol_300[] = "string_builder_append(";
-static char meta_symbol_301[] = "->current_string_builder, ";
-static char meta_symbol_302[] = "->arena, ";
-static char meta_symbol_303[] = ", 0, NULL);\n";
-static char meta_symbol_304[] = "#";
-static char meta_symbol_305[] = "(";
-static char meta_symbol_306[] = " ";
-static char meta_symbol_307[] = ")";
+static char meta_symbol_299[] = "->arena, ";
+static char meta_symbol_300[] = ", 0, NULL);\n";
+static char meta_symbol_301[] = "#";
+static char meta_symbol_302[] = "(";
+static char meta_symbol_303[] = " ";
+static char meta_symbol_304[] = ")";
+static char meta_symbol_305[] = "->W_";
+static char meta_symbol_306[] = " = meta_";
+static char meta_symbol_307[] = "(";
 static char meta_symbol_308[] = "->W_";
-static char meta_symbol_309[] = " = meta_";
-static char meta_symbol_310[] = "(";
-static char meta_symbol_311[] = "->W_";
-static char meta_symbol_312[] = " ? ";
-static char meta_symbol_313[] = "->W_";
-static char meta_symbol_314[] = " : 0, ";
-static char meta_symbol_315[] = ");\n";
-static char meta_symbol_316[] = ">";
-static char meta_symbol_317[] = "<";
+static char meta_symbol_309[] = " ? ";
+static char meta_symbol_310[] = "->W_";
+static char meta_symbol_311[] = " : 0, ";
+static char meta_symbol_312[] = ");\n";
+static char meta_symbol_313[] = ">";
+static char meta_symbol_314[] = "<";
+static char meta_symbol_315[] = "string_builder_append(";
+static char meta_symbol_316[] = "->current_string_builder, ";
+static char meta_symbol_317[] = "->arena, NULL, 1, NULL);\n";
 static char meta_symbol_318[] = "string_builder_append(";
 static char meta_symbol_319[] = "->current_string_builder, ";
-static char meta_symbol_320[] = "->arena, NULL, 1, NULL);\n";
-static char meta_symbol_321[] = "string_builder_append(";
-static char meta_symbol_322[] = "->current_string_builder, ";
-static char meta_symbol_323[] = "->arena, NULL, -1, NULL);\n";
-static char meta_symbol_324[] = "StringBuilder* named_string_builder_";
-static char meta_symbol_325[] = ";\n";
-static char meta_symbol_326[] = "0";
-static char meta_symbol_327[] = "1";
-static char meta_symbol_328[] = "2";
-static char meta_symbol_329[] = "3";
-static char meta_symbol_330[] = "4";
-static char meta_symbol_331[] = "5";
-static char meta_symbol_332[] = "6";
-static char meta_symbol_333[] = "7";
-static char meta_symbol_334[] = "8";
-static char meta_symbol_335[] = "9";
-static char meta_symbol_336[] = "{";
-static char meta_symbol_337[] = "*";
-static char meta_symbol_338[] = "}";
-static char meta_symbol_339[] = "int i;\n";
-static char meta_symbol_340[] = "int i;\n";
-static char meta_symbol_341[] = "for (i=0; i < ";
-static char meta_symbol_342[] = "; i++) {\n";
-static char meta_symbol_343[] = "string_builder_append(";
-static char meta_symbol_344[] = "->current_string_builder, ";
-static char meta_symbol_345[] = "->arena, ";
-static char meta_symbol_346[] = ", 0, NULL);\n";
-static char meta_symbol_347[] = "}\n";
-static char meta_symbol_348[] = "(";
-static char meta_symbol_349[] = "->W_";
-static char meta_symbol_350[] = " ? ";
-static char meta_symbol_351[] = "->W_";
-static char meta_symbol_352[] = " : 0)";
-static char meta_symbol_353[] = "(";
-static char meta_symbol_354[] = "-";
-static char meta_symbol_355[] = ")";
-static char meta_symbol_356[] = "((";
-static char meta_symbol_357[] = "->W_";
-static char meta_symbol_358[] = " ? ";
-static char meta_symbol_359[] = "->W_";
-static char meta_symbol_360[] = " : 0)-";
-static char meta_symbol_361[] = ")";
-static char meta_symbol_362[] = "number(";
-static char meta_symbol_363[] = ")";
-static char meta_symbol_364[] = "(0";
+static char meta_symbol_320[] = "->arena, NULL, -1, NULL);\n";
+static char meta_symbol_321[] = "StringBuilder* named_string_builder_";
+static char meta_symbol_322[] = ";\n";
+static char meta_symbol_323[] = "0";
+static char meta_symbol_324[] = "1";
+static char meta_symbol_325[] = "2";
+static char meta_symbol_326[] = "3";
+static char meta_symbol_327[] = "4";
+static char meta_symbol_328[] = "5";
+static char meta_symbol_329[] = "6";
+static char meta_symbol_330[] = "7";
+static char meta_symbol_331[] = "8";
+static char meta_symbol_332[] = "9";
+static char meta_symbol_333[] = "{";
+static char meta_symbol_334[] = "*";
+static char meta_symbol_335[] = "}";
+static char meta_symbol_336[] = "int i;\n";
+static char meta_symbol_337[] = "int i;\n";
+static char meta_symbol_338[] = "for (i=0; i < ";
+static char meta_symbol_339[] = "; i++) {\n";
+static char meta_symbol_340[] = "string_builder_append(";
+static char meta_symbol_341[] = "->current_string_builder, ";
+static char meta_symbol_342[] = "->arena, ";
+static char meta_symbol_343[] = ", 0, NULL);\n";
+static char meta_symbol_344[] = "}\n";
+static char meta_symbol_345[] = "(";
+static char meta_symbol_346[] = "->W_";
+static char meta_symbol_347[] = " ? ";
+static char meta_symbol_348[] = "->W_";
+static char meta_symbol_349[] = " : 0)";
+static char meta_symbol_350[] = "(";
+static char meta_symbol_351[] = "-";
+static char meta_symbol_352[] = ")";
+static char meta_symbol_353[] = "((";
+static char meta_symbol_354[] = "->W_";
+static char meta_symbol_355[] = " ? ";
+static char meta_symbol_356[] = "->W_";
+static char meta_symbol_357[] = " : 0)-";
+static char meta_symbol_358[] = ")";
+static char meta_symbol_359[] = "number(";
+static char meta_symbol_360[] = ")";
+static char meta_symbol_361[] = "(0";
+static char meta_symbol_362[] = ")";
+static char meta_symbol_363[] = "+(meta_action_first_byte(";
+static char meta_symbol_364[] = ")";
 static char meta_symbol_365[] = ")";
-static char meta_symbol_366[] = "+(meta_action_first_byte(";
-static char meta_symbol_367[] = ")";
-static char meta_symbol_368[] = ")";
-static char meta_symbol_369[] = "<<";
-static char meta_symbol_370[] = "\"";
-static char meta_symbol_371[] = "\"";
-static char meta_symbol_372[] = "static char ";
-static char meta_symbol_373[] = "symbol_";
-static char meta_symbol_374[] = "[] = \"";
-static char meta_symbol_375[] = "\";\n";
-static char meta_symbol_376[] = "string_from_cstring(";
-static char meta_symbol_377[] = "->arena, ";
-static char meta_symbol_378[] = "symbol_";
-static char meta_symbol_379[] = ", sizeof(";
-static char meta_symbol_380[] = "symbol_";
-static char meta_symbol_381[] = ")-1)";
-static char meta_symbol_382[] = "(";
-static char meta_symbol_383[] = ")";
-static char meta_symbol_384[] = "(((struct ";
-static char meta_symbol_385[] = "Action";
-static char meta_symbol_386[] = "Vars*)variables)->";
-static char meta_symbol_387[] = ")";
-static char meta_symbol_388[] = ".len";
-static char meta_symbol_389[] = "meta_action_len";
-static char meta_symbol_390[] = "W[";
-static char meta_symbol_391[] = "]";
-static char meta_symbol_392[] = "unsigned int W_";
-static char meta_symbol_393[] = ";\n";
-static char meta_symbol_394[] = "\"";
-static char meta_symbol_395[] = "\'";
-static char meta_symbol_396[] = "\'";
-static char meta_symbol_397[] = "static char ";
-static char meta_symbol_398[] = "symbol_";
-static char meta_symbol_399[] = "[] = \"";
-static char meta_symbol_400[] = "\";\n";
-static char meta_symbol_401[] = "string_from_cstring(parse_state->arena, ";
-static char meta_symbol_402[] = "symbol_";
-static char meta_symbol_403[] = ", sizeof(";
-static char meta_symbol_404[] = "symbol_";
-static char meta_symbol_405[] = ")-1)";
-static char meta_symbol_406[] = "\"";
-static char meta_symbol_407[] = "\\\"";
-static char meta_symbol_408[] = "\'";
-static char meta_symbol_409[] = "\\";
-static char meta_symbol_410[] = "a";
-static char meta_symbol_411[] = "b";
-static char meta_symbol_412[] = "c";
-static char meta_symbol_413[] = "d";
-static char meta_symbol_414[] = "e";
-static char meta_symbol_415[] = "f";
-static char meta_symbol_416[] = "g";
-static char meta_symbol_417[] = "h";
-static char meta_symbol_418[] = "i";
-static char meta_symbol_419[] = "j";
-static char meta_symbol_420[] = "k";
-static char meta_symbol_421[] = "l";
-static char meta_symbol_422[] = "m";
-static char meta_symbol_423[] = "n";
-static char meta_symbol_424[] = "o";
-static char meta_symbol_425[] = "p";
-static char meta_symbol_426[] = "q";
-static char meta_symbol_427[] = "r";
-static char meta_symbol_428[] = "s";
-static char meta_symbol_429[] = "t";
-static char meta_symbol_430[] = "u";
-static char meta_symbol_431[] = "v";
-static char meta_symbol_432[] = "w";
-static char meta_symbol_433[] = "x";
-static char meta_symbol_434[] = "y";
-static char meta_symbol_435[] = "z";
-static char meta_symbol_436[] = "A";
-static char meta_symbol_437[] = "B";
-static char meta_symbol_438[] = "C";
-static char meta_symbol_439[] = "D";
-static char meta_symbol_440[] = "E";
-static char meta_symbol_441[] = "F";
-static char meta_symbol_442[] = "G";
-static char meta_symbol_443[] = "H";
-static char meta_symbol_444[] = "I";
-static char meta_symbol_445[] = "J";
-static char meta_symbol_446[] = "K";
-static char meta_symbol_447[] = "L";
-static char meta_symbol_448[] = "M";
-static char meta_symbol_449[] = "N";
-static char meta_symbol_450[] = "O";
-static char meta_symbol_451[] = "P";
-static char meta_symbol_452[] = "Q";
-static char meta_symbol_453[] = "R";
-static char meta_symbol_454[] = "S";
-static char meta_symbol_455[] = "T";
-static char meta_symbol_456[] = "U";
-static char meta_symbol_457[] = "V";
-static char meta_symbol_458[] = "W";
-static char meta_symbol_459[] = "X";
-static char meta_symbol_460[] = "Y";
-static char meta_symbol_461[] = "Z";
-static char meta_symbol_462[] = " ";
-static char meta_symbol_463[] = "\n";
+static char meta_symbol_366[] = "<<";
+static char meta_symbol_367[] = "\"";
+static char meta_symbol_368[] = "\"";
+static char meta_symbol_369[] = "static char ";
+static char meta_symbol_370[] = "symbol_";
+static char meta_symbol_371[] = "[] = \"";
+static char meta_symbol_372[] = "\";\n";
+static char meta_symbol_373[] = "string_from_cstring(";
+static char meta_symbol_374[] = "->arena, ";
+static char meta_symbol_375[] = "symbol_";
+static char meta_symbol_376[] = ", sizeof(";
+static char meta_symbol_377[] = "symbol_";
+static char meta_symbol_378[] = ")-1)";
+static char meta_symbol_379[] = "(";
+static char meta_symbol_380[] = ")";
+static char meta_symbol_381[] = "(((struct ";
+static char meta_symbol_382[] = "Action";
+static char meta_symbol_383[] = "Vars*)variables)->";
+static char meta_symbol_384[] = ")";
+static char meta_symbol_385[] = ".len";
+static char meta_symbol_386[] = "meta_action_len";
+static char meta_symbol_387[] = "W[";
+static char meta_symbol_388[] = "]";
+static char meta_symbol_389[] = "unsigned int W_";
+static char meta_symbol_390[] = ";\n";
+static char meta_symbol_391[] = "\"";
+static char meta_symbol_392[] = "\'";
+static char meta_symbol_393[] = "\'";
+static char meta_symbol_394[] = "static char ";
+static char meta_symbol_395[] = "symbol_";
+static char meta_symbol_396[] = "[] = \"";
+static char meta_symbol_397[] = "\";\n";
+static char meta_symbol_398[] = "string_from_cstring(parse_state->arena, ";
+static char meta_symbol_399[] = "symbol_";
+static char meta_symbol_400[] = ", sizeof(";
+static char meta_symbol_401[] = "symbol_";
+static char meta_symbol_402[] = ")-1)";
+static char meta_symbol_403[] = "\"";
+static char meta_symbol_404[] = "\\\"";
+static char meta_symbol_405[] = "\'";
+static char meta_symbol_406[] = "\\";
+static char meta_symbol_407[] = "a";
+static char meta_symbol_408[] = "b";
+static char meta_symbol_409[] = "c";
+static char meta_symbol_410[] = "d";
+static char meta_symbol_411[] = "e";
+static char meta_symbol_412[] = "f";
+static char meta_symbol_413[] = "g";
+static char meta_symbol_414[] = "h";
+static char meta_symbol_415[] = "i";
+static char meta_symbol_416[] = "j";
+static char meta_symbol_417[] = "k";
+static char meta_symbol_418[] = "l";
+static char meta_symbol_419[] = "m";
+static char meta_symbol_420[] = "n";
+static char meta_symbol_421[] = "o";
+static char meta_symbol_422[] = "p";
+static char meta_symbol_423[] = "q";
+static char meta_symbol_424[] = "r";
+static char meta_symbol_425[] = "s";
+static char meta_symbol_426[] = "t";
+static char meta_symbol_427[] = "u";
+static char meta_symbol_428[] = "v";
+static char meta_symbol_429[] = "w";
+static char meta_symbol_430[] = "x";
+static char meta_symbol_431[] = "y";
+static char meta_symbol_432[] = "z";
+static char meta_symbol_433[] = "A";
+static char meta_symbol_434[] = "B";
+static char meta_symbol_435[] = "C";
+static char meta_symbol_436[] = "D";
+static char meta_symbol_437[] = "E";
+static char meta_symbol_438[] = "F";
+static char meta_symbol_439[] = "G";
+static char meta_symbol_440[] = "H";
+static char meta_symbol_441[] = "I";
+static char meta_symbol_442[] = "J";
+static char meta_symbol_443[] = "K";
+static char meta_symbol_444[] = "L";
+static char meta_symbol_445[] = "M";
+static char meta_symbol_446[] = "N";
+static char meta_symbol_447[] = "O";
+static char meta_symbol_448[] = "P";
+static char meta_symbol_449[] = "Q";
+static char meta_symbol_450[] = "R";
+static char meta_symbol_451[] = "S";
+static char meta_symbol_452[] = "T";
+static char meta_symbol_453[] = "U";
+static char meta_symbol_454[] = "V";
+static char meta_symbol_455[] = "W";
+static char meta_symbol_456[] = "X";
+static char meta_symbol_457[] = "Y";
+static char meta_symbol_458[] = "Z";
+static char meta_symbol_459[] = " ";
+static char meta_symbol_460[] = "\n";
 MetaAction meta_rule_main(MetaParseState* parse_state);
 struct meta_Action1Vars {
     MetaAction xs;
@@ -1133,7 +1130,6 @@ void meta_action_13(void* runtime, void* variables) {
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_98, sizeof(meta_symbol_98)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_99, sizeof(meta_symbol_99)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_100, sizeof(meta_symbol_100)-1), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_orInit = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_orInit);
@@ -1142,11 +1138,11 @@ void meta_action_13(void* runtime, void* variables) {
 
 void meta_action_14(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action14Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_101, sizeof(meta_symbol_101)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_100, sizeof(meta_symbol_100)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action14Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_102, sizeof(meta_symbol_102)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_101, sizeof(meta_symbol_101)-1), 0, NULL);
 }
 
 void meta_action_15(void* runtime, void* variables) {
@@ -1159,23 +1155,22 @@ void meta_action_16(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_103, sizeof(meta_symbol_103)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_104, sizeof(meta_symbol_104)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_102, sizeof(meta_symbol_102)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_103, sizeof(meta_symbol_103)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_105, sizeof(meta_symbol_105)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_104, sizeof(meta_symbol_104)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action16Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_106, sizeof(meta_symbol_106)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_105, sizeof(meta_symbol_105)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_107, sizeof(meta_symbol_107)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_106, sizeof(meta_symbol_106)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_108, sizeof(meta_symbol_108)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_107, sizeof(meta_symbol_107)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_109, sizeof(meta_symbol_109)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_108, sizeof(meta_symbol_108)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_109, sizeof(meta_symbol_109)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_110, sizeof(meta_symbol_110)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_111, sizeof(meta_symbol_111)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_112, sizeof(meta_symbol_112)-1), 0, NULL);
 }
 
 void meta_action_17(void* runtime, void* variables) {
@@ -1184,23 +1179,22 @@ void meta_action_17(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_113, sizeof(meta_symbol_113)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_114, sizeof(meta_symbol_114)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_111, sizeof(meta_symbol_111)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_112, sizeof(meta_symbol_112)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_115, sizeof(meta_symbol_115)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_113, sizeof(meta_symbol_113)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action17Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_114, sizeof(meta_symbol_114)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_115, sizeof(meta_symbol_115)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_116, sizeof(meta_symbol_116)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_117, sizeof(meta_symbol_117)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_118, sizeof(meta_symbol_118)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_119, sizeof(meta_symbol_119)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_120, sizeof(meta_symbol_120)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_121, sizeof(meta_symbol_121)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_122, sizeof(meta_symbol_122)-1), 0, NULL);
 }
 
 void meta_action_18(void* runtime, void* variables) {
@@ -1214,15 +1208,15 @@ void meta_action_19(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_variables;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_123, sizeof(meta_symbol_123)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_120, sizeof(meta_symbol_120)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_124, sizeof(meta_symbol_124)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_121, sizeof(meta_symbol_121)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_125, sizeof(meta_symbol_125)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_122, sizeof(meta_symbol_122)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_126, sizeof(meta_symbol_126)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_123, sizeof(meta_symbol_123)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_127, sizeof(meta_symbol_127)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_124, sizeof(meta_symbol_124)-1), 0, NULL);
 }
 
 void meta_action_20(void* runtime, void* variables) {
@@ -1234,32 +1228,32 @@ void meta_action_21(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_128, sizeof(meta_symbol_128)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_129, sizeof(meta_symbol_129)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_125, sizeof(meta_symbol_125)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_126, sizeof(meta_symbol_126)-1), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_130, sizeof(meta_symbol_130)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_131, sizeof(meta_symbol_131)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_127, sizeof(meta_symbol_127)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_128, sizeof(meta_symbol_128)-1), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_132, sizeof(meta_symbol_132)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_133, sizeof(meta_symbol_133)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_129, sizeof(meta_symbol_129)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_130, sizeof(meta_symbol_130)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_131, sizeof(meta_symbol_131)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_132, sizeof(meta_symbol_132)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_133, sizeof(meta_symbol_133)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_134, sizeof(meta_symbol_134)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action21Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_135, sizeof(meta_symbol_135)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_136, sizeof(meta_symbol_136)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_136, sizeof(meta_symbol_136)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_137, sizeof(meta_symbol_137)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action21Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_138, sizeof(meta_symbol_138)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_139, sizeof(meta_symbol_139)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_140, sizeof(meta_symbol_140)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_140, sizeof(meta_symbol_140)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_141, sizeof(meta_symbol_141)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_142, sizeof(meta_symbol_142)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_143, sizeof(meta_symbol_143)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_144, sizeof(meta_symbol_144)-1), 0, NULL);
 }
 
 void meta_action_22(void* runtime, void* variables) {
@@ -1268,27 +1262,27 @@ void meta_action_22(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_145, sizeof(meta_symbol_145)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_146, sizeof(meta_symbol_146)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_142, sizeof(meta_symbol_142)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_143, sizeof(meta_symbol_143)-1), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_147, sizeof(meta_symbol_147)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_148, sizeof(meta_symbol_148)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_144, sizeof(meta_symbol_144)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_145, sizeof(meta_symbol_145)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_146, sizeof(meta_symbol_146)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_147, sizeof(meta_symbol_147)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_148, sizeof(meta_symbol_148)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action22Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_149, sizeof(meta_symbol_149)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_150, sizeof(meta_symbol_150)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_150, sizeof(meta_symbol_150)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_151, sizeof(meta_symbol_151)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action22Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_152, sizeof(meta_symbol_152)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_153, sizeof(meta_symbol_153)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_154, sizeof(meta_symbol_154)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_155, sizeof(meta_symbol_155)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_156, sizeof(meta_symbol_156)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_157, sizeof(meta_symbol_157)-1), 0, NULL);
 }
 
 void meta_action_23(void* runtime, void* variables) {
@@ -1296,14 +1290,14 @@ void meta_action_23(void* runtime, void* variables) {
 }
 
 void meta_action_31(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_166, sizeof(meta_symbol_166)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_167, sizeof(meta_symbol_167)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_163, sizeof(meta_symbol_163)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_164, sizeof(meta_symbol_164)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action31Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_32(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action32Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_168, sizeof(meta_symbol_168)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_165, sizeof(meta_symbol_165)-1), 0, NULL);
 }
 
 void meta_action_33(void* runtime, void* variables) {
@@ -1313,15 +1307,15 @@ void meta_action_34(void* runtime, void* variables) {
 }
 
 void meta_action_35(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_171, sizeof(meta_symbol_171)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_168, sizeof(meta_symbol_168)-1), 0, NULL);
 }
 
 void meta_action_36(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_172, sizeof(meta_symbol_172)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_169, sizeof(meta_symbol_169)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_173, sizeof(meta_symbol_173)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_170, sizeof(meta_symbol_170)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action36Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_174, sizeof(meta_symbol_174)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_171, sizeof(meta_symbol_171)-1), 0, NULL);
 }
 
 void meta_action_37(void* runtime, void* variables) {
@@ -1330,39 +1324,39 @@ void meta_action_37(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_176, sizeof(meta_symbol_176)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_177, sizeof(meta_symbol_177)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_173, sizeof(meta_symbol_173)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_174, sizeof(meta_symbol_174)-1), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_178, sizeof(meta_symbol_178)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_179, sizeof(meta_symbol_179)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_175, sizeof(meta_symbol_175)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_176, sizeof(meta_symbol_176)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_177, sizeof(meta_symbol_177)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_178, sizeof(meta_symbol_178)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action37Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_179, sizeof(meta_symbol_179)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_180, sizeof(meta_symbol_180)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_181, sizeof(meta_symbol_181)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action37Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_182, sizeof(meta_symbol_182)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_183, sizeof(meta_symbol_183)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_184, sizeof(meta_symbol_184)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_184, sizeof(meta_symbol_184)-1), 0, NULL);
+}
+
+void meta_action_38(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_185, sizeof(meta_symbol_185)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_186, sizeof(meta_symbol_186)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_187, sizeof(meta_symbol_187)-1), 0, NULL);
-}
-
-void meta_action_38(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_188, sizeof(meta_symbol_188)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_189, sizeof(meta_symbol_189)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_190, sizeof(meta_symbol_190)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_191, sizeof(meta_symbol_191)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_192, sizeof(meta_symbol_192)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_193, sizeof(meta_symbol_193)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_190, sizeof(meta_symbol_190)-1), 0, NULL);
 }
 
 void meta_action_39(void* runtime, void* variables) {
@@ -1371,23 +1365,23 @@ void meta_action_39(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_194, sizeof(meta_symbol_194)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_195, sizeof(meta_symbol_195)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_191, sizeof(meta_symbol_191)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_192, sizeof(meta_symbol_192)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_196, sizeof(meta_symbol_196)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_193, sizeof(meta_symbol_193)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action39Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_194, sizeof(meta_symbol_194)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_195, sizeof(meta_symbol_195)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_196, sizeof(meta_symbol_196)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_197, sizeof(meta_symbol_197)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_198, sizeof(meta_symbol_198)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_199, sizeof(meta_symbol_199)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_200, sizeof(meta_symbol_200)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_201, sizeof(meta_symbol_201)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_202, sizeof(meta_symbol_202)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_203, sizeof(meta_symbol_203)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_200, sizeof(meta_symbol_200)-1), 0, NULL);
 }
 
 void meta_action_40(void* runtime, void* variables) {
@@ -1396,54 +1390,54 @@ void meta_action_40(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_206, sizeof(meta_symbol_206)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_203, sizeof(meta_symbol_203)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_207, sizeof(meta_symbol_207)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_204, sizeof(meta_symbol_204)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_208, sizeof(meta_symbol_208)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_205, sizeof(meta_symbol_205)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_actionVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_actionVars);
     meta_action_run(&(((struct meta_Action40Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_209, sizeof(meta_symbol_209)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_210, sizeof(meta_symbol_210)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_206, sizeof(meta_symbol_206)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_207, sizeof(meta_symbol_207)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_orInit;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_208, sizeof(meta_symbol_208)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_209, sizeof(meta_symbol_209)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_210, sizeof(meta_symbol_210)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_211, sizeof(meta_symbol_211)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_212, sizeof(meta_symbol_212)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_213, sizeof(meta_symbol_213)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_214, sizeof(meta_symbol_214)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_215, sizeof(meta_symbol_215)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_216, sizeof(meta_symbol_216)-1), 0, NULL);
-    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_217, sizeof(meta_symbol_217)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_218, sizeof(meta_symbol_218)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_219, sizeof(meta_symbol_219)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_216, sizeof(meta_symbol_216)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_220, sizeof(meta_symbol_220)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_217, sizeof(meta_symbol_217)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_221, sizeof(meta_symbol_221)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_218, sizeof(meta_symbol_218)-1), 0, NULL);
 }
 
 void meta_action_41(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_222, sizeof(meta_symbol_222)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_223, sizeof(meta_symbol_223)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_219, sizeof(meta_symbol_219)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_220, sizeof(meta_symbol_220)-1), 0, NULL);
 }
 
 void meta_action_42(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_224, sizeof(meta_symbol_224)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_221, sizeof(meta_symbol_221)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_225, sizeof(meta_symbol_225)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_222, sizeof(meta_symbol_222)-1), 0, NULL);
 }
 
 void meta_action_43(void* runtime, void* variables) {
@@ -1452,40 +1446,40 @@ void meta_action_43(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_229, sizeof(meta_symbol_229)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_230, sizeof(meta_symbol_230)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_226, sizeof(meta_symbol_226)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_227, sizeof(meta_symbol_227)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_231, sizeof(meta_symbol_231)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_228, sizeof(meta_symbol_228)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_232, sizeof(meta_symbol_232)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_233, sizeof(meta_symbol_233)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_229, sizeof(meta_symbol_229)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_230, sizeof(meta_symbol_230)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_234, sizeof(meta_symbol_234)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_231, sizeof(meta_symbol_231)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_235, sizeof(meta_symbol_235)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_232, sizeof(meta_symbol_232)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_236, sizeof(meta_symbol_236)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_233, sizeof(meta_symbol_233)-1), 0, NULL);
 }
 
 void meta_action_44(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_239, sizeof(meta_symbol_239)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_236, sizeof(meta_symbol_236)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_240, sizeof(meta_symbol_240)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_237, sizeof(meta_symbol_237)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_241, sizeof(meta_symbol_241)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_238, sizeof(meta_symbol_238)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_242, sizeof(meta_symbol_242)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_239, sizeof(meta_symbol_239)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_243, sizeof(meta_symbol_243)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_240, sizeof(meta_symbol_240)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_244, sizeof(meta_symbol_244)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_241, sizeof(meta_symbol_241)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_245, sizeof(meta_symbol_245)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_242, sizeof(meta_symbol_242)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_246, sizeof(meta_symbol_246)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_243, sizeof(meta_symbol_243)-1), 0, NULL);
 }
 
 void meta_action_45(void* runtime, void* variables) {
@@ -1494,38 +1488,38 @@ void meta_action_45(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_250, sizeof(meta_symbol_250)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_251, sizeof(meta_symbol_251)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_247, sizeof(meta_symbol_247)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_248, sizeof(meta_symbol_248)-1), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_252, sizeof(meta_symbol_252)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_253, sizeof(meta_symbol_253)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_249, sizeof(meta_symbol_249)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_250, sizeof(meta_symbol_250)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_254, sizeof(meta_symbol_254)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_251, sizeof(meta_symbol_251)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_255, sizeof(meta_symbol_255)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_256, sizeof(meta_symbol_256)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_252, sizeof(meta_symbol_252)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_253, sizeof(meta_symbol_253)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_257, sizeof(meta_symbol_257)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_254, sizeof(meta_symbol_254)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_258, sizeof(meta_symbol_258)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_255, sizeof(meta_symbol_255)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_259, sizeof(meta_symbol_259)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_256, sizeof(meta_symbol_256)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_260, sizeof(meta_symbol_260)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_257, sizeof(meta_symbol_257)-1), 0, NULL);
 }
 
 void meta_action_46(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_262, sizeof(meta_symbol_262)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_259, sizeof(meta_symbol_259)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_263, sizeof(meta_symbol_263)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_260, sizeof(meta_symbol_260)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_264, sizeof(meta_symbol_264)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_261, sizeof(meta_symbol_261)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_265, sizeof(meta_symbol_265)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_262, sizeof(meta_symbol_262)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_266, sizeof(meta_symbol_266)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_263, sizeof(meta_symbol_263)-1), 0, NULL);
 }
 
 void meta_action_47(void* runtime, void* variables) {
@@ -1534,39 +1528,39 @@ void meta_action_47(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_268, sizeof(meta_symbol_268)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_269, sizeof(meta_symbol_269)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_265, sizeof(meta_symbol_265)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_266, sizeof(meta_symbol_266)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_270, sizeof(meta_symbol_270)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_267, sizeof(meta_symbol_267)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_271, sizeof(meta_symbol_271)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_268, sizeof(meta_symbol_268)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_272, sizeof(meta_symbol_272)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_269, sizeof(meta_symbol_269)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_273, sizeof(meta_symbol_273)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_270, sizeof(meta_symbol_270)-1), 0, NULL);
 }
 
 void meta_action_48(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_274, sizeof(meta_symbol_274)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_271, sizeof(meta_symbol_271)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_275, sizeof(meta_symbol_275)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_272, sizeof(meta_symbol_272)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_276, sizeof(meta_symbol_276)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_273, sizeof(meta_symbol_273)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_277, sizeof(meta_symbol_277)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_274, sizeof(meta_symbol_274)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_278, sizeof(meta_symbol_278)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_275, sizeof(meta_symbol_275)-1), 0, NULL);
 }
 
 void meta_action_49(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_279, sizeof(meta_symbol_279)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_276, sizeof(meta_symbol_276)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_280, sizeof(meta_symbol_280)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_277, sizeof(meta_symbol_277)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_281, sizeof(meta_symbol_281)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_278, sizeof(meta_symbol_278)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_282, sizeof(meta_symbol_282)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_279, sizeof(meta_symbol_279)-1), 0, NULL);
 }
 
 void meta_action_50(void* runtime, void* variables) {
@@ -1576,90 +1570,90 @@ void meta_action_50(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_283, sizeof(meta_symbol_283)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_280, sizeof(meta_symbol_280)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_284, sizeof(meta_symbol_284)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_281, sizeof(meta_symbol_281)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholders;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_285, sizeof(meta_symbol_285)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_282, sizeof(meta_symbol_282)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_286, sizeof(meta_symbol_286)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_283, sizeof(meta_symbol_283)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_placeholderVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_placeholderVars);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_287, sizeof(meta_symbol_287)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_288, sizeof(meta_symbol_288)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_284, sizeof(meta_symbol_284)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_285, sizeof(meta_symbol_285)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_289, sizeof(meta_symbol_289)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_290, sizeof(meta_symbol_290)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_286, sizeof(meta_symbol_286)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_287, sizeof(meta_symbol_287)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_288, sizeof(meta_symbol_288)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_289, sizeof(meta_symbol_289)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_290, sizeof(meta_symbol_290)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_291, sizeof(meta_symbol_291)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_292, sizeof(meta_symbol_292)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_293, sizeof(meta_symbol_293)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_294, sizeof(meta_symbol_294)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_295, sizeof(meta_symbol_295)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_296, sizeof(meta_symbol_296)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_297, sizeof(meta_symbol_297)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_298, sizeof(meta_symbol_298)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_299, sizeof(meta_symbol_299)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_296, sizeof(meta_symbol_296)-1), 0, NULL);
 }
 
 void meta_action_51(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_300, sizeof(meta_symbol_300)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_297, sizeof(meta_symbol_297)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_301, sizeof(meta_symbol_301)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_298, sizeof(meta_symbol_298)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_302, sizeof(meta_symbol_302)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_299, sizeof(meta_symbol_299)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_303, sizeof(meta_symbol_303)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_300, sizeof(meta_symbol_300)-1), 0, NULL);
 }
 
 void meta_action_52(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_308, sizeof(meta_symbol_308)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_305, sizeof(meta_symbol_305)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_309, sizeof(meta_symbol_309)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_306, sizeof(meta_symbol_306)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_310, sizeof(meta_symbol_310)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_307, sizeof(meta_symbol_307)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_311, sizeof(meta_symbol_311)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_308, sizeof(meta_symbol_308)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_312, sizeof(meta_symbol_312)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_309, sizeof(meta_symbol_309)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_313, sizeof(meta_symbol_313)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_310, sizeof(meta_symbol_310)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_314, sizeof(meta_symbol_314)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_311, sizeof(meta_symbol_311)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_315, sizeof(meta_symbol_315)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_312, sizeof(meta_symbol_312)-1), 0, NULL);
 }
 
 void meta_action_53(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_318, sizeof(meta_symbol_318)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_315, sizeof(meta_symbol_315)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_319, sizeof(meta_symbol_319)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_316, sizeof(meta_symbol_316)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_320, sizeof(meta_symbol_320)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_317, sizeof(meta_symbol_317)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_321, sizeof(meta_symbol_321)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_318, sizeof(meta_symbol_318)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_322, sizeof(meta_symbol_322)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_319, sizeof(meta_symbol_319)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_323, sizeof(meta_symbol_323)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_320, sizeof(meta_symbol_320)-1), 0, NULL);
 }
 
 void meta_action_54(void* runtime, void* variables) {
@@ -1671,9 +1665,9 @@ void meta_action_54(void* runtime, void* variables) {
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     action = (((struct meta_Action54Vars*)variables)->x);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action.input_buffer, action.start, action.end))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_324, sizeof(meta_symbol_324)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_321, sizeof(meta_symbol_321)-1), 0, NULL);
         meta_action_run(&(((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_325, sizeof(meta_symbol_325)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_322, sizeof(meta_symbol_322)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     meta_action_run(&(((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
@@ -1689,63 +1683,63 @@ void meta_action_67(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholderVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_339, sizeof(meta_symbol_339)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_340, sizeof(meta_symbol_340)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_336, sizeof(meta_symbol_336)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_337, sizeof(meta_symbol_337)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_341, sizeof(meta_symbol_341)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_338, sizeof(meta_symbol_338)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_342, sizeof(meta_symbol_342)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_339, sizeof(meta_symbol_339)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_343, sizeof(meta_symbol_343)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_340, sizeof(meta_symbol_340)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_344, sizeof(meta_symbol_344)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_341, sizeof(meta_symbol_341)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_345, sizeof(meta_symbol_345)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_342, sizeof(meta_symbol_342)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_346, sizeof(meta_symbol_346)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_343, sizeof(meta_symbol_343)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_347, sizeof(meta_symbol_347)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_344, sizeof(meta_symbol_344)-1), 0, NULL);
 }
 
 void meta_action_68(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_348, sizeof(meta_symbol_348)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_345, sizeof(meta_symbol_345)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_349, sizeof(meta_symbol_349)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_346, sizeof(meta_symbol_346)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_350, sizeof(meta_symbol_350)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_347, sizeof(meta_symbol_347)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_351, sizeof(meta_symbol_351)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_348, sizeof(meta_symbol_348)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_352, sizeof(meta_symbol_352)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_349, sizeof(meta_symbol_349)-1), 0, NULL);
 }
 
 void meta_action_69(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_356, sizeof(meta_symbol_356)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_353, sizeof(meta_symbol_353)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_357, sizeof(meta_symbol_357)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_354, sizeof(meta_symbol_354)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_358, sizeof(meta_symbol_358)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_355, sizeof(meta_symbol_355)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_359, sizeof(meta_symbol_359)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_356, sizeof(meta_symbol_356)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_360, sizeof(meta_symbol_360)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_357, sizeof(meta_symbol_357)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_361, sizeof(meta_symbol_361)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_358, sizeof(meta_symbol_358)-1), 0, NULL);
 }
 
 void meta_action_70(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_364, sizeof(meta_symbol_364)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_361, sizeof(meta_symbol_361)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_365, sizeof(meta_symbol_365)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_362, sizeof(meta_symbol_362)-1), 0, NULL);
 }
 
 void meta_action_71(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_366, sizeof(meta_symbol_366)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_363, sizeof(meta_symbol_363)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action71Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_367, sizeof(meta_symbol_367)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_364, sizeof(meta_symbol_364)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action71Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_368, sizeof(meta_symbol_368)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_365, sizeof(meta_symbol_365)-1), 0, NULL);
 }
 
 void meta_action_73(void* runtime, void* variables) {
@@ -1758,46 +1752,46 @@ void meta_action_74(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_372, sizeof(meta_symbol_372)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_369, sizeof(meta_symbol_369)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_373, sizeof(meta_symbol_373)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_370, sizeof(meta_symbol_370)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_374, sizeof(meta_symbol_374)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_371, sizeof(meta_symbol_371)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action74Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_375, sizeof(meta_symbol_375)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_372, sizeof(meta_symbol_372)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_376, sizeof(meta_symbol_376)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_373, sizeof(meta_symbol_373)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action74Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_377, sizeof(meta_symbol_377)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_374, sizeof(meta_symbol_374)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_378, sizeof(meta_symbol_378)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_375, sizeof(meta_symbol_375)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_379, sizeof(meta_symbol_379)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_376, sizeof(meta_symbol_376)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_380, sizeof(meta_symbol_380)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_377, sizeof(meta_symbol_377)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_381, sizeof(meta_symbol_381)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_378, sizeof(meta_symbol_378)-1), 0, NULL);
 }
 
 void meta_action_75(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action75Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_382, sizeof(meta_symbol_382)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_379, sizeof(meta_symbol_379)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action75Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_383, sizeof(meta_symbol_383)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_380, sizeof(meta_symbol_380)-1), 0, NULL);
 }
 
 void meta_action_76(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_384, sizeof(meta_symbol_384)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_381, sizeof(meta_symbol_381)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_385, sizeof(meta_symbol_385)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_382, sizeof(meta_symbol_382)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_386, sizeof(meta_symbol_386)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_383, sizeof(meta_symbol_383)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action76Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_387, sizeof(meta_symbol_387)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_384, sizeof(meta_symbol_384)-1), 0, NULL);
 }
 
 void meta_action_77(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_389, sizeof(meta_symbol_389)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_386, sizeof(meta_symbol_386)-1), 0, NULL);
 }
 
 void meta_action_78(void* runtime, void* variables) {
@@ -1809,9 +1803,9 @@ void meta_action_78(void* runtime, void* variables) {
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     action = (((struct meta_Action78Vars*)variables)->x);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action.input_buffer, action.start, action.end))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_392, sizeof(meta_symbol_392)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_389, sizeof(meta_symbol_389)-1), 0, NULL);
         meta_action_run(&(((struct meta_Action78Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_393, sizeof(meta_symbol_393)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_390, sizeof(meta_symbol_390)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     meta_action_run(&(((struct meta_Action78Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
@@ -1824,27 +1818,27 @@ void meta_action_81(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_397, sizeof(meta_symbol_397)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_394, sizeof(meta_symbol_394)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_398, sizeof(meta_symbol_398)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_395, sizeof(meta_symbol_395)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_399, sizeof(meta_symbol_399)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_396, sizeof(meta_symbol_396)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action81Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_400, sizeof(meta_symbol_400)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_397, sizeof(meta_symbol_397)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_401, sizeof(meta_symbol_401)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_398, sizeof(meta_symbol_398)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_402, sizeof(meta_symbol_402)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_399, sizeof(meta_symbol_399)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_403, sizeof(meta_symbol_403)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_400, sizeof(meta_symbol_400)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_404, sizeof(meta_symbol_404)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_401, sizeof(meta_symbol_401)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_405, sizeof(meta_symbol_405)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_402, sizeof(meta_symbol_402)-1), 0, NULL);
 }
 
 void meta_action_83(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_407, sizeof(meta_symbol_407)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_404, sizeof(meta_symbol_404)-1), 0, NULL);
 }
 
 MetaAction meta_rule_main(MetaParseState* parse_state) {
@@ -1856,8 +1850,7 @@ MetaAction meta_rule_main(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action1Vars* vars1 = arena_alloc(parse_state->arena, sizeof(struct meta_Action1Vars));
     star_variables = list_create(parse_state->arena);
@@ -1866,7 +1859,7 @@ MetaAction meta_rule_main(MetaParseState* parse_state) {
         star_pos = parse_state->pos;
         _ = meta_rule_metaField(parse_state);
         if (!_.valid) {
-            parse_state->pos = star_pos;
+            meta_parse_state_backtrack(parse_state, star_pos);
             break;
         }
         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
@@ -1891,8 +1884,7 @@ MetaAction meta_rule_metaField(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action2Vars* vars2 = arena_alloc(parse_state->arena, sizeof(struct meta_Action2Vars));
     data = string_from_cstring(parse_state->arena, meta_symbol_1, sizeof(meta_symbol_1)-1);
@@ -1923,8 +1915,7 @@ MetaAction meta_rule_file(MetaParseState* parse_state) {
     unsigned int star_start_pos;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action3Vars* vars3 = arena_alloc(parse_state->arena, sizeof(struct meta_Action3Vars));
     star_variables = list_create(parse_state->arena);
@@ -1933,7 +1924,7 @@ MetaAction meta_rule_file(MetaParseState* parse_state) {
         star_pos = parse_state->pos;
         _ = meta_rule_rule(parse_state);
         if (!_.valid) {
-            parse_state->pos = star_pos;
+            meta_parse_state_backtrack(parse_state, star_pos);
             break;
         }
         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
@@ -1955,8 +1946,7 @@ MetaAction meta_rule_file(MetaParseState* parse_state) {
             } else {
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
             }
-            meta_highlight_clear(parse_state, nlookahead_pos, parse_state->pos);
-            parse_state->pos = nlookahead_pos;
+            meta_parse_state_backtrack(parse_state, nlookahead_pos);
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
                 return meta_action_create(meta_action_3, (void*)vars3, parse_state->input_buffer, action_start_pos, parse_state->pos);
@@ -1973,8 +1963,7 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action4Vars* vars4 = arena_alloc(parse_state->arena, sizeof(struct meta_Action4Vars));
     _ = meta_rule_space(parse_state);
@@ -2031,8 +2020,7 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action5Vars* vars5 = arena_alloc(parse_state->arena, sizeof(struct meta_Action5Vars));
     data = string_from_cstring(parse_state->arena, meta_symbol_89, sizeof(meta_symbol_89)-1);
@@ -2059,8 +2047,7 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action6Vars* vars6 = arena_alloc(parse_state->arena, sizeof(struct meta_Action6Vars));
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
@@ -2074,8 +2061,7 @@ MetaAction meta_rule_metaName(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Meta;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     _ = meta_rule_name(parse_state);
     if (_.valid) {
@@ -2094,8 +2080,7 @@ MetaAction meta_rule_ors(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action8Vars* vars8 = arena_alloc(parse_state->arena, sizeof(struct meta_Action8Vars));
     _ = meta_rule_maybeorbar(parse_state);
@@ -2109,7 +2094,7 @@ MetaAction meta_rule_ors(MetaParseState* parse_state) {
                 star_pos = parse_state->pos;
                 _ = meta_rule_restorcase(parse_state);
                 if (!_.valid) {
-                    parse_state->pos = star_pos;
+                    meta_parse_state_backtrack(parse_state, star_pos);
                     break;
                 }
                 list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
@@ -2131,8 +2116,7 @@ MetaAction meta_rule_restorcase(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action9Vars* vars9 = arena_alloc(parse_state->arena, sizeof(struct meta_Action9Vars));
     _ = meta_rule_orbar(parse_state);
@@ -2153,16 +2137,14 @@ MetaAction meta_rule_maybeorbar(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     _ = meta_rule_orbar(parse_state);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action11Vars* vars11 = arena_alloc(parse_state->arena, sizeof(struct meta_Action11Vars));
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
@@ -2176,8 +2158,7 @@ MetaAction meta_rule_orbar(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     _ = meta_rule_space(parse_state);
     if (_.valid) {
@@ -2196,8 +2177,7 @@ MetaAction meta_rule_orcase(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action13Vars* vars13 = arena_alloc(parse_state->arena, sizeof(struct meta_Action13Vars));
     _ = meta_rule_matchAnd(parse_state);
@@ -2215,8 +2195,7 @@ MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action14Vars* vars14 = arena_alloc(parse_state->arena, sizeof(struct meta_Action14Vars));
     _ = meta_rule_space(parse_state);
@@ -2232,8 +2211,7 @@ MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action15Vars* vars15 = arena_alloc(parse_state->arena, sizeof(struct meta_Action15Vars));
     _ = meta_rule_action(parse_state);
@@ -2251,8 +2229,7 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action16Vars* vars16 = arena_alloc(parse_state->arena, sizeof(struct meta_Action16Vars));
     _ = meta_rule_opNegativeLookahead(parse_state);
@@ -2264,8 +2241,7 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
             return meta_action_create(meta_action_16, (void*)vars16, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action17Vars* vars17 = arena_alloc(parse_state->arena, sizeof(struct meta_Action17Vars));
     _ = meta_rule_opLookahead(parse_state);
@@ -2277,8 +2253,7 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
             return meta_action_create(meta_action_17, (void*)vars17, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action18Vars* vars18 = arena_alloc(parse_state->arena, sizeof(struct meta_Action18Vars));
     _ = meta_rule_matchExprRepeat(parse_state);
@@ -2300,8 +2275,7 @@ MetaAction meta_rule_matchAssign(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action19Vars* vars19 = arena_alloc(parse_state->arena, sizeof(struct meta_Action19Vars));
     _ = meta_rule_opBind(parse_state);
@@ -2313,8 +2287,7 @@ MetaAction meta_rule_matchAssign(MetaParseState* parse_state) {
             return meta_action_create(meta_action_19, (void*)vars19, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action20Vars* vars20 = arena_alloc(parse_state->arena, sizeof(struct meta_Action20Vars));
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
@@ -2329,8 +2302,7 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     unsigned int lookahead_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action21Vars* vars21 = arena_alloc(parse_state->arena, sizeof(struct meta_Action21Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
@@ -2345,16 +2317,14 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
             } else {
                 _ = meta_action_create_invalid();
             }
-            meta_highlight_clear(parse_state, lookahead_pos, parse_state->pos);
-            parse_state->pos = lookahead_pos;
+            meta_parse_state_backtrack(parse_state, lookahead_pos);
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
                 return meta_action_create(meta_action_21, (void*)vars21, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action22Vars* vars22 = arena_alloc(parse_state->arena, sizeof(struct meta_Action22Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
@@ -2366,8 +2336,7 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
             return meta_action_create(meta_action_22, (void*)vars22, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action23Vars* vars23 = arena_alloc(parse_state->arena, sizeof(struct meta_Action23Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
@@ -2386,10 +2355,9 @@ MetaAction meta_rule_opBind(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_158, sizeof(meta_symbol_158)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_155, sizeof(meta_symbol_155)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2410,10 +2378,9 @@ MetaAction meta_rule_opStar(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_159, sizeof(meta_symbol_159)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_156, sizeof(meta_symbol_156)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2434,10 +2401,9 @@ MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_160, sizeof(meta_symbol_160)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_157, sizeof(meta_symbol_157)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2458,10 +2424,9 @@ MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_161, sizeof(meta_symbol_161)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_158, sizeof(meta_symbol_158)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2482,10 +2447,9 @@ MetaAction meta_rule_opAny(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_162, sizeof(meta_symbol_162)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_159, sizeof(meta_symbol_159)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2506,10 +2470,9 @@ MetaAction meta_rule_opOr(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_163, sizeof(meta_symbol_163)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_160, sizeof(meta_symbol_160)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2530,10 +2493,9 @@ MetaAction meta_rule_opAction(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_164, sizeof(meta_symbol_164)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_161, sizeof(meta_symbol_161)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2556,14 +2518,13 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     unsigned int star_start_pos;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action31Vars* vars31 = arena_alloc(parse_state->arena, sizeof(struct meta_Action31Vars));
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = string_from_cstring(parse_state->arena, meta_symbol_165, sizeof(meta_symbol_165)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_162, sizeof(meta_symbol_162)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2571,7 +2532,7 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
             _ = meta_action_create_invalid();
         }
         if (!_.valid) {
-            parse_state->pos = star_pos;
+            meta_parse_state_backtrack(parse_state, star_pos);
             break;
         }
     }
@@ -2593,8 +2554,7 @@ MetaAction meta_rule_maybeBit(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action32Vars* vars32 = arena_alloc(parse_state->arena, sizeof(struct meta_Action32Vars));
     _ = meta_rule_bit(parse_state);
@@ -2603,8 +2563,7 @@ MetaAction meta_rule_maybeBit(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(meta_action_32, (void*)vars32, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action33Vars* vars33 = arena_alloc(parse_state->arena, sizeof(struct meta_Action33Vars));
     _ = meta_rule_lower(parse_state);
@@ -2622,11 +2581,10 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action34Vars* vars34 = arena_alloc(parse_state->arena, sizeof(struct meta_Action34Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_169, sizeof(meta_symbol_169)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_166, sizeof(meta_symbol_166)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2637,11 +2595,10 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(meta_action_34, (void*)vars34, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action35Vars* vars35 = arena_alloc(parse_state->arena, sizeof(struct meta_Action35Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_170, sizeof(meta_symbol_170)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_167, sizeof(meta_symbol_167)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2665,8 +2622,7 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action36Vars* vars36 = arena_alloc(parse_state->arena, sizeof(struct meta_Action36Vars));
     _ = meta_rule_ruleName(parse_state);
@@ -2675,11 +2631,10 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(meta_action_36, (void*)vars36, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action37Vars* vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_175, sizeof(meta_symbol_175)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_172, sizeof(meta_symbol_172)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2693,7 +2648,7 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
             star_pos = parse_state->pos;
             _ = meta_rule_sepBit(parse_state);
             if (!_.valid) {
-                parse_state->pos = star_pos;
+                meta_parse_state_backtrack(parse_state, star_pos);
                 break;
             }
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
@@ -2705,8 +2660,7 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
             return meta_action_create(meta_action_37, (void*)vars37, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action38Vars* vars38 = arena_alloc(parse_state->arena, sizeof(struct meta_Action38Vars));
     _ = meta_rule_opAny(parse_state);
@@ -2714,8 +2668,7 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(meta_action_38, (void*)vars38, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action39Vars* vars39 = arena_alloc(parse_state->arena, sizeof(struct meta_Action39Vars));
     _ = meta_rule_charString(parse_state);
@@ -2737,8 +2690,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action40Vars* vars40 = arena_alloc(parse_state->arena, sizeof(struct meta_Action40Vars));
     _ = meta_rule_space(parse_state);
@@ -2747,7 +2699,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
         if (_.valid) {
             _ = meta_rule_space(parse_state);
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_204, sizeof(meta_symbol_204)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_201, sizeof(meta_symbol_201)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2761,7 +2713,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
                         star_pos = parse_state->pos;
                         _ = meta_rule_actionexpr(parse_state);
                         if (!_.valid) {
-                            parse_state->pos = star_pos;
+                            meta_parse_state_backtrack(parse_state, star_pos);
                             break;
                         }
                         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
@@ -2771,7 +2723,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = string_from_cstring(parse_state->arena, meta_symbol_205, sizeof(meta_symbol_205)-1);
+                            data = string_from_cstring(parse_state->arena, meta_symbol_202, sizeof(meta_symbol_202)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2788,8 +2740,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action41Vars* vars41 = arena_alloc(parse_state->arena, sizeof(struct meta_Action41Vars));
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
@@ -2804,8 +2755,7 @@ MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     unsigned int lookahead_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action42Vars* vars42 = arena_alloc(parse_state->arena, sizeof(struct meta_Action42Vars));
     lookahead_pos = parse_state->pos;
@@ -2820,8 +2770,7 @@ MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
     } else {
         _ = meta_action_create_invalid();
     }
-    meta_highlight_clear(parse_state, lookahead_pos, parse_state->pos);
-    parse_state->pos = lookahead_pos;
+    meta_parse_state_backtrack(parse_state, lookahead_pos);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(meta_action_42, (void*)vars42, parse_state->input_buffer, action_start_pos, parse_state->pos);
@@ -2839,13 +2788,12 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action43Vars* vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_226, sizeof(meta_symbol_226)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_223, sizeof(meta_symbol_223)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2856,7 +2804,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_nameAsActionLookup(parse_state);
             vars43->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_227, sizeof(meta_symbol_227)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_224, sizeof(meta_symbol_224)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2870,7 +2818,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                         star_pos = parse_state->pos;
                         _ = meta_rule_actionexpr(parse_state);
                         if (!_.valid) {
-                            parse_state->pos = star_pos;
+                            meta_parse_state_backtrack(parse_state, star_pos);
                             break;
                         }
                         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
@@ -2880,7 +2828,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = string_from_cstring(parse_state->arena, meta_symbol_228, sizeof(meta_symbol_228)-1);
+                            data = string_from_cstring(parse_state->arena, meta_symbol_225, sizeof(meta_symbol_225)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2901,13 +2849,12 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action44Vars* vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_237, sizeof(meta_symbol_237)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_234, sizeof(meta_symbol_234)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2918,7 +2865,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_string(parse_state);
             vars44->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_238, sizeof(meta_symbol_238)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_235, sizeof(meta_symbol_235)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2936,13 +2883,12 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action45Vars* vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_247, sizeof(meta_symbol_247)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_244, sizeof(meta_symbol_244)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2955,7 +2901,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_248, sizeof(meta_symbol_248)-1);
+                    data = string_from_cstring(parse_state->arena, meta_symbol_245, sizeof(meta_symbol_245)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2969,7 +2915,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                             star_pos = parse_state->pos;
                             _ = meta_rule_actionexpr(parse_state);
                             if (!_.valid) {
-                                parse_state->pos = star_pos;
+                                meta_parse_state_backtrack(parse_state, star_pos);
                                 break;
                             }
                             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
@@ -2979,7 +2925,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                         if (_.valid) {
                             _ = meta_rule_space(parse_state);
                             if (_.valid) {
-                                data = string_from_cstring(parse_state->arena, meta_symbol_249, sizeof(meta_symbol_249)-1);
+                                data = string_from_cstring(parse_state->arena, meta_symbol_246, sizeof(meta_symbol_246)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3001,13 +2947,12 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action46Vars* vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_261, sizeof(meta_symbol_261)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_258, sizeof(meta_symbol_258)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3027,13 +2972,12 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action47Vars* vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_267, sizeof(meta_symbol_267)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_264, sizeof(meta_symbol_264)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3053,8 +2997,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action48Vars* vars48 = arena_alloc(parse_state->arena, sizeof(struct meta_Action48Vars));
     _ = meta_rule_space(parse_state);
@@ -3070,8 +3013,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action49Vars* vars49 = arena_alloc(parse_state->arena, sizeof(struct meta_Action49Vars));
     _ = meta_rule_space(parse_state);
@@ -3087,8 +3029,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action50Vars* vars50 = arena_alloc(parse_state->arena, sizeof(struct meta_Action50Vars));
     _ = meta_rule_space(parse_state);
@@ -3104,8 +3045,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action51Vars* vars51 = arena_alloc(parse_state->arena, sizeof(struct meta_Action51Vars));
     _ = meta_rule_space(parse_state);
@@ -3121,13 +3061,12 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action52Vars* vars52 = arena_alloc(parse_state->arena, sizeof(struct meta_Action52Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_304, sizeof(meta_symbol_304)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_301, sizeof(meta_symbol_301)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3138,7 +3077,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_name(parse_state);
             vars52->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_305, sizeof(meta_symbol_305)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_302, sizeof(meta_symbol_302)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3149,7 +3088,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     _ = meta_rule_wvar(parse_state);
                     vars52->y = _;
                     if (_.valid) {
-                        data = string_from_cstring(parse_state->arena, meta_symbol_306, sizeof(meta_symbol_306)-1);
+                        data = string_from_cstring(parse_state->arena, meta_symbol_303, sizeof(meta_symbol_303)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3160,7 +3099,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                             _ = meta_rule_actionPrimitiveExpression(parse_state);
                             vars52->z = _;
                             if (_.valid) {
-                                data = string_from_cstring(parse_state->arena, meta_symbol_307, sizeof(meta_symbol_307)-1);
+                                data = string_from_cstring(parse_state->arena, meta_symbol_304, sizeof(meta_symbol_304)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3182,13 +3121,12 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action53Vars* vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_316, sizeof(meta_symbol_316)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_313, sizeof(meta_symbol_313)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3202,7 +3140,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                 star_pos = parse_state->pos;
                 _ = meta_rule_actionexpr(parse_state);
                 if (!_.valid) {
-                    parse_state->pos = star_pos;
+                    meta_parse_state_backtrack(parse_state, star_pos);
                     break;
                 }
                 list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
@@ -3212,7 +3150,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_317, sizeof(meta_symbol_317)-1);
+                    data = string_from_cstring(parse_state->arena, meta_symbol_314, sizeof(meta_symbol_314)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3240,8 +3178,7 @@ MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action54Vars* vars54 = arena_alloc(parse_state->arena, sizeof(struct meta_Action54Vars));
     _ = meta_rule_name(parse_state);
@@ -3259,8 +3196,7 @@ MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action55Vars* vars55 = arena_alloc(parse_state->arena, sizeof(struct meta_Action55Vars));
     _ = meta_rule_dotname(parse_state);
@@ -3269,8 +3205,7 @@ MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(meta_action_55, (void*)vars55, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     _ = meta_rule_digit(parse_state);
     if (_.valid) {
@@ -3287,10 +3222,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_326, sizeof(meta_symbol_326)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_323, sizeof(meta_symbol_323)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3301,10 +3235,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_327, sizeof(meta_symbol_327)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_324, sizeof(meta_symbol_324)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3315,10 +3248,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_328, sizeof(meta_symbol_328)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_325, sizeof(meta_symbol_325)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3329,10 +3261,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_329, sizeof(meta_symbol_329)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_326, sizeof(meta_symbol_326)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3343,10 +3274,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_330, sizeof(meta_symbol_330)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_327, sizeof(meta_symbol_327)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3357,10 +3287,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_331, sizeof(meta_symbol_331)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_328, sizeof(meta_symbol_328)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3371,10 +3300,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_332, sizeof(meta_symbol_332)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_329, sizeof(meta_symbol_329)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3385,10 +3313,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_333, sizeof(meta_symbol_333)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_330, sizeof(meta_symbol_330)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3399,10 +3326,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_334, sizeof(meta_symbol_334)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_331, sizeof(meta_symbol_331)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3413,10 +3339,9 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_335, sizeof(meta_symbol_335)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_332, sizeof(meta_symbol_332)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3437,11 +3362,10 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action67Vars* vars67 = arena_alloc(parse_state->arena, sizeof(struct meta_Action67Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_336, sizeof(meta_symbol_336)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_333, sizeof(meta_symbol_333)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3454,7 +3378,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
             _ = meta_rule_string(parse_state);
             vars67->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_337, sizeof(meta_symbol_337)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_334, sizeof(meta_symbol_334)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3467,7 +3391,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = string_from_cstring(parse_state->arena, meta_symbol_338, sizeof(meta_symbol_338)-1);
+                            data = string_from_cstring(parse_state->arena, meta_symbol_335, sizeof(meta_symbol_335)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3501,8 +3425,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action68Vars* vars68 = arena_alloc(parse_state->arena, sizeof(struct meta_Action68Vars));
     _ = meta_rule_wvar(parse_state);
@@ -3515,11 +3438,10 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
             return meta_action_create(meta_action_68, (void*)vars68, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action69Vars* vars69 = arena_alloc(parse_state->arena, sizeof(struct meta_Action69Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_353, sizeof(meta_symbol_353)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_350, sizeof(meta_symbol_350)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3530,7 +3452,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
         _ = meta_rule_wvar(parse_state);
         vars69->x = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_354, sizeof(meta_symbol_354)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_351, sizeof(meta_symbol_351)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3541,7 +3463,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
                 _ = meta_rule_dotname(parse_state);
                 vars69->y = _;
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_355, sizeof(meta_symbol_355)-1);
+                    data = string_from_cstring(parse_state->arena, meta_symbol_352, sizeof(meta_symbol_352)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3560,11 +3482,10 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
             }
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action70Vars* vars70 = arena_alloc(parse_state->arena, sizeof(struct meta_Action70Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_362, sizeof(meta_symbol_362)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_359, sizeof(meta_symbol_359)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3578,7 +3499,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
             star_pos = parse_state->pos;
             _ = meta_rule_numberPart(parse_state);
             if (!_.valid) {
-                parse_state->pos = star_pos;
+                meta_parse_state_backtrack(parse_state, star_pos);
                 break;
             }
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
@@ -3586,7 +3507,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars70->xs = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_363, sizeof(meta_symbol_363)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_360, sizeof(meta_symbol_360)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3608,8 +3529,7 @@ MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action71Vars* vars71 = arena_alloc(parse_state->arena, sizeof(struct meta_Action71Vars));
     _ = meta_rule_space(parse_state);
@@ -3635,10 +3555,9 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_369, sizeof(meta_symbol_369)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_366, sizeof(meta_symbol_366)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3652,8 +3571,7 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
             return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action73Vars* vars73 = arena_alloc(parse_state->arena, sizeof(struct meta_Action73Vars));
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
@@ -3671,11 +3589,10 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action74Vars* vars74 = arena_alloc(parse_state->arena, sizeof(struct meta_Action74Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_370, sizeof(meta_symbol_370)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_367, sizeof(meta_symbol_367)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3689,7 +3606,7 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
             star_pos = parse_state->pos;
             _ = meta_rule_stringInner(parse_state);
             if (!_.valid) {
-                parse_state->pos = star_pos;
+                meta_parse_state_backtrack(parse_state, star_pos);
                 break;
             }
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
@@ -3697,7 +3614,7 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars74->xs = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_371, sizeof(meta_symbol_371)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_368, sizeof(meta_symbol_368)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3723,8 +3640,7 @@ MetaAction meta_rule_dotname(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action75Vars* vars75 = arena_alloc(parse_state->arena, sizeof(struct meta_Action75Vars));
     _ = meta_rule_nameAsActionLookup(parse_state);
@@ -3746,8 +3662,7 @@ MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action76Vars* vars76 = arena_alloc(parse_state->arena, sizeof(struct meta_Action76Vars));
     _ = meta_rule_variableName(parse_state);
@@ -3767,11 +3682,10 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     String* data;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action77Vars* vars77 = arena_alloc(parse_state->arena, sizeof(struct meta_Action77Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_388, sizeof(meta_symbol_388)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_385, sizeof(meta_symbol_385)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3786,8 +3700,7 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
         } else {
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
         }
-        meta_highlight_clear(parse_state, nlookahead_pos, parse_state->pos);
-        parse_state->pos = nlookahead_pos;
+        meta_parse_state_backtrack(parse_state, nlookahead_pos);
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
             return meta_action_create(meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos);
@@ -3803,11 +3716,10 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action78Vars* vars78 = arena_alloc(parse_state->arena, sizeof(struct meta_Action78Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_390, sizeof(meta_symbol_390)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_387, sizeof(meta_symbol_387)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3823,7 +3735,7 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
         }
         vars78->x = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_391, sizeof(meta_symbol_391)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_388, sizeof(meta_symbol_388)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3847,19 +3759,17 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     unsigned int nlookahead_pos;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     _ = meta_rule_stringEscape(parse_state);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_394, sizeof(meta_symbol_394)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_391, sizeof(meta_symbol_391)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3871,8 +3781,7 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     } else {
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
     }
-    meta_highlight_clear(parse_state, nlookahead_pos, parse_state->pos);
-    parse_state->pos = nlookahead_pos;
+    meta_parse_state_backtrack(parse_state, nlookahead_pos);
     if (_.valid) {
         if (parse_state->pos < parse_state->input_buffer->size) {
             parse_state->pos += 1;
@@ -3898,11 +3807,10 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action81Vars* vars81 = arena_alloc(parse_state->arena, sizeof(struct meta_Action81Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_395, sizeof(meta_symbol_395)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_392, sizeof(meta_symbol_392)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3916,7 +3824,7 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
             star_pos = parse_state->pos;
             _ = meta_rule_charStringInner(parse_state);
             if (!_.valid) {
-                parse_state->pos = star_pos;
+                meta_parse_state_backtrack(parse_state, star_pos);
                 break;
             }
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
@@ -3924,7 +3832,7 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars81->xs = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_396, sizeof(meta_symbol_396)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_393, sizeof(meta_symbol_393)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3948,19 +3856,17 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     String* data;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     _ = meta_rule_stringEscape(parse_state);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     struct meta_Action83Vars* vars83 = arena_alloc(parse_state->arena, sizeof(struct meta_Action83Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_406, sizeof(meta_symbol_406)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_403, sizeof(meta_symbol_403)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3971,11 +3877,10 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(meta_action_83, (void*)vars83, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_408, sizeof(meta_symbol_408)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_405, sizeof(meta_symbol_405)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3987,8 +3892,7 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     } else {
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
     }
-    meta_highlight_clear(parse_state, nlookahead_pos, parse_state->pos);
-    parse_state->pos = nlookahead_pos;
+    meta_parse_state_backtrack(parse_state, nlookahead_pos);
     if (_.valid) {
         if (parse_state->pos < parse_state->input_buffer->size) {
             parse_state->pos += 1;
@@ -4011,10 +3915,9 @@ MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_Escape;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_409, sizeof(meta_symbol_409)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_406, sizeof(meta_symbol_406)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4042,8 +3945,7 @@ MetaAction meta_rule_ruleName(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_RuleName;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     _ = meta_rule_name(parse_state);
     if (_.valid) {
@@ -4059,8 +3961,7 @@ MetaAction meta_rule_variableName(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_VariableName;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     _ = meta_rule_name(parse_state);
     if (_.valid) {
@@ -4078,8 +3979,7 @@ MetaAction meta_rule_name(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     _ = meta_rule_char(parse_state);
     if (_.valid) {
@@ -4088,7 +3988,7 @@ MetaAction meta_rule_name(MetaParseState* parse_state) {
             star_pos = parse_state->pos;
             _ = meta_rule_char(parse_state);
             if (!_.valid) {
-                parse_state->pos = star_pos;
+                meta_parse_state_backtrack(parse_state, star_pos);
                 break;
             }
         }
@@ -4107,16 +4007,14 @@ MetaAction meta_rule_char(MetaParseState* parse_state) {
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     _ = meta_rule_lower(parse_state);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     _ = meta_rule_upper(parse_state);
     if (_.valid) {
@@ -4133,8 +4031,46 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
+    action_start_pos = parse_state->pos;
+    data = string_from_cstring(parse_state->arena, meta_symbol_407, sizeof(meta_symbol_407)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = meta_action_create_invalid();
+    }
+    if (_.valid) {
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
+    action_start_pos = parse_state->pos;
+    data = string_from_cstring(parse_state->arena, meta_symbol_408, sizeof(meta_symbol_408)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = meta_action_create_invalid();
+    }
+    if (_.valid) {
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
+    action_start_pos = parse_state->pos;
+    data = string_from_cstring(parse_state->arena, meta_symbol_409, sizeof(meta_symbol_409)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = meta_action_create_invalid();
+    }
+    if (_.valid) {
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_410, sizeof(meta_symbol_410)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4147,8 +4083,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_411, sizeof(meta_symbol_411)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4161,8 +4096,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_412, sizeof(meta_symbol_412)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4175,8 +4109,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_413, sizeof(meta_symbol_413)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4189,8 +4122,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_414, sizeof(meta_symbol_414)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4203,8 +4135,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_415, sizeof(meta_symbol_415)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4217,8 +4148,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_416, sizeof(meta_symbol_416)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4231,8 +4161,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_417, sizeof(meta_symbol_417)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4245,8 +4174,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_418, sizeof(meta_symbol_418)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4259,8 +4187,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_419, sizeof(meta_symbol_419)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4273,8 +4200,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_420, sizeof(meta_symbol_420)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4287,8 +4213,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_421, sizeof(meta_symbol_421)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4301,8 +4226,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_422, sizeof(meta_symbol_422)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4315,8 +4239,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_423, sizeof(meta_symbol_423)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4329,8 +4252,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_424, sizeof(meta_symbol_424)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4343,8 +4265,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_425, sizeof(meta_symbol_425)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4357,8 +4278,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_426, sizeof(meta_symbol_426)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4371,8 +4291,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_427, sizeof(meta_symbol_427)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4385,8 +4304,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_428, sizeof(meta_symbol_428)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4399,8 +4317,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_429, sizeof(meta_symbol_429)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4413,8 +4330,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_430, sizeof(meta_symbol_430)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4427,8 +4343,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_431, sizeof(meta_symbol_431)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4441,8 +4356,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_432, sizeof(meta_symbol_432)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4455,8 +4369,17 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    return meta_action_create_invalid();
+}
+
+MetaAction meta_rule_upper(MetaParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    MetaAction _;
+    MetaHighlight highlight = MetaHighlight_None;
+    String* data;
+    or_backtrack_pos = parse_state->pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_433, sizeof(meta_symbol_433)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4469,8 +4392,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_434, sizeof(meta_symbol_434)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4483,8 +4405,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_435, sizeof(meta_symbol_435)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4497,18 +4418,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    return meta_action_create_invalid();
-}
-
-MetaAction meta_rule_upper(MetaParseState* parse_state) {
-    unsigned int or_backtrack_pos;
-    unsigned int action_start_pos;
-    MetaAction _;
-    MetaHighlight highlight = MetaHighlight_None;
-    String* data;
-    or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_436, sizeof(meta_symbol_436)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4521,8 +4431,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_437, sizeof(meta_symbol_437)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4535,8 +4444,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_438, sizeof(meta_symbol_438)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4549,8 +4457,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_439, sizeof(meta_symbol_439)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4563,8 +4470,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_440, sizeof(meta_symbol_440)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4577,8 +4483,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_441, sizeof(meta_symbol_441)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4591,8 +4496,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_442, sizeof(meta_symbol_442)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4605,8 +4509,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_443, sizeof(meta_symbol_443)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4619,8 +4522,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_444, sizeof(meta_symbol_444)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4633,8 +4535,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_445, sizeof(meta_symbol_445)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4647,8 +4548,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_446, sizeof(meta_symbol_446)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4661,8 +4561,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_447, sizeof(meta_symbol_447)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4675,8 +4574,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_448, sizeof(meta_symbol_448)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4689,8 +4587,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_449, sizeof(meta_symbol_449)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4703,8 +4600,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_450, sizeof(meta_symbol_450)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4717,8 +4613,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_451, sizeof(meta_symbol_451)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4731,8 +4626,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_452, sizeof(meta_symbol_452)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4745,8 +4639,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_453, sizeof(meta_symbol_453)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4759,8 +4652,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_454, sizeof(meta_symbol_454)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4773,8 +4665,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_455, sizeof(meta_symbol_455)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4787,8 +4678,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_456, sizeof(meta_symbol_456)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4801,8 +4691,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_457, sizeof(meta_symbol_457)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4815,8 +4704,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_458, sizeof(meta_symbol_458)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4829,48 +4717,6 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_459, sizeof(meta_symbol_459)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = meta_action_create_invalid();
-    }
-    if (_.valid) {
-        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_460, sizeof(meta_symbol_460)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = meta_action_create_invalid();
-    }
-    if (_.valid) {
-        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_461, sizeof(meta_symbol_461)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = meta_action_create_invalid();
-    }
-    if (_.valid) {
-        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
     return meta_action_create_invalid();
 }
 
@@ -4882,8 +4728,7 @@ MetaAction meta_rule_number(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     _ = meta_rule_digit(parse_state);
     if (_.valid) {
@@ -4892,7 +4737,7 @@ MetaAction meta_rule_number(MetaParseState* parse_state) {
             star_pos = parse_state->pos;
             _ = meta_rule_digit(parse_state);
             if (!_.valid) {
-                parse_state->pos = star_pos;
+                meta_parse_state_backtrack(parse_state, star_pos);
                 break;
             }
         }
@@ -4913,15 +4758,14 @@ MetaAction meta_rule_space(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
         _ = meta_rule_spacechar(parse_state);
         if (!_.valid) {
-            parse_state->pos = star_pos;
+            meta_parse_state_backtrack(parse_state, star_pos);
             break;
         }
     }
@@ -4940,10 +4784,9 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_462, sizeof(meta_symbol_462)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_459, sizeof(meta_symbol_459)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4954,10 +4797,9 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
-    parse_state->pos = or_backtrack_pos;
+    meta_parse_state_backtrack(parse_state, or_backtrack_pos);
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_463, sizeof(meta_symbol_463)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_460, sizeof(meta_symbol_460)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 77b9c4b..d99ef66 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -138,8 +138,7 @@ orcase = matchAnd:x -> {
             <variables
         < "};\n"
     }
-    "meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);\n"
-    "parse_state->pos = or_backtrack_pos;\n"
+    "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n"
     "action_start_pos = parse_state->pos;\n"
     $orInit
     <orInit
@@ -168,8 +167,7 @@ matchExpr =
         < "} else {\n" >
             "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"
         < "}\n"
-        "meta_highlight_clear(parse_state, nlookahead_pos, parse_state->pos);\n"
-        "parse_state->pos = nlookahead_pos;\n"
+        "meta_parse_state_backtrack(parse_state, nlookahead_pos);\n"
     }
     | opLookahead matchExprPrimitive:x -> {
         >ruleVars {
@@ -182,8 +180,7 @@ matchExpr =
         < "} else {\n" >
             "_ = meta_action_create_invalid();\n"
         < "}\n"
-        "meta_highlight_clear(parse_state, lookahead_pos, parse_state->pos);\n"
-        "parse_state->pos = lookahead_pos;\n"
+        "meta_parse_state_backtrack(parse_state, lookahead_pos);\n"
     }
     | matchExprRepeat:x matchAssign:y -> { x y }
     ;
@@ -211,7 +208,7 @@ matchExprRepeat =
             "star_pos = parse_state->pos;\n"
             x
             "if (!_.valid) {\n" >
-                "parse_state->pos = star_pos;\n"
+                "meta_parse_state_backtrack(parse_state, star_pos);\n"
                 "break;\n"
             < "}\n"
             "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n"
@@ -228,7 +225,7 @@ matchExprRepeat =
             "star_pos = parse_state->pos;\n"
             x
             "if (!_.valid) {\n" >
-                "parse_state->pos = star_pos;\n"
+                "meta_parse_state_backtrack(parse_state, star_pos);\n"
                 "break;\n"
             < "}\n"
         < "}\n"

commit a509e58b752b6d5a321c3ca63881c3fbee14c4c0
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sun Nov 23 12:08:36 2025 +0100

    Don't create star list if no binding (which means it is never used)

diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index 6f58b6a..60ae458 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -184,312 +184,325 @@ static char meta_symbol_141[] = "}\n";
 static char meta_symbol_142[] = "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n";
 static char meta_symbol_143[] = "}\n";
 static char meta_symbol_144[] = "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char meta_symbol_145[] = ":";
-static char meta_symbol_146[] = "*";
-static char meta_symbol_147[] = "&";
-static char meta_symbol_148[] = "!";
-static char meta_symbol_149[] = ".";
-static char meta_symbol_150[] = "|";
-static char meta_symbol_151[] = "->";
-static char meta_symbol_152[] = "_";
-static char meta_symbol_153[] = "bitpattern <<= 1;\n";
-static char meta_symbol_154[] = "bitmask <<= 1;\n";
-static char meta_symbol_155[] = "bitmask |= 1;\n";
-static char meta_symbol_156[] = "0";
-static char meta_symbol_157[] = "1";
-static char meta_symbol_158[] = "bitpattern |= 1;\n";
-static char meta_symbol_159[] = "_ = ";
-static char meta_symbol_160[] = "rule_";
-static char meta_symbol_161[] = "(parse_state);\n";
-static char meta_symbol_162[] = "0b";
-static char meta_symbol_163[] = "unsigned char bitpattern;\n";
-static char meta_symbol_164[] = "unsigned char bitpattern;\n";
-static char meta_symbol_165[] = "unsigned char bitmask;\n";
-static char meta_symbol_166[] = "unsigned char bitmask;\n";
-static char meta_symbol_167[] = "bitpattern = 0;\n";
-static char meta_symbol_168[] = "bitmask = 0;\n";
-static char meta_symbol_169[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
-static char meta_symbol_170[] = "parse_state->pos += 1;\n";
-static char meta_symbol_171[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char meta_symbol_172[] = "} else {\n";
-static char meta_symbol_173[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_174[] = "}\n";
-static char meta_symbol_175[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char meta_symbol_176[] = "parse_state->pos += 1;\n";
-static char meta_symbol_177[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char meta_symbol_178[] = "} else {\n";
-static char meta_symbol_179[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_180[] = "}\n";
-static char meta_symbol_181[] = "String* data;\n";
-static char meta_symbol_182[] = "String* data;\n";
-static char meta_symbol_183[] = "data = ";
-static char meta_symbol_184[] = ";\n";
-static char meta_symbol_185[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char meta_symbol_186[] = "parse_state->pos += data->size;\n";
-static char meta_symbol_187[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char meta_symbol_188[] = "} else {\n";
-static char meta_symbol_189[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_190[] = "}\n";
-static char meta_symbol_191[] = "{";
-static char meta_symbol_192[] = "}";
-static char meta_symbol_193[] = "void ";
-static char meta_symbol_194[] = "action_";
-static char meta_symbol_195[] = "(void* runtime, void* variables) {\n";
-static char meta_symbol_196[] = "}\n";
-static char meta_symbol_197[] = "\n";
-static char meta_symbol_198[] = "struct ";
-static char meta_symbol_199[] = "Action";
-static char meta_symbol_200[] = "Vars* vars";
-static char meta_symbol_201[] = " = arena_alloc(parse_state->arena, sizeof(struct ";
-static char meta_symbol_202[] = "Action";
-static char meta_symbol_203[] = "Vars));\n";
-static char meta_symbol_204[] = "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n";
-static char meta_symbol_205[] = "return meta_action_create(";
-static char meta_symbol_206[] = "action_";
-static char meta_symbol_207[] = ", (void*)vars";
-static char meta_symbol_208[] = ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char meta_symbol_209[] = "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n";
-static char meta_symbol_210[] = "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char meta_symbol_211[] = "((";
-static char meta_symbol_212[] = "Runtime*)runtime)";
-static char meta_symbol_213[] = "unseen(";
-static char meta_symbol_214[] = ") -> {";
-static char meta_symbol_215[] = "}";
-static char meta_symbol_216[] = "MetaAction action;\n";
-static char meta_symbol_217[] = "MetaAction action;\n";
-static char meta_symbol_218[] = "action = ";
-static char meta_symbol_219[] = ";\n";
-static char meta_symbol_220[] = "if (!string_builder_contains(";
-static char meta_symbol_221[] = "->current_string_builder, string_slice(";
-static char meta_symbol_222[] = "->arena, action.input_buffer, action.start, action.end))) {\n";
-static char meta_symbol_223[] = "}\n";
-static char meta_symbol_224[] = "unique(";
-static char meta_symbol_225[] = ")";
-static char meta_symbol_226[] = "if (!string_builder_contains(";
-static char meta_symbol_227[] = "->current_string_builder, ";
-static char meta_symbol_228[] = ")) {\n";
-static char meta_symbol_229[] = "string_builder_append(";
-static char meta_symbol_230[] = "->current_string_builder, ";
-static char meta_symbol_231[] = "->arena, ";
-static char meta_symbol_232[] = ", 0, NULL);\n";
-static char meta_symbol_233[] = "}\n";
-static char meta_symbol_234[] = ">";
-static char meta_symbol_235[] = "{";
-static char meta_symbol_236[] = "}";
-static char meta_symbol_237[] = "StringBuilder* last_string_builder;\n";
-static char meta_symbol_238[] = "StringBuilder* last_string_builder;\n";
-static char meta_symbol_239[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_240[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_241[] = "last_string_builder = ";
-static char meta_symbol_242[] = "->current_string_builder;\n";
-static char meta_symbol_243[] = "string_builder = ";
-static char meta_symbol_244[] = "->named_string_builder_";
-static char meta_symbol_245[] = ";\n";
-static char meta_symbol_246[] = "->current_string_builder = string_builder;\n";
-static char meta_symbol_247[] = "->current_string_builder = last_string_builder;\n";
-static char meta_symbol_248[] = "<";
-static char meta_symbol_249[] = "string_builder_append(";
-static char meta_symbol_250[] = "->current_string_builder, ";
-static char meta_symbol_251[] = "->arena, NULL, 0, ";
-static char meta_symbol_252[] = "->named_string_builder_";
-static char meta_symbol_253[] = ");\n";
-static char meta_symbol_254[] = "$";
-static char meta_symbol_255[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_256[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_257[] = "string_builder = string_builder_create(";
-static char meta_symbol_258[] = "->arena);\n";
-static char meta_symbol_259[] = "->named_string_builder_";
-static char meta_symbol_260[] = " = string_builder;\n";
-static char meta_symbol_261[] = "string_builder_append(";
-static char meta_symbol_262[] = "->current_string_builder, ";
-static char meta_symbol_263[] = "->arena, string_from_integer(";
-static char meta_symbol_264[] = "->arena, ";
-static char meta_symbol_265[] = "), 0, NULL);\n";
-static char meta_symbol_266[] = "meta_action_run(&";
-static char meta_symbol_267[] = ", runtime, ";
-static char meta_symbol_268[] = "->current_string_builder, ";
-static char meta_symbol_269[] = "->arena);\n";
-static char meta_symbol_270[] = "void placeholder_";
-static char meta_symbol_271[] = "(void* runtime, void* variables);\n";
-static char meta_symbol_272[] = "void placeholder_";
-static char meta_symbol_273[] = "(void* runtime, void* variables) {\n";
-static char meta_symbol_274[] = "}\n";
-static char meta_symbol_275[] = "\n";
-static char meta_symbol_276[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_277[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_278[] = "string_builder = string_builder_create(";
-static char meta_symbol_279[] = "->arena);\n";
-static char meta_symbol_280[] = "meta_placeholder_append2(";
-static char meta_symbol_281[] = "->arena, ";
-static char meta_symbol_282[] = "->placeholders, string_builder, meta_action_create(placeholder_";
-static char meta_symbol_283[] = ", variables, NULL, 0, 0));\n";
-static char meta_symbol_284[] = "string_builder_append(";
-static char meta_symbol_285[] = "->current_string_builder, ";
-static char meta_symbol_286[] = "->arena, NULL, 0, string_builder);\n";
-static char meta_symbol_287[] = "string_builder_append(";
-static char meta_symbol_288[] = "->current_string_builder, ";
-static char meta_symbol_289[] = "->arena, ";
-static char meta_symbol_290[] = ", 0, NULL);\n";
-static char meta_symbol_291[] = "#";
-static char meta_symbol_292[] = "(";
-static char meta_symbol_293[] = " ";
-static char meta_symbol_294[] = ")";
-static char meta_symbol_295[] = "->W_";
-static char meta_symbol_296[] = " = meta_";
-static char meta_symbol_297[] = "(";
-static char meta_symbol_298[] = "->W_";
-static char meta_symbol_299[] = " ? ";
-static char meta_symbol_300[] = "->W_";
-static char meta_symbol_301[] = " : 0, ";
-static char meta_symbol_302[] = ");\n";
-static char meta_symbol_303[] = ">";
-static char meta_symbol_304[] = "<";
-static char meta_symbol_305[] = "string_builder_append(";
-static char meta_symbol_306[] = "->current_string_builder, ";
-static char meta_symbol_307[] = "->arena, NULL, 1, NULL);\n";
-static char meta_symbol_308[] = "string_builder_append(";
-static char meta_symbol_309[] = "->current_string_builder, ";
-static char meta_symbol_310[] = "->arena, NULL, -1, NULL);\n";
-static char meta_symbol_311[] = "StringBuilder* named_string_builder_";
-static char meta_symbol_312[] = ";\n";
-static char meta_symbol_313[] = "0";
-static char meta_symbol_314[] = "1";
-static char meta_symbol_315[] = "2";
-static char meta_symbol_316[] = "3";
-static char meta_symbol_317[] = "4";
-static char meta_symbol_318[] = "5";
-static char meta_symbol_319[] = "6";
-static char meta_symbol_320[] = "7";
-static char meta_symbol_321[] = "8";
-static char meta_symbol_322[] = "9";
-static char meta_symbol_323[] = "{";
-static char meta_symbol_324[] = "*";
-static char meta_symbol_325[] = "}";
-static char meta_symbol_326[] = "int i;\n";
-static char meta_symbol_327[] = "int i;\n";
-static char meta_symbol_328[] = "for (i=0; i < ";
-static char meta_symbol_329[] = "; i++) {\n";
-static char meta_symbol_330[] = "string_builder_append(";
-static char meta_symbol_331[] = "->current_string_builder, ";
-static char meta_symbol_332[] = "->arena, ";
-static char meta_symbol_333[] = ", 0, NULL);\n";
-static char meta_symbol_334[] = "}\n";
-static char meta_symbol_335[] = "(";
-static char meta_symbol_336[] = "->W_";
-static char meta_symbol_337[] = " ? ";
-static char meta_symbol_338[] = "->W_";
-static char meta_symbol_339[] = " : 0)";
-static char meta_symbol_340[] = "(";
-static char meta_symbol_341[] = "-";
-static char meta_symbol_342[] = ")";
-static char meta_symbol_343[] = "((";
-static char meta_symbol_344[] = "->W_";
-static char meta_symbol_345[] = " ? ";
-static char meta_symbol_346[] = "->W_";
-static char meta_symbol_347[] = " : 0)-";
-static char meta_symbol_348[] = ")";
-static char meta_symbol_349[] = "number(";
-static char meta_symbol_350[] = ")";
-static char meta_symbol_351[] = "(0";
-static char meta_symbol_352[] = ")";
-static char meta_symbol_353[] = "+(meta_action_first_byte(";
-static char meta_symbol_354[] = ")";
+static char meta_symbol_145[] = "unsigned int star_pos;\n";
+static char meta_symbol_146[] = "unsigned int star_pos;\n";
+static char meta_symbol_147[] = "unsigned int star_start_pos;\n";
+static char meta_symbol_148[] = "unsigned int star_start_pos;\n";
+static char meta_symbol_149[] = "star_start_pos = parse_state->pos;\n";
+static char meta_symbol_150[] = "while (1) {\n";
+static char meta_symbol_151[] = "star_pos = parse_state->pos;\n";
+static char meta_symbol_152[] = "if (!_.valid) {\n";
+static char meta_symbol_153[] = "parse_state->pos = star_pos;\n";
+static char meta_symbol_154[] = "break;\n";
+static char meta_symbol_155[] = "}\n";
+static char meta_symbol_156[] = "}\n";
+static char meta_symbol_157[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char meta_symbol_158[] = ":";
+static char meta_symbol_159[] = "*";
+static char meta_symbol_160[] = "&";
+static char meta_symbol_161[] = "!";
+static char meta_symbol_162[] = ".";
+static char meta_symbol_163[] = "|";
+static char meta_symbol_164[] = "->";
+static char meta_symbol_165[] = "_";
+static char meta_symbol_166[] = "bitpattern <<= 1;\n";
+static char meta_symbol_167[] = "bitmask <<= 1;\n";
+static char meta_symbol_168[] = "bitmask |= 1;\n";
+static char meta_symbol_169[] = "0";
+static char meta_symbol_170[] = "1";
+static char meta_symbol_171[] = "bitpattern |= 1;\n";
+static char meta_symbol_172[] = "_ = ";
+static char meta_symbol_173[] = "rule_";
+static char meta_symbol_174[] = "(parse_state);\n";
+static char meta_symbol_175[] = "0b";
+static char meta_symbol_176[] = "unsigned char bitpattern;\n";
+static char meta_symbol_177[] = "unsigned char bitpattern;\n";
+static char meta_symbol_178[] = "unsigned char bitmask;\n";
+static char meta_symbol_179[] = "unsigned char bitmask;\n";
+static char meta_symbol_180[] = "bitpattern = 0;\n";
+static char meta_symbol_181[] = "bitmask = 0;\n";
+static char meta_symbol_182[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
+static char meta_symbol_183[] = "parse_state->pos += 1;\n";
+static char meta_symbol_184[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char meta_symbol_185[] = "} else {\n";
+static char meta_symbol_186[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_187[] = "}\n";
+static char meta_symbol_188[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char meta_symbol_189[] = "parse_state->pos += 1;\n";
+static char meta_symbol_190[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char meta_symbol_191[] = "} else {\n";
+static char meta_symbol_192[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_193[] = "}\n";
+static char meta_symbol_194[] = "String* data;\n";
+static char meta_symbol_195[] = "String* data;\n";
+static char meta_symbol_196[] = "data = ";
+static char meta_symbol_197[] = ";\n";
+static char meta_symbol_198[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char meta_symbol_199[] = "parse_state->pos += data->size;\n";
+static char meta_symbol_200[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char meta_symbol_201[] = "} else {\n";
+static char meta_symbol_202[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_203[] = "}\n";
+static char meta_symbol_204[] = "{";
+static char meta_symbol_205[] = "}";
+static char meta_symbol_206[] = "void ";
+static char meta_symbol_207[] = "action_";
+static char meta_symbol_208[] = "(void* runtime, void* variables) {\n";
+static char meta_symbol_209[] = "}\n";
+static char meta_symbol_210[] = "\n";
+static char meta_symbol_211[] = "struct ";
+static char meta_symbol_212[] = "Action";
+static char meta_symbol_213[] = "Vars* vars";
+static char meta_symbol_214[] = " = arena_alloc(parse_state->arena, sizeof(struct ";
+static char meta_symbol_215[] = "Action";
+static char meta_symbol_216[] = "Vars));\n";
+static char meta_symbol_217[] = "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n";
+static char meta_symbol_218[] = "return meta_action_create(";
+static char meta_symbol_219[] = "action_";
+static char meta_symbol_220[] = ", (void*)vars";
+static char meta_symbol_221[] = ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char meta_symbol_222[] = "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n";
+static char meta_symbol_223[] = "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char meta_symbol_224[] = "((";
+static char meta_symbol_225[] = "Runtime*)runtime)";
+static char meta_symbol_226[] = "unseen(";
+static char meta_symbol_227[] = ") -> {";
+static char meta_symbol_228[] = "}";
+static char meta_symbol_229[] = "MetaAction action;\n";
+static char meta_symbol_230[] = "MetaAction action;\n";
+static char meta_symbol_231[] = "action = ";
+static char meta_symbol_232[] = ";\n";
+static char meta_symbol_233[] = "if (!string_builder_contains(";
+static char meta_symbol_234[] = "->current_string_builder, string_slice(";
+static char meta_symbol_235[] = "->arena, action.input_buffer, action.start, action.end))) {\n";
+static char meta_symbol_236[] = "}\n";
+static char meta_symbol_237[] = "unique(";
+static char meta_symbol_238[] = ")";
+static char meta_symbol_239[] = "if (!string_builder_contains(";
+static char meta_symbol_240[] = "->current_string_builder, ";
+static char meta_symbol_241[] = ")) {\n";
+static char meta_symbol_242[] = "string_builder_append(";
+static char meta_symbol_243[] = "->current_string_builder, ";
+static char meta_symbol_244[] = "->arena, ";
+static char meta_symbol_245[] = ", 0, NULL);\n";
+static char meta_symbol_246[] = "}\n";
+static char meta_symbol_247[] = ">";
+static char meta_symbol_248[] = "{";
+static char meta_symbol_249[] = "}";
+static char meta_symbol_250[] = "StringBuilder* last_string_builder;\n";
+static char meta_symbol_251[] = "StringBuilder* last_string_builder;\n";
+static char meta_symbol_252[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_253[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_254[] = "last_string_builder = ";
+static char meta_symbol_255[] = "->current_string_builder;\n";
+static char meta_symbol_256[] = "string_builder = ";
+static char meta_symbol_257[] = "->named_string_builder_";
+static char meta_symbol_258[] = ";\n";
+static char meta_symbol_259[] = "->current_string_builder = string_builder;\n";
+static char meta_symbol_260[] = "->current_string_builder = last_string_builder;\n";
+static char meta_symbol_261[] = "<";
+static char meta_symbol_262[] = "string_builder_append(";
+static char meta_symbol_263[] = "->current_string_builder, ";
+static char meta_symbol_264[] = "->arena, NULL, 0, ";
+static char meta_symbol_265[] = "->named_string_builder_";
+static char meta_symbol_266[] = ");\n";
+static char meta_symbol_267[] = "$";
+static char meta_symbol_268[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_269[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_270[] = "string_builder = string_builder_create(";
+static char meta_symbol_271[] = "->arena);\n";
+static char meta_symbol_272[] = "->named_string_builder_";
+static char meta_symbol_273[] = " = string_builder;\n";
+static char meta_symbol_274[] = "string_builder_append(";
+static char meta_symbol_275[] = "->current_string_builder, ";
+static char meta_symbol_276[] = "->arena, string_from_integer(";
+static char meta_symbol_277[] = "->arena, ";
+static char meta_symbol_278[] = "), 0, NULL);\n";
+static char meta_symbol_279[] = "meta_action_run(&";
+static char meta_symbol_280[] = ", runtime, ";
+static char meta_symbol_281[] = "->current_string_builder, ";
+static char meta_symbol_282[] = "->arena);\n";
+static char meta_symbol_283[] = "void placeholder_";
+static char meta_symbol_284[] = "(void* runtime, void* variables);\n";
+static char meta_symbol_285[] = "void placeholder_";
+static char meta_symbol_286[] = "(void* runtime, void* variables) {\n";
+static char meta_symbol_287[] = "}\n";
+static char meta_symbol_288[] = "\n";
+static char meta_symbol_289[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_290[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_291[] = "string_builder = string_builder_create(";
+static char meta_symbol_292[] = "->arena);\n";
+static char meta_symbol_293[] = "meta_placeholder_append2(";
+static char meta_symbol_294[] = "->arena, ";
+static char meta_symbol_295[] = "->placeholders, string_builder, meta_action_create(placeholder_";
+static char meta_symbol_296[] = ", variables, NULL, 0, 0));\n";
+static char meta_symbol_297[] = "string_builder_append(";
+static char meta_symbol_298[] = "->current_string_builder, ";
+static char meta_symbol_299[] = "->arena, NULL, 0, string_builder);\n";
+static char meta_symbol_300[] = "string_builder_append(";
+static char meta_symbol_301[] = "->current_string_builder, ";
+static char meta_symbol_302[] = "->arena, ";
+static char meta_symbol_303[] = ", 0, NULL);\n";
+static char meta_symbol_304[] = "#";
+static char meta_symbol_305[] = "(";
+static char meta_symbol_306[] = " ";
+static char meta_symbol_307[] = ")";
+static char meta_symbol_308[] = "->W_";
+static char meta_symbol_309[] = " = meta_";
+static char meta_symbol_310[] = "(";
+static char meta_symbol_311[] = "->W_";
+static char meta_symbol_312[] = " ? ";
+static char meta_symbol_313[] = "->W_";
+static char meta_symbol_314[] = " : 0, ";
+static char meta_symbol_315[] = ");\n";
+static char meta_symbol_316[] = ">";
+static char meta_symbol_317[] = "<";
+static char meta_symbol_318[] = "string_builder_append(";
+static char meta_symbol_319[] = "->current_string_builder, ";
+static char meta_symbol_320[] = "->arena, NULL, 1, NULL);\n";
+static char meta_symbol_321[] = "string_builder_append(";
+static char meta_symbol_322[] = "->current_string_builder, ";
+static char meta_symbol_323[] = "->arena, NULL, -1, NULL);\n";
+static char meta_symbol_324[] = "StringBuilder* named_string_builder_";
+static char meta_symbol_325[] = ";\n";
+static char meta_symbol_326[] = "0";
+static char meta_symbol_327[] = "1";
+static char meta_symbol_328[] = "2";
+static char meta_symbol_329[] = "3";
+static char meta_symbol_330[] = "4";
+static char meta_symbol_331[] = "5";
+static char meta_symbol_332[] = "6";
+static char meta_symbol_333[] = "7";
+static char meta_symbol_334[] = "8";
+static char meta_symbol_335[] = "9";
+static char meta_symbol_336[] = "{";
+static char meta_symbol_337[] = "*";
+static char meta_symbol_338[] = "}";
+static char meta_symbol_339[] = "int i;\n";
+static char meta_symbol_340[] = "int i;\n";
+static char meta_symbol_341[] = "for (i=0; i < ";
+static char meta_symbol_342[] = "; i++) {\n";
+static char meta_symbol_343[] = "string_builder_append(";
+static char meta_symbol_344[] = "->current_string_builder, ";
+static char meta_symbol_345[] = "->arena, ";
+static char meta_symbol_346[] = ", 0, NULL);\n";
+static char meta_symbol_347[] = "}\n";
+static char meta_symbol_348[] = "(";
+static char meta_symbol_349[] = "->W_";
+static char meta_symbol_350[] = " ? ";
+static char meta_symbol_351[] = "->W_";
+static char meta_symbol_352[] = " : 0)";
+static char meta_symbol_353[] = "(";
+static char meta_symbol_354[] = "-";
 static char meta_symbol_355[] = ")";
-static char meta_symbol_356[] = "<<";
-static char meta_symbol_357[] = "\"";
-static char meta_symbol_358[] = "\"";
-static char meta_symbol_359[] = "static char ";
-static char meta_symbol_360[] = "symbol_";
-static char meta_symbol_361[] = "[] = \"";
-static char meta_symbol_362[] = "\";\n";
-static char meta_symbol_363[] = "string_from_cstring(";
-static char meta_symbol_364[] = "->arena, ";
-static char meta_symbol_365[] = "symbol_";
-static char meta_symbol_366[] = ", sizeof(";
-static char meta_symbol_367[] = "symbol_";
-static char meta_symbol_368[] = ")-1)";
-static char meta_symbol_369[] = "(";
-static char meta_symbol_370[] = ")";
-static char meta_symbol_371[] = "(((struct ";
-static char meta_symbol_372[] = "Action";
-static char meta_symbol_373[] = "Vars*)variables)->";
-static char meta_symbol_374[] = ")";
-static char meta_symbol_375[] = ".len";
-static char meta_symbol_376[] = "meta_action_len";
-static char meta_symbol_377[] = "W[";
-static char meta_symbol_378[] = "]";
-static char meta_symbol_379[] = "unsigned int W_";
-static char meta_symbol_380[] = ";\n";
-static char meta_symbol_381[] = "\"";
-static char meta_symbol_382[] = "\'";
-static char meta_symbol_383[] = "\'";
-static char meta_symbol_384[] = "static char ";
-static char meta_symbol_385[] = "symbol_";
-static char meta_symbol_386[] = "[] = \"";
-static char meta_symbol_387[] = "\";\n";
-static char meta_symbol_388[] = "string_from_cstring(parse_state->arena, ";
-static char meta_symbol_389[] = "symbol_";
-static char meta_symbol_390[] = ", sizeof(";
-static char meta_symbol_391[] = "symbol_";
-static char meta_symbol_392[] = ")-1)";
-static char meta_symbol_393[] = "\"";
-static char meta_symbol_394[] = "\\\"";
+static char meta_symbol_356[] = "((";
+static char meta_symbol_357[] = "->W_";
+static char meta_symbol_358[] = " ? ";
+static char meta_symbol_359[] = "->W_";
+static char meta_symbol_360[] = " : 0)-";
+static char meta_symbol_361[] = ")";
+static char meta_symbol_362[] = "number(";
+static char meta_symbol_363[] = ")";
+static char meta_symbol_364[] = "(0";
+static char meta_symbol_365[] = ")";
+static char meta_symbol_366[] = "+(meta_action_first_byte(";
+static char meta_symbol_367[] = ")";
+static char meta_symbol_368[] = ")";
+static char meta_symbol_369[] = "<<";
+static char meta_symbol_370[] = "\"";
+static char meta_symbol_371[] = "\"";
+static char meta_symbol_372[] = "static char ";
+static char meta_symbol_373[] = "symbol_";
+static char meta_symbol_374[] = "[] = \"";
+static char meta_symbol_375[] = "\";\n";
+static char meta_symbol_376[] = "string_from_cstring(";
+static char meta_symbol_377[] = "->arena, ";
+static char meta_symbol_378[] = "symbol_";
+static char meta_symbol_379[] = ", sizeof(";
+static char meta_symbol_380[] = "symbol_";
+static char meta_symbol_381[] = ")-1)";
+static char meta_symbol_382[] = "(";
+static char meta_symbol_383[] = ")";
+static char meta_symbol_384[] = "(((struct ";
+static char meta_symbol_385[] = "Action";
+static char meta_symbol_386[] = "Vars*)variables)->";
+static char meta_symbol_387[] = ")";
+static char meta_symbol_388[] = ".len";
+static char meta_symbol_389[] = "meta_action_len";
+static char meta_symbol_390[] = "W[";
+static char meta_symbol_391[] = "]";
+static char meta_symbol_392[] = "unsigned int W_";
+static char meta_symbol_393[] = ";\n";
+static char meta_symbol_394[] = "\"";
 static char meta_symbol_395[] = "\'";
-static char meta_symbol_396[] = "\\";
-static char meta_symbol_397[] = "a";
-static char meta_symbol_398[] = "b";
-static char meta_symbol_399[] = "c";
-static char meta_symbol_400[] = "d";
-static char meta_symbol_401[] = "e";
-static char meta_symbol_402[] = "f";
-static char meta_symbol_403[] = "g";
-static char meta_symbol_404[] = "h";
-static char meta_symbol_405[] = "i";
-static char meta_symbol_406[] = "j";
-static char meta_symbol_407[] = "k";
-static char meta_symbol_408[] = "l";
-static char meta_symbol_409[] = "m";
-static char meta_symbol_410[] = "n";
-static char meta_symbol_411[] = "o";
-static char meta_symbol_412[] = "p";
-static char meta_symbol_413[] = "q";
-static char meta_symbol_414[] = "r";
-static char meta_symbol_415[] = "s";
-static char meta_symbol_416[] = "t";
-static char meta_symbol_417[] = "u";
-static char meta_symbol_418[] = "v";
-static char meta_symbol_419[] = "w";
-static char meta_symbol_420[] = "x";
-static char meta_symbol_421[] = "y";
-static char meta_symbol_422[] = "z";
-static char meta_symbol_423[] = "A";
-static char meta_symbol_424[] = "B";
-static char meta_symbol_425[] = "C";
-static char meta_symbol_426[] = "D";
-static char meta_symbol_427[] = "E";
-static char meta_symbol_428[] = "F";
-static char meta_symbol_429[] = "G";
-static char meta_symbol_430[] = "H";
-static char meta_symbol_431[] = "I";
-static char meta_symbol_432[] = "J";
-static char meta_symbol_433[] = "K";
-static char meta_symbol_434[] = "L";
-static char meta_symbol_435[] = "M";
-static char meta_symbol_436[] = "N";
-static char meta_symbol_437[] = "O";
-static char meta_symbol_438[] = "P";
-static char meta_symbol_439[] = "Q";
-static char meta_symbol_440[] = "R";
-static char meta_symbol_441[] = "S";
-static char meta_symbol_442[] = "T";
-static char meta_symbol_443[] = "U";
-static char meta_symbol_444[] = "V";
-static char meta_symbol_445[] = "W";
-static char meta_symbol_446[] = "X";
-static char meta_symbol_447[] = "Y";
-static char meta_symbol_448[] = "Z";
-static char meta_symbol_449[] = " ";
-static char meta_symbol_450[] = "\n";
+static char meta_symbol_396[] = "\'";
+static char meta_symbol_397[] = "static char ";
+static char meta_symbol_398[] = "symbol_";
+static char meta_symbol_399[] = "[] = \"";
+static char meta_symbol_400[] = "\";\n";
+static char meta_symbol_401[] = "string_from_cstring(parse_state->arena, ";
+static char meta_symbol_402[] = "symbol_";
+static char meta_symbol_403[] = ", sizeof(";
+static char meta_symbol_404[] = "symbol_";
+static char meta_symbol_405[] = ")-1)";
+static char meta_symbol_406[] = "\"";
+static char meta_symbol_407[] = "\\\"";
+static char meta_symbol_408[] = "\'";
+static char meta_symbol_409[] = "\\";
+static char meta_symbol_410[] = "a";
+static char meta_symbol_411[] = "b";
+static char meta_symbol_412[] = "c";
+static char meta_symbol_413[] = "d";
+static char meta_symbol_414[] = "e";
+static char meta_symbol_415[] = "f";
+static char meta_symbol_416[] = "g";
+static char meta_symbol_417[] = "h";
+static char meta_symbol_418[] = "i";
+static char meta_symbol_419[] = "j";
+static char meta_symbol_420[] = "k";
+static char meta_symbol_421[] = "l";
+static char meta_symbol_422[] = "m";
+static char meta_symbol_423[] = "n";
+static char meta_symbol_424[] = "o";
+static char meta_symbol_425[] = "p";
+static char meta_symbol_426[] = "q";
+static char meta_symbol_427[] = "r";
+static char meta_symbol_428[] = "s";
+static char meta_symbol_429[] = "t";
+static char meta_symbol_430[] = "u";
+static char meta_symbol_431[] = "v";
+static char meta_symbol_432[] = "w";
+static char meta_symbol_433[] = "x";
+static char meta_symbol_434[] = "y";
+static char meta_symbol_435[] = "z";
+static char meta_symbol_436[] = "A";
+static char meta_symbol_437[] = "B";
+static char meta_symbol_438[] = "C";
+static char meta_symbol_439[] = "D";
+static char meta_symbol_440[] = "E";
+static char meta_symbol_441[] = "F";
+static char meta_symbol_442[] = "G";
+static char meta_symbol_443[] = "H";
+static char meta_symbol_444[] = "I";
+static char meta_symbol_445[] = "J";
+static char meta_symbol_446[] = "K";
+static char meta_symbol_447[] = "L";
+static char meta_symbol_448[] = "M";
+static char meta_symbol_449[] = "N";
+static char meta_symbol_450[] = "O";
+static char meta_symbol_451[] = "P";
+static char meta_symbol_452[] = "Q";
+static char meta_symbol_453[] = "R";
+static char meta_symbol_454[] = "S";
+static char meta_symbol_455[] = "T";
+static char meta_symbol_456[] = "U";
+static char meta_symbol_457[] = "V";
+static char meta_symbol_458[] = "W";
+static char meta_symbol_459[] = "X";
+static char meta_symbol_460[] = "Y";
+static char meta_symbol_461[] = "Z";
+static char meta_symbol_462[] = " ";
+static char meta_symbol_463[] = "\n";
 MetaAction meta_rule_main(MetaParseState* parse_state);
 struct meta_Action1Vars {
     MetaAction xs;
@@ -571,80 +584,79 @@ struct meta_Action21Vars {
 struct meta_Action22Vars {
     MetaAction x;
 };
-MetaAction meta_rule_opBind(MetaParseState* parse_state);
 struct meta_Action23Vars {
+    MetaAction x;
 };
-MetaAction meta_rule_opStar(MetaParseState* parse_state);
+MetaAction meta_rule_opBind(MetaParseState* parse_state);
 struct meta_Action24Vars {
 };
-MetaAction meta_rule_opLookahead(MetaParseState* parse_state);
+MetaAction meta_rule_opStar(MetaParseState* parse_state);
 struct meta_Action25Vars {
 };
-MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state);
+MetaAction meta_rule_opLookahead(MetaParseState* parse_state);
 struct meta_Action26Vars {
 };
-MetaAction meta_rule_opAny(MetaParseState* parse_state);
+MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state);
 struct meta_Action27Vars {
 };
-MetaAction meta_rule_opOr(MetaParseState* parse_state);
+MetaAction meta_rule_opAny(MetaParseState* parse_state);
 struct meta_Action28Vars {
 };
-MetaAction meta_rule_opAction(MetaParseState* parse_state);
+MetaAction meta_rule_opOr(MetaParseState* parse_state);
 struct meta_Action29Vars {
 };
-MetaAction meta_rule_sepBit(MetaParseState* parse_state);
+MetaAction meta_rule_opAction(MetaParseState* parse_state);
 struct meta_Action30Vars {
-    MetaAction x;
 };
-MetaAction meta_rule_maybeBit(MetaParseState* parse_state);
+MetaAction meta_rule_sepBit(MetaParseState* parse_state);
 struct meta_Action31Vars {
     MetaAction x;
 };
+MetaAction meta_rule_maybeBit(MetaParseState* parse_state);
 struct meta_Action32Vars {
+    MetaAction x;
 };
-MetaAction meta_rule_bit(MetaParseState* parse_state);
 struct meta_Action33Vars {
 };
+MetaAction meta_rule_bit(MetaParseState* parse_state);
 struct meta_Action34Vars {
 };
-MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state);
 struct meta_Action35Vars {
-    MetaAction x;
 };
+MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state);
 struct meta_Action36Vars {
-    MetaAction xs;
+    MetaAction x;
 };
 struct meta_Action37Vars {
+    MetaAction xs;
 };
 struct meta_Action38Vars {
-    MetaAction x;
 };
-MetaAction meta_rule_action(MetaParseState* parse_state);
 struct meta_Action39Vars {
-    MetaAction xs;
+    MetaAction x;
 };
+MetaAction meta_rule_action(MetaParseState* parse_state);
 struct meta_Action40Vars {
+    MetaAction xs;
 };
-MetaAction meta_rule_genRuntime(MetaParseState* parse_state);
 struct meta_Action41Vars {
 };
-MetaAction meta_rule_actionexpr(MetaParseState* parse_state);
+MetaAction meta_rule_genRuntime(MetaParseState* parse_state);
 struct meta_Action42Vars {
-    MetaAction x;
-    MetaAction ys;
-    MetaAction runtime;
 };
+MetaAction meta_rule_actionexpr(MetaParseState* parse_state);
 struct meta_Action43Vars {
     MetaAction x;
+    MetaAction ys;
     MetaAction runtime;
 };
 struct meta_Action44Vars {
     MetaAction x;
-    MetaAction ys;
     MetaAction runtime;
 };
 struct meta_Action45Vars {
     MetaAction x;
+    MetaAction ys;
     MetaAction runtime;
 };
 struct meta_Action46Vars {
@@ -668,28 +680,30 @@ struct meta_Action50Vars {
     MetaAction runtime;
 };
 struct meta_Action51Vars {
+    MetaAction x;
+    MetaAction runtime;
+};
+struct meta_Action52Vars {
     MetaAction x;
     MetaAction y;
     MetaAction z;
     MetaAction runtime;
 };
-struct meta_Action52Vars {
+struct meta_Action53Vars {
     MetaAction xs;
     MetaAction runtime;
 };
 MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state);
-struct meta_Action53Vars {
-    MetaAction x;
-};
-MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state);
 struct meta_Action54Vars {
     MetaAction x;
 };
+MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state);
 struct meta_Action55Vars {
+    MetaAction x;
 };
-MetaAction meta_rule_digit(MetaParseState* parse_state);
 struct meta_Action56Vars {
 };
+MetaAction meta_rule_digit(MetaParseState* parse_state);
 struct meta_Action57Vars {
 };
 struct meta_Action58Vars {
@@ -708,92 +722,92 @@ struct meta_Action64Vars {
 };
 struct meta_Action65Vars {
 };
-MetaAction meta_rule_placeholder(MetaParseState* parse_state);
 struct meta_Action66Vars {
+};
+MetaAction meta_rule_placeholder(MetaParseState* parse_state);
+struct meta_Action67Vars {
     MetaAction x;
     MetaAction y;
     MetaAction runtime;
 };
 MetaAction meta_rule_expr(MetaParseState* parse_state);
-struct meta_Action67Vars {
+struct meta_Action68Vars {
     MetaAction x;
     MetaAction runtime;
 };
-struct meta_Action68Vars {
+struct meta_Action69Vars {
     MetaAction x;
     MetaAction y;
     MetaAction runtime;
 };
-struct meta_Action69Vars {
+struct meta_Action70Vars {
     MetaAction xs;
 };
 MetaAction meta_rule_numberPart(MetaParseState* parse_state);
-struct meta_Action70Vars {
+struct meta_Action71Vars {
     MetaAction x;
     MetaAction y;
 };
 MetaAction meta_rule_maybeShift(MetaParseState* parse_state);
-struct meta_Action71Vars {
-};
 struct meta_Action72Vars {
 };
-MetaAction meta_rule_string(MetaParseState* parse_state);
 struct meta_Action73Vars {
+};
+MetaAction meta_rule_string(MetaParseState* parse_state);
+struct meta_Action74Vars {
     MetaAction xs;
     MetaAction runtime;
 };
 MetaAction meta_rule_dotname(MetaParseState* parse_state);
-struct meta_Action74Vars {
+struct meta_Action75Vars {
     MetaAction x;
     MetaAction y;
 };
 MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state);
-struct meta_Action75Vars {
+struct meta_Action76Vars {
     MetaAction x;
 };
 MetaAction meta_rule_nextname(MetaParseState* parse_state);
-struct meta_Action76Vars {
+struct meta_Action77Vars {
 };
 MetaAction meta_rule_wvar(MetaParseState* parse_state);
-struct meta_Action77Vars {
+struct meta_Action78Vars {
     MetaAction x;
 };
 MetaAction meta_rule_stringInner(MetaParseState* parse_state);
-struct meta_Action78Vars {
-};
 struct meta_Action79Vars {
 };
-MetaAction meta_rule_charString(MetaParseState* parse_state);
 struct meta_Action80Vars {
-    MetaAction xs;
 };
-MetaAction meta_rule_charStringInner(MetaParseState* parse_state);
+MetaAction meta_rule_charString(MetaParseState* parse_state);
 struct meta_Action81Vars {
+    MetaAction xs;
 };
+MetaAction meta_rule_charStringInner(MetaParseState* parse_state);
 struct meta_Action82Vars {
 };
 struct meta_Action83Vars {
 };
-MetaAction meta_rule_stringEscape(MetaParseState* parse_state);
 struct meta_Action84Vars {
 };
-MetaAction meta_rule_ruleName(MetaParseState* parse_state);
+MetaAction meta_rule_stringEscape(MetaParseState* parse_state);
 struct meta_Action85Vars {
 };
-MetaAction meta_rule_variableName(MetaParseState* parse_state);
+MetaAction meta_rule_ruleName(MetaParseState* parse_state);
 struct meta_Action86Vars {
 };
-MetaAction meta_rule_name(MetaParseState* parse_state);
+MetaAction meta_rule_variableName(MetaParseState* parse_state);
 struct meta_Action87Vars {
 };
-MetaAction meta_rule_char(MetaParseState* parse_state);
+MetaAction meta_rule_name(MetaParseState* parse_state);
 struct meta_Action88Vars {
 };
+MetaAction meta_rule_char(MetaParseState* parse_state);
 struct meta_Action89Vars {
 };
-MetaAction meta_rule_lower(MetaParseState* parse_state);
 struct meta_Action90Vars {
 };
+MetaAction meta_rule_lower(MetaParseState* parse_state);
 struct meta_Action91Vars {
 };
 struct meta_Action92Vars {
@@ -844,9 +858,9 @@ struct meta_Action114Vars {
 };
 struct meta_Action115Vars {
 };
-MetaAction meta_rule_upper(MetaParseState* parse_state);
 struct meta_Action116Vars {
 };
+MetaAction meta_rule_upper(MetaParseState* parse_state);
 struct meta_Action117Vars {
 };
 struct meta_Action118Vars {
@@ -897,17 +911,19 @@ struct meta_Action140Vars {
 };
 struct meta_Action141Vars {
 };
-MetaAction meta_rule_number(MetaParseState* parse_state);
 struct meta_Action142Vars {
 };
-MetaAction meta_rule_space(MetaParseState* parse_state);
+MetaAction meta_rule_number(MetaParseState* parse_state);
 struct meta_Action143Vars {
 };
-MetaAction meta_rule_spacechar(MetaParseState* parse_state);
+MetaAction meta_rule_space(MetaParseState* parse_state);
 struct meta_Action144Vars {
 };
+MetaAction meta_rule_spacechar(MetaParseState* parse_state);
 struct meta_Action145Vars {
 };
+struct meta_Action146Vars {
+};
 
 void meta_action_1(void* runtime, void* variables) {
     StringBuilder* string_builder;
@@ -1247,559 +1263,588 @@ void meta_action_21(void* runtime, void* variables) {
 }
 
 void meta_action_22(void* runtime, void* variables) {
+    StringBuilder* last_string_builder;
+    StringBuilder* string_builder;
+    last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
+    ((meta_Runtime*)runtime)->current_string_builder = string_builder;
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_145, sizeof(meta_symbol_145)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_146, sizeof(meta_symbol_146)-1), 0, NULL);
+    }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_147, sizeof(meta_symbol_147)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_148, sizeof(meta_symbol_148)-1), 0, NULL);
+    }
+    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_149, sizeof(meta_symbol_149)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_150, sizeof(meta_symbol_150)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_151, sizeof(meta_symbol_151)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action22Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-}
-
-void meta_action_30(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_152, sizeof(meta_symbol_152)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_153, sizeof(meta_symbol_153)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_154, sizeof(meta_symbol_154)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action30Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_155, sizeof(meta_symbol_155)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_156, sizeof(meta_symbol_156)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_157, sizeof(meta_symbol_157)-1), 0, NULL);
+}
+
+void meta_action_23(void* runtime, void* variables) {
+    meta_action_run(&(((struct meta_Action23Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_31(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_166, sizeof(meta_symbol_166)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_167, sizeof(meta_symbol_167)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action31Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_155, sizeof(meta_symbol_155)-1), 0, NULL);
 }
 
 void meta_action_32(void* runtime, void* variables) {
+    meta_action_run(&(((struct meta_Action32Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_168, sizeof(meta_symbol_168)-1), 0, NULL);
 }
 
 void meta_action_33(void* runtime, void* variables) {
 }
 
 void meta_action_34(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_158, sizeof(meta_symbol_158)-1), 0, NULL);
 }
 
 void meta_action_35(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_159, sizeof(meta_symbol_159)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_160, sizeof(meta_symbol_160)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action35Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_161, sizeof(meta_symbol_161)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_171, sizeof(meta_symbol_171)-1), 0, NULL);
 }
 
 void meta_action_36(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_172, sizeof(meta_symbol_172)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_173, sizeof(meta_symbol_173)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action36Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_174, sizeof(meta_symbol_174)-1), 0, NULL);
+}
+
+void meta_action_37(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_163, sizeof(meta_symbol_163)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_164, sizeof(meta_symbol_164)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_176, sizeof(meta_symbol_176)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_177, sizeof(meta_symbol_177)-1), 0, NULL);
     }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_165, sizeof(meta_symbol_165)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_166, sizeof(meta_symbol_166)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_178, sizeof(meta_symbol_178)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_179, sizeof(meta_symbol_179)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_167, sizeof(meta_symbol_167)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_168, sizeof(meta_symbol_168)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action36Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_169, sizeof(meta_symbol_169)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_180, sizeof(meta_symbol_180)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_181, sizeof(meta_symbol_181)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action37Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_182, sizeof(meta_symbol_182)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_170, sizeof(meta_symbol_170)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_171, sizeof(meta_symbol_171)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_183, sizeof(meta_symbol_183)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_184, sizeof(meta_symbol_184)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_172, sizeof(meta_symbol_172)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_185, sizeof(meta_symbol_185)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_173, sizeof(meta_symbol_173)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_186, sizeof(meta_symbol_186)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_174, sizeof(meta_symbol_174)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_187, sizeof(meta_symbol_187)-1), 0, NULL);
 }
 
-void meta_action_37(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_175, sizeof(meta_symbol_175)-1), 0, NULL);
+void meta_action_38(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_188, sizeof(meta_symbol_188)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_176, sizeof(meta_symbol_176)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_177, sizeof(meta_symbol_177)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_189, sizeof(meta_symbol_189)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_190, sizeof(meta_symbol_190)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_178, sizeof(meta_symbol_178)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_191, sizeof(meta_symbol_191)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_179, sizeof(meta_symbol_179)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_192, sizeof(meta_symbol_192)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_180, sizeof(meta_symbol_180)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_193, sizeof(meta_symbol_193)-1), 0, NULL);
 }
 
-void meta_action_38(void* runtime, void* variables) {
+void meta_action_39(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_181, sizeof(meta_symbol_181)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_182, sizeof(meta_symbol_182)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_194, sizeof(meta_symbol_194)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_195, sizeof(meta_symbol_195)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_183, sizeof(meta_symbol_183)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action38Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_184, sizeof(meta_symbol_184)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_185, sizeof(meta_symbol_185)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_196, sizeof(meta_symbol_196)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action39Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_197, sizeof(meta_symbol_197)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_198, sizeof(meta_symbol_198)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_186, sizeof(meta_symbol_186)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_187, sizeof(meta_symbol_187)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_199, sizeof(meta_symbol_199)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_200, sizeof(meta_symbol_200)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_188, sizeof(meta_symbol_188)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_201, sizeof(meta_symbol_201)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_189, sizeof(meta_symbol_189)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_202, sizeof(meta_symbol_202)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_190, sizeof(meta_symbol_190)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_203, sizeof(meta_symbol_203)-1), 0, NULL);
 }
 
-void meta_action_39(void* runtime, void* variables) {
+void meta_action_40(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_193, sizeof(meta_symbol_193)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_206, sizeof(meta_symbol_206)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_194, sizeof(meta_symbol_194)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_207, sizeof(meta_symbol_207)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_195, sizeof(meta_symbol_195)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_208, sizeof(meta_symbol_208)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_actionVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_actionVars);
-    meta_action_run(&(((struct meta_Action39Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action40Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_196, sizeof(meta_symbol_196)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_197, sizeof(meta_symbol_197)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_209, sizeof(meta_symbol_209)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_210, sizeof(meta_symbol_210)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_orInit;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_198, sizeof(meta_symbol_198)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_211, sizeof(meta_symbol_211)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_199, sizeof(meta_symbol_199)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_212, sizeof(meta_symbol_212)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_200, sizeof(meta_symbol_200)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_213, sizeof(meta_symbol_213)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_201, sizeof(meta_symbol_201)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_214, sizeof(meta_symbol_214)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_202, sizeof(meta_symbol_202)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_215, sizeof(meta_symbol_215)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_203, sizeof(meta_symbol_203)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_216, sizeof(meta_symbol_216)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_204, sizeof(meta_symbol_204)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_205, sizeof(meta_symbol_205)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_217, sizeof(meta_symbol_217)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_218, sizeof(meta_symbol_218)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_206, sizeof(meta_symbol_206)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_219, sizeof(meta_symbol_219)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_207, sizeof(meta_symbol_207)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_220, sizeof(meta_symbol_220)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_208, sizeof(meta_symbol_208)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_221, sizeof(meta_symbol_221)-1), 0, NULL);
 }
 
-void meta_action_40(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_209, sizeof(meta_symbol_209)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_210, sizeof(meta_symbol_210)-1), 0, NULL);
+void meta_action_41(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_222, sizeof(meta_symbol_222)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_223, sizeof(meta_symbol_223)-1), 0, NULL);
 }
 
-void meta_action_41(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_211, sizeof(meta_symbol_211)-1), 0, NULL);
+void meta_action_42(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_224, sizeof(meta_symbol_224)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_212, sizeof(meta_symbol_212)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_225, sizeof(meta_symbol_225)-1), 0, NULL);
 }
 
-void meta_action_42(void* runtime, void* variables) {
+void meta_action_43(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_216, sizeof(meta_symbol_216)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_217, sizeof(meta_symbol_217)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_229, sizeof(meta_symbol_229)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_230, sizeof(meta_symbol_230)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_218, sizeof(meta_symbol_218)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action42Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_219, sizeof(meta_symbol_219)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_220, sizeof(meta_symbol_220)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action42Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_221, sizeof(meta_symbol_221)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action42Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_222, sizeof(meta_symbol_222)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    meta_action_run(&(((struct meta_Action42Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_223, sizeof(meta_symbol_223)-1), 0, NULL);
-}
-
-void meta_action_43(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_226, sizeof(meta_symbol_226)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_227, sizeof(meta_symbol_227)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_228, sizeof(meta_symbol_228)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_229, sizeof(meta_symbol_229)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_230, sizeof(meta_symbol_230)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_231, sizeof(meta_symbol_231)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_232, sizeof(meta_symbol_232)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_233, sizeof(meta_symbol_233)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_234, sizeof(meta_symbol_234)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_235, sizeof(meta_symbol_235)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    meta_action_run(&(((struct meta_Action43Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_236, sizeof(meta_symbol_236)-1), 0, NULL);
 }
 
 void meta_action_44(void* runtime, void* variables) {
-    StringBuilder* last_string_builder;
-    StringBuilder* string_builder;
-    last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
-    string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
-    ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_237, sizeof(meta_symbol_237)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_238, sizeof(meta_symbol_238)-1), 0, NULL);
-    }
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_239, sizeof(meta_symbol_239)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_240, sizeof(meta_symbol_240)-1), 0, NULL);
-    }
-    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_241, sizeof(meta_symbol_241)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_239, sizeof(meta_symbol_239)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_240, sizeof(meta_symbol_240)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_241, sizeof(meta_symbol_241)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_242, sizeof(meta_symbol_242)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_243, sizeof(meta_symbol_243)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_244, sizeof(meta_symbol_244)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_245, sizeof(meta_symbol_245)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_246, sizeof(meta_symbol_246)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action44Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_247, sizeof(meta_symbol_247)-1), 0, NULL);
 }
 
 void meta_action_45(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_249, sizeof(meta_symbol_249)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_250, sizeof(meta_symbol_250)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_251, sizeof(meta_symbol_251)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_252, sizeof(meta_symbol_252)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_253, sizeof(meta_symbol_253)-1), 0, NULL);
-}
-
-void meta_action_46(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_255, sizeof(meta_symbol_255)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_256, sizeof(meta_symbol_256)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_250, sizeof(meta_symbol_250)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_251, sizeof(meta_symbol_251)-1), 0, NULL);
+    }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_252, sizeof(meta_symbol_252)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_253, sizeof(meta_symbol_253)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_254, sizeof(meta_symbol_254)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_255, sizeof(meta_symbol_255)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_256, sizeof(meta_symbol_256)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_257, sizeof(meta_symbol_257)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_258, sizeof(meta_symbol_258)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_259, sizeof(meta_symbol_259)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action46Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_260, sizeof(meta_symbol_260)-1), 0, NULL);
 }
 
-void meta_action_47(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_261, sizeof(meta_symbol_261)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+void meta_action_46(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_262, sizeof(meta_symbol_262)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_263, sizeof(meta_symbol_263)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_264, sizeof(meta_symbol_264)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_265, sizeof(meta_symbol_265)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action46Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_266, sizeof(meta_symbol_266)-1), 0, NULL);
+}
+
+void meta_action_47(void* runtime, void* variables) {
+    StringBuilder* last_string_builder;
+    StringBuilder* string_builder;
+    last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
+    string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
+    ((meta_Runtime*)runtime)->current_string_builder = string_builder;
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_268, sizeof(meta_symbol_268)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_269, sizeof(meta_symbol_269)-1), 0, NULL);
+    }
+    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_270, sizeof(meta_symbol_270)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_271, sizeof(meta_symbol_271)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_272, sizeof(meta_symbol_272)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_273, sizeof(meta_symbol_273)-1), 0, NULL);
 }
 
 void meta_action_48(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_266, sizeof(meta_symbol_266)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action48Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_267, sizeof(meta_symbol_267)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_274, sizeof(meta_symbol_274)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_275, sizeof(meta_symbol_275)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_268, sizeof(meta_symbol_268)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_276, sizeof(meta_symbol_276)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_269, sizeof(meta_symbol_269)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_277, sizeof(meta_symbol_277)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action48Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_278, sizeof(meta_symbol_278)-1), 0, NULL);
 }
 
 void meta_action_49(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_279, sizeof(meta_symbol_279)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_280, sizeof(meta_symbol_280)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_281, sizeof(meta_symbol_281)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_282, sizeof(meta_symbol_282)-1), 0, NULL);
+}
+
+void meta_action_50(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     ((meta_Runtime*)runtime)->W_1 = meta_inc(((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0, 1);
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_270, sizeof(meta_symbol_270)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_283, sizeof(meta_symbol_283)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_271, sizeof(meta_symbol_271)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_284, sizeof(meta_symbol_284)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholders;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_272, sizeof(meta_symbol_272)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_285, sizeof(meta_symbol_285)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_273, sizeof(meta_symbol_273)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_286, sizeof(meta_symbol_286)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_placeholderVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_placeholderVars);
-    meta_action_run(&(((struct meta_Action49Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action50Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_274, sizeof(meta_symbol_274)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_275, sizeof(meta_symbol_275)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_287, sizeof(meta_symbol_287)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_288, sizeof(meta_symbol_288)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_276, sizeof(meta_symbol_276)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_277, sizeof(meta_symbol_277)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_289, sizeof(meta_symbol_289)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_290, sizeof(meta_symbol_290)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_278, sizeof(meta_symbol_278)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_279, sizeof(meta_symbol_279)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_280, sizeof(meta_symbol_280)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_281, sizeof(meta_symbol_281)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_282, sizeof(meta_symbol_282)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_283, sizeof(meta_symbol_283)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_284, sizeof(meta_symbol_284)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_285, sizeof(meta_symbol_285)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_286, sizeof(meta_symbol_286)-1), 0, NULL);
-}
-
-void meta_action_50(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_287, sizeof(meta_symbol_287)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_291, sizeof(meta_symbol_291)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_288, sizeof(meta_symbol_288)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_292, sizeof(meta_symbol_292)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_293, sizeof(meta_symbol_293)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_294, sizeof(meta_symbol_294)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_289, sizeof(meta_symbol_289)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action50Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_290, sizeof(meta_symbol_290)-1), 0, NULL);
-}
-
-void meta_action_51(void* runtime, void* variables) {
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_295, sizeof(meta_symbol_295)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_296, sizeof(meta_symbol_296)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_297, sizeof(meta_symbol_297)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_298, sizeof(meta_symbol_298)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_299, sizeof(meta_symbol_299)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+}
+
+void meta_action_51(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_300, sizeof(meta_symbol_300)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_301, sizeof(meta_symbol_301)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_302, sizeof(meta_symbol_302)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_303, sizeof(meta_symbol_303)-1), 0, NULL);
 }
 
 void meta_action_52(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_305, sizeof(meta_symbol_305)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_306, sizeof(meta_symbol_306)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_307, sizeof(meta_symbol_307)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_308, sizeof(meta_symbol_308)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_309, sizeof(meta_symbol_309)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_310, sizeof(meta_symbol_310)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_311, sizeof(meta_symbol_311)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_312, sizeof(meta_symbol_312)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_313, sizeof(meta_symbol_313)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_314, sizeof(meta_symbol_314)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_315, sizeof(meta_symbol_315)-1), 0, NULL);
 }
 
 void meta_action_53(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_318, sizeof(meta_symbol_318)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_319, sizeof(meta_symbol_319)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_320, sizeof(meta_symbol_320)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action53Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_321, sizeof(meta_symbol_321)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_322, sizeof(meta_symbol_322)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action53Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_323, sizeof(meta_symbol_323)-1), 0, NULL);
+}
+
+void meta_action_54(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     MetaAction action;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_namedStringBuilders;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    action = (((struct meta_Action53Vars*)variables)->x);
+    action = (((struct meta_Action54Vars*)variables)->x);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action.input_buffer, action.start, action.end))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_311, sizeof(meta_symbol_311)-1), 0, NULL);
-        meta_action_run(&(((struct meta_Action53Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_312, sizeof(meta_symbol_312)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_324, sizeof(meta_symbol_324)-1), 0, NULL);
+        meta_action_run(&(((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_325, sizeof(meta_symbol_325)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    meta_action_run(&(((struct meta_Action53Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
-void meta_action_54(void* runtime, void* variables) {
-    meta_action_run(&(((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+void meta_action_55(void* runtime, void* variables) {
+    meta_action_run(&(((struct meta_Action55Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
-void meta_action_66(void* runtime, void* variables) {
+void meta_action_67(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholderVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_326, sizeof(meta_symbol_326)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_327, sizeof(meta_symbol_327)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_339, sizeof(meta_symbol_339)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_340, sizeof(meta_symbol_340)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_328, sizeof(meta_symbol_328)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action66Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_329, sizeof(meta_symbol_329)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_341, sizeof(meta_symbol_341)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action67Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_342, sizeof(meta_symbol_342)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_330, sizeof(meta_symbol_330)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action66Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_331, sizeof(meta_symbol_331)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action66Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_332, sizeof(meta_symbol_332)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action66Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_333, sizeof(meta_symbol_333)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_334, sizeof(meta_symbol_334)-1), 0, NULL);
-}
-
-void meta_action_67(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_335, sizeof(meta_symbol_335)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_343, sizeof(meta_symbol_343)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_336, sizeof(meta_symbol_336)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_337, sizeof(meta_symbol_337)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_344, sizeof(meta_symbol_344)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_338, sizeof(meta_symbol_338)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_345, sizeof(meta_symbol_345)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_339, sizeof(meta_symbol_339)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_346, sizeof(meta_symbol_346)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_347, sizeof(meta_symbol_347)-1), 0, NULL);
 }
 
 void meta_action_68(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_343, sizeof(meta_symbol_343)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_348, sizeof(meta_symbol_348)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_344, sizeof(meta_symbol_344)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_349, sizeof(meta_symbol_349)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_345, sizeof(meta_symbol_345)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_350, sizeof(meta_symbol_350)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_346, sizeof(meta_symbol_346)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_351, sizeof(meta_symbol_351)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_347, sizeof(meta_symbol_347)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action68Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_348, sizeof(meta_symbol_348)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_352, sizeof(meta_symbol_352)-1), 0, NULL);
 }
 
 void meta_action_69(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_351, sizeof(meta_symbol_351)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action69Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_352, sizeof(meta_symbol_352)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_356, sizeof(meta_symbol_356)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_357, sizeof(meta_symbol_357)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_358, sizeof(meta_symbol_358)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action69Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_359, sizeof(meta_symbol_359)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action69Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_360, sizeof(meta_symbol_360)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action69Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_361, sizeof(meta_symbol_361)-1), 0, NULL);
 }
 
 void meta_action_70(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_353, sizeof(meta_symbol_353)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action70Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_354, sizeof(meta_symbol_354)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action70Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_355, sizeof(meta_symbol_355)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_364, sizeof(meta_symbol_364)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action70Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_365, sizeof(meta_symbol_365)-1), 0, NULL);
 }
 
-void meta_action_72(void* runtime, void* variables) {
+void meta_action_71(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_366, sizeof(meta_symbol_366)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action71Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_367, sizeof(meta_symbol_367)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action71Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_368, sizeof(meta_symbol_368)-1), 0, NULL);
 }
 
 void meta_action_73(void* runtime, void* variables) {
+}
+
+void meta_action_74(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     ((meta_Runtime*)runtime)->W_2 = meta_inc(((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0, 1);
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_359, sizeof(meta_symbol_359)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_372, sizeof(meta_symbol_372)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_360, sizeof(meta_symbol_360)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_373, sizeof(meta_symbol_373)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_361, sizeof(meta_symbol_361)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action73Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_362, sizeof(meta_symbol_362)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_374, sizeof(meta_symbol_374)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action74Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_375, sizeof(meta_symbol_375)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_363, sizeof(meta_symbol_363)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action73Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_364, sizeof(meta_symbol_364)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_376, sizeof(meta_symbol_376)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action74Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_377, sizeof(meta_symbol_377)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_365, sizeof(meta_symbol_365)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_378, sizeof(meta_symbol_378)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_366, sizeof(meta_symbol_366)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_379, sizeof(meta_symbol_379)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_367, sizeof(meta_symbol_367)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_380, sizeof(meta_symbol_380)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_368, sizeof(meta_symbol_368)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_381, sizeof(meta_symbol_381)-1), 0, NULL);
 }
 
-void meta_action_74(void* runtime, void* variables) {
-    meta_action_run(&(((struct meta_Action74Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_369, sizeof(meta_symbol_369)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action74Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_370, sizeof(meta_symbol_370)-1), 0, NULL);
+void meta_action_75(void* runtime, void* variables) {
+    meta_action_run(&(((struct meta_Action75Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_382, sizeof(meta_symbol_382)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action75Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_383, sizeof(meta_symbol_383)-1), 0, NULL);
 }
 
-void meta_action_75(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_371, sizeof(meta_symbol_371)-1), 0, NULL);
+void meta_action_76(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_384, sizeof(meta_symbol_384)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_372, sizeof(meta_symbol_372)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_373, sizeof(meta_symbol_373)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action75Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_374, sizeof(meta_symbol_374)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_385, sizeof(meta_symbol_385)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_386, sizeof(meta_symbol_386)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action76Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_387, sizeof(meta_symbol_387)-1), 0, NULL);
 }
 
-void meta_action_76(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_376, sizeof(meta_symbol_376)-1), 0, NULL);
+void meta_action_77(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_389, sizeof(meta_symbol_389)-1), 0, NULL);
 }
 
-void meta_action_77(void* runtime, void* variables) {
+void meta_action_78(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     MetaAction action;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_namedWs;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    action = (((struct meta_Action77Vars*)variables)->x);
+    action = (((struct meta_Action78Vars*)variables)->x);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action.input_buffer, action.start, action.end))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_379, sizeof(meta_symbol_379)-1), 0, NULL);
-        meta_action_run(&(((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_380, sizeof(meta_symbol_380)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_392, sizeof(meta_symbol_392)-1), 0, NULL);
+        meta_action_run(&(((struct meta_Action78Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_393, sizeof(meta_symbol_393)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    meta_action_run(&(((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action78Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
-void meta_action_80(void* runtime, void* variables) {
+void meta_action_81(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
     ((meta_Runtime*)runtime)->W_2 = meta_inc(((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0, 1);
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_384, sizeof(meta_symbol_384)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_397, sizeof(meta_symbol_397)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_385, sizeof(meta_symbol_385)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_398, sizeof(meta_symbol_398)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_386, sizeof(meta_symbol_386)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action80Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_387, sizeof(meta_symbol_387)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_399, sizeof(meta_symbol_399)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action81Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_400, sizeof(meta_symbol_400)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_388, sizeof(meta_symbol_388)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_401, sizeof(meta_symbol_401)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_389, sizeof(meta_symbol_389)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_402, sizeof(meta_symbol_402)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_390, sizeof(meta_symbol_390)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_403, sizeof(meta_symbol_403)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_391, sizeof(meta_symbol_391)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_404, sizeof(meta_symbol_404)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_392, sizeof(meta_symbol_392)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_405, sizeof(meta_symbol_405)-1), 0, NULL);
 }
 
-void meta_action_82(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_394, sizeof(meta_symbol_394)-1), 0, NULL);
+void meta_action_83(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_407, sizeof(meta_symbol_407)-1), 0, NULL);
 }
 
 MetaAction meta_rule_main(MetaParseState* parse_state) {
@@ -2282,6 +2327,7 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
+    unsigned int lookahead_pos;
     or_backtrack_pos = parse_state->pos;
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
@@ -2292,8 +2338,19 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     if (_.valid) {
         _ = meta_rule_opStar(parse_state);
         if (_.valid) {
-            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_21, (void*)vars21, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            lookahead_pos = parse_state->pos;
+            _ = meta_rule_opBind(parse_state);
+            if (_.valid) {
+                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
+            } else {
+                _ = meta_action_create_invalid();
+            }
+            meta_highlight_clear(parse_state, lookahead_pos, parse_state->pos);
+            parse_state->pos = lookahead_pos;
+            if (_.valid) {
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_21, (void*)vars21, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            }
         }
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
@@ -2302,9 +2359,22 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     struct meta_Action22Vars* vars22 = arena_alloc(parse_state->arena, sizeof(struct meta_Action22Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
     vars22->x = _;
+    if (_.valid) {
+        _ = meta_rule_opStar(parse_state);
+        if (_.valid) {
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_22, (void*)vars22, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        }
+    }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    struct meta_Action23Vars* vars23 = arena_alloc(parse_state->arena, sizeof(struct meta_Action23Vars));
+    _ = meta_rule_matchExprPrimitive(parse_state);
+    vars23->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_22, (void*)vars22, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_23, (void*)vars23, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -2319,7 +2389,7 @@ MetaAction meta_rule_opBind(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_145, sizeof(meta_symbol_145)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_158, sizeof(meta_symbol_158)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2343,7 +2413,7 @@ MetaAction meta_rule_opStar(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_146, sizeof(meta_symbol_146)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_159, sizeof(meta_symbol_159)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2367,7 +2437,7 @@ MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_147, sizeof(meta_symbol_147)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_160, sizeof(meta_symbol_160)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2391,7 +2461,7 @@ MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_148, sizeof(meta_symbol_148)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_161, sizeof(meta_symbol_161)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2415,7 +2485,7 @@ MetaAction meta_rule_opAny(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_149, sizeof(meta_symbol_149)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_162, sizeof(meta_symbol_162)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2439,7 +2509,7 @@ MetaAction meta_rule_opOr(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_150, sizeof(meta_symbol_150)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_163, sizeof(meta_symbol_163)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2463,7 +2533,7 @@ MetaAction meta_rule_opAction(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_151, sizeof(meta_symbol_151)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_164, sizeof(meta_symbol_164)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2482,7 +2552,6 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
-    List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
     String* data;
@@ -2490,12 +2559,11 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action30Vars* vars30 = arena_alloc(parse_state->arena, sizeof(struct meta_Action30Vars));
-    star_variables = list_create(parse_state->arena);
+    struct meta_Action31Vars* vars31 = arena_alloc(parse_state->arena, sizeof(struct meta_Action31Vars));
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = string_from_cstring(parse_state->arena, meta_symbol_152, sizeof(meta_symbol_152)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_165, sizeof(meta_symbol_165)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2506,15 +2574,14 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
             parse_state->pos = star_pos;
             break;
         }
-        list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
     }
-    _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+    _ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_.valid) {
         _ = meta_rule_maybeBit(parse_state);
-        vars30->x = _;
+        vars31->x = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_30, (void*)vars30, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_31, (void*)vars31, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -2529,21 +2596,21 @@ MetaAction meta_rule_maybeBit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action31Vars* vars31 = arena_alloc(parse_state->arena, sizeof(struct meta_Action31Vars));
+    struct meta_Action32Vars* vars32 = arena_alloc(parse_state->arena, sizeof(struct meta_Action32Vars));
     _ = meta_rule_bit(parse_state);
-    vars31->x = _;
+    vars32->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_31, (void*)vars31, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_32, (void*)vars32, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action32Vars* vars32 = arena_alloc(parse_state->arena, sizeof(struct meta_Action32Vars));
+    struct meta_Action33Vars* vars33 = arena_alloc(parse_state->arena, sizeof(struct meta_Action33Vars));
     _ = meta_rule_lower(parse_state);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_32, (void*)vars32, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_33, (void*)vars33, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -2558,8 +2625,8 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action33Vars* vars33 = arena_alloc(parse_state->arena, sizeof(struct meta_Action33Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_156, sizeof(meta_symbol_156)-1);
+    struct meta_Action34Vars* vars34 = arena_alloc(parse_state->arena, sizeof(struct meta_Action34Vars));
+    data = string_from_cstring(parse_state->arena, meta_symbol_169, sizeof(meta_symbol_169)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2568,13 +2635,13 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     }
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_33, (void*)vars33, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_34, (void*)vars34, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action34Vars* vars34 = arena_alloc(parse_state->arena, sizeof(struct meta_Action34Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_157, sizeof(meta_symbol_157)-1);
+    struct meta_Action35Vars* vars35 = arena_alloc(parse_state->arena, sizeof(struct meta_Action35Vars));
+    data = string_from_cstring(parse_state->arena, meta_symbol_170, sizeof(meta_symbol_170)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2583,7 +2650,7 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     }
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_34, (void*)vars34, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_35, (void*)vars35, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -2601,18 +2668,18 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action35Vars* vars35 = arena_alloc(parse_state->arena, sizeof(struct meta_Action35Vars));
+    struct meta_Action36Vars* vars36 = arena_alloc(parse_state->arena, sizeof(struct meta_Action36Vars));
     _ = meta_rule_ruleName(parse_state);
-    vars35->x = _;
+    vars36->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_35, (void*)vars35, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_36, (void*)vars36, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action36Vars* vars36 = arena_alloc(parse_state->arena, sizeof(struct meta_Action36Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_162, sizeof(meta_symbol_162)-1);
+    struct meta_Action37Vars* vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
+    data = string_from_cstring(parse_state->arena, meta_symbol_175, sizeof(meta_symbol_175)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2632,30 +2699,30 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        vars36->xs = _;
+        vars37->xs = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_36, (void*)vars36, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_37, (void*)vars37, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action37Vars* vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
+    struct meta_Action38Vars* vars38 = arena_alloc(parse_state->arena, sizeof(struct meta_Action38Vars));
     _ = meta_rule_opAny(parse_state);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_37, (void*)vars37, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_38, (void*)vars38, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action38Vars* vars38 = arena_alloc(parse_state->arena, sizeof(struct meta_Action38Vars));
+    struct meta_Action39Vars* vars39 = arena_alloc(parse_state->arena, sizeof(struct meta_Action39Vars));
     _ = meta_rule_charString(parse_state);
-    vars38->x = _;
+    vars39->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_38, (void*)vars38, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_39, (void*)vars39, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -2673,14 +2740,14 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action39Vars* vars39 = arena_alloc(parse_state->arena, sizeof(struct meta_Action39Vars));
+    struct meta_Action40Vars* vars40 = arena_alloc(parse_state->arena, sizeof(struct meta_Action40Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_opAction(parse_state);
         if (_.valid) {
             _ = meta_rule_space(parse_state);
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_191, sizeof(meta_symbol_191)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_204, sizeof(meta_symbol_204)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2700,11 +2767,11 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
                         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
                     }
                     _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    vars39->xs = _;
+                    vars40->xs = _;
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = string_from_cstring(parse_state->arena, meta_symbol_192, sizeof(meta_symbol_192)-1);
+                            data = string_from_cstring(parse_state->arena, meta_symbol_205, sizeof(meta_symbol_205)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2713,7 +2780,7 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
                             }
                             if (_.valid) {
                                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                                return meta_action_create(meta_action_39, (void*)vars39, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                return meta_action_create(meta_action_40, (void*)vars40, parse_state->input_buffer, action_start_pos, parse_state->pos);
                             }
                         }
                     }
@@ -2724,9 +2791,9 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action40Vars* vars40 = arena_alloc(parse_state->arena, sizeof(struct meta_Action40Vars));
+    struct meta_Action41Vars* vars41 = arena_alloc(parse_state->arena, sizeof(struct meta_Action41Vars));
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-    return meta_action_create(meta_action_40, (void*)vars40, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    return meta_action_create(meta_action_41, (void*)vars41, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
@@ -2740,7 +2807,7 @@ MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action41Vars* vars41 = arena_alloc(parse_state->arena, sizeof(struct meta_Action41Vars));
+    struct meta_Action42Vars* vars42 = arena_alloc(parse_state->arena, sizeof(struct meta_Action42Vars));
     lookahead_pos = parse_state->pos;
     if (parse_state->pos < parse_state->input_buffer->size) {
         parse_state->pos += 1;
@@ -2757,7 +2824,7 @@ MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
     parse_state->pos = lookahead_pos;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_41, (void*)vars41, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_42, (void*)vars42, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -2775,10 +2842,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action42Vars* vars42 = arena_alloc(parse_state->arena, sizeof(struct meta_Action42Vars));
+    struct meta_Action43Vars* vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_213, sizeof(meta_symbol_213)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_226, sizeof(meta_symbol_226)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2787,9 +2854,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
         }
         if (_.valid) {
             _ = meta_rule_nameAsActionLookup(parse_state);
-            vars42->x = _;
+            vars43->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_214, sizeof(meta_symbol_214)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_227, sizeof(meta_symbol_227)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2809,11 +2876,11 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
                     }
                     _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    vars42->ys = _;
+                    vars43->ys = _;
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = string_from_cstring(parse_state->arena, meta_symbol_215, sizeof(meta_symbol_215)-1);
+                            data = string_from_cstring(parse_state->arena, meta_symbol_228, sizeof(meta_symbol_228)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2822,10 +2889,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                             }
                             if (_.valid) {
                                 _ = meta_rule_genRuntime(parse_state);
-                                vars42->runtime = _;
+                                vars43->runtime = _;
                                 if (_.valid) {
                                     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                                    return meta_action_create(meta_action_42, (void*)vars42, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return meta_action_create(meta_action_43, (void*)vars43, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -2837,10 +2904,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action43Vars* vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
+    struct meta_Action44Vars* vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_224, sizeof(meta_symbol_224)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_237, sizeof(meta_symbol_237)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2849,9 +2916,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
         }
         if (_.valid) {
             _ = meta_rule_string(parse_state);
-            vars43->x = _;
+            vars44->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_225, sizeof(meta_symbol_225)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_238, sizeof(meta_symbol_238)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2860,10 +2927,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                 }
                 if (_.valid) {
                     _ = meta_rule_genRuntime(parse_state);
-                    vars43->runtime = _;
+                    vars44->runtime = _;
                     if (_.valid) {
                         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                        return meta_action_create(meta_action_43, (void*)vars43, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                        return meta_action_create(meta_action_44, (void*)vars44, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
@@ -2872,10 +2939,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action44Vars* vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
+    struct meta_Action45Vars* vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_234, sizeof(meta_symbol_234)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_247, sizeof(meta_symbol_247)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2884,11 +2951,11 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
         }
         if (_.valid) {
             _ = meta_rule_stringBuilderName(parse_state);
-            vars44->x = _;
+            vars45->x = _;
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_235, sizeof(meta_symbol_235)-1);
+                    data = string_from_cstring(parse_state->arena, meta_symbol_248, sizeof(meta_symbol_248)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2908,11 +2975,11 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
                         }
                         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        vars44->ys = _;
+                        vars45->ys = _;
                         if (_.valid) {
                             _ = meta_rule_space(parse_state);
                             if (_.valid) {
-                                data = string_from_cstring(parse_state->arena, meta_symbol_236, sizeof(meta_symbol_236)-1);
+                                data = string_from_cstring(parse_state->arena, meta_symbol_249, sizeof(meta_symbol_249)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2921,10 +2988,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                                 }
                                 if (_.valid) {
                                     _ = meta_rule_genRuntime(parse_state);
-                                    vars44->runtime = _;
+                                    vars45->runtime = _;
                                     if (_.valid) {
                                         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                                        return meta_action_create(meta_action_44, (void*)vars44, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                        return meta_action_create(meta_action_45, (void*)vars45, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                     }
                                 }
                             }
@@ -2937,10 +3004,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action45Vars* vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
+    struct meta_Action46Vars* vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_248, sizeof(meta_symbol_248)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_261, sizeof(meta_symbol_261)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2949,13 +3016,13 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
         }
         if (_.valid) {
             _ = meta_rule_stringBuilderName(parse_state);
-            vars45->x = _;
+            vars46->x = _;
             if (_.valid) {
                 _ = meta_rule_genRuntime(parse_state);
-                vars45->runtime = _;
+                vars46->runtime = _;
                 if (_.valid) {
                     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                    return meta_action_create(meta_action_45, (void*)vars45, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                    return meta_action_create(meta_action_46, (void*)vars46, parse_state->input_buffer, action_start_pos, parse_state->pos);
                 }
             }
         }
@@ -2963,10 +3030,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action46Vars* vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
+    struct meta_Action47Vars* vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_254, sizeof(meta_symbol_254)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_267, sizeof(meta_symbol_267)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2975,13 +3042,13 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
         }
         if (_.valid) {
             _ = meta_rule_stringBuilderName(parse_state);
-            vars46->x = _;
+            vars47->x = _;
             if (_.valid) {
                 _ = meta_rule_genRuntime(parse_state);
-                vars46->runtime = _;
+                vars47->runtime = _;
                 if (_.valid) {
                     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                    return meta_action_create(meta_action_46, (void*)vars46, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                    return meta_action_create(meta_action_47, (void*)vars47, parse_state->input_buffer, action_start_pos, parse_state->pos);
                 }
             }
         }
@@ -2989,78 +3056,78 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action47Vars* vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
+    struct meta_Action48Vars* vars48 = arena_alloc(parse_state->arena, sizeof(struct meta_Action48Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_expr(parse_state);
-        vars47->x = _;
+        vars48->x = _;
         if (_.valid) {
             _ = meta_rule_genRuntime(parse_state);
-            vars47->runtime = _;
+            vars48->runtime = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_47, (void*)vars47, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_48, (void*)vars48, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action48Vars* vars48 = arena_alloc(parse_state->arena, sizeof(struct meta_Action48Vars));
+    struct meta_Action49Vars* vars49 = arena_alloc(parse_state->arena, sizeof(struct meta_Action49Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_nameAsActionLookup(parse_state);
-        vars48->x = _;
+        vars49->x = _;
         if (_.valid) {
             _ = meta_rule_genRuntime(parse_state);
-            vars48->runtime = _;
+            vars49->runtime = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_48, (void*)vars48, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_49, (void*)vars49, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action49Vars* vars49 = arena_alloc(parse_state->arena, sizeof(struct meta_Action49Vars));
+    struct meta_Action50Vars* vars50 = arena_alloc(parse_state->arena, sizeof(struct meta_Action50Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_placeholder(parse_state);
-        vars49->x = _;
+        vars50->x = _;
         if (_.valid) {
             _ = meta_rule_genRuntime(parse_state);
-            vars49->runtime = _;
+            vars50->runtime = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_49, (void*)vars49, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_50, (void*)vars50, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action50Vars* vars50 = arena_alloc(parse_state->arena, sizeof(struct meta_Action50Vars));
+    struct meta_Action51Vars* vars51 = arena_alloc(parse_state->arena, sizeof(struct meta_Action51Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_string(parse_state);
-        vars50->x = _;
+        vars51->x = _;
         if (_.valid) {
             _ = meta_rule_genRuntime(parse_state);
-            vars50->runtime = _;
+            vars51->runtime = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_50, (void*)vars50, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_51, (void*)vars51, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action51Vars* vars51 = arena_alloc(parse_state->arena, sizeof(struct meta_Action51Vars));
+    struct meta_Action52Vars* vars52 = arena_alloc(parse_state->arena, sizeof(struct meta_Action52Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_291, sizeof(meta_symbol_291)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_304, sizeof(meta_symbol_304)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3069,9 +3136,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
         }
         if (_.valid) {
             _ = meta_rule_name(parse_state);
-            vars51->x = _;
+            vars52->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_292, sizeof(meta_symbol_292)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_305, sizeof(meta_symbol_305)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3080,9 +3147,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                 }
                 if (_.valid) {
                     _ = meta_rule_wvar(parse_state);
-                    vars51->y = _;
+                    vars52->y = _;
                     if (_.valid) {
-                        data = string_from_cstring(parse_state->arena, meta_symbol_293, sizeof(meta_symbol_293)-1);
+                        data = string_from_cstring(parse_state->arena, meta_symbol_306, sizeof(meta_symbol_306)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3091,9 +3158,9 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                         }
                         if (_.valid) {
                             _ = meta_rule_actionPrimitiveExpression(parse_state);
-                            vars51->z = _;
+                            vars52->z = _;
                             if (_.valid) {
-                                data = string_from_cstring(parse_state->arena, meta_symbol_294, sizeof(meta_symbol_294)-1);
+                                data = string_from_cstring(parse_state->arena, meta_symbol_307, sizeof(meta_symbol_307)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3102,10 +3169,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                                 }
                                 if (_.valid) {
                                     _ = meta_rule_genRuntime(parse_state);
-                                    vars51->runtime = _;
+                                    vars52->runtime = _;
                                     if (_.valid) {
                                         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                                        return meta_action_create(meta_action_51, (void*)vars51, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                        return meta_action_create(meta_action_52, (void*)vars52, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                     }
                                 }
                             }
@@ -3118,10 +3185,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action52Vars* vars52 = arena_alloc(parse_state->arena, sizeof(struct meta_Action52Vars));
+    struct meta_Action53Vars* vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_303, sizeof(meta_symbol_303)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_316, sizeof(meta_symbol_316)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3141,11 +3208,11 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                 list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
             }
             _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            vars52->xs = _;
+            vars53->xs = _;
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_304, sizeof(meta_symbol_304)-1);
+                    data = string_from_cstring(parse_state->arena, meta_symbol_317, sizeof(meta_symbol_317)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3154,10 +3221,10 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     }
                     if (_.valid) {
                         _ = meta_rule_genRuntime(parse_state);
-                        vars52->runtime = _;
+                        vars53->runtime = _;
                         if (_.valid) {
                             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                            return meta_action_create(meta_action_52, (void*)vars52, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                            return meta_action_create(meta_action_53, (void*)vars53, parse_state->input_buffer, action_start_pos, parse_state->pos);
                         }
                     }
                 }
@@ -3176,12 +3243,12 @@ MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action53Vars* vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
+    struct meta_Action54Vars* vars54 = arena_alloc(parse_state->arena, sizeof(struct meta_Action54Vars));
     _ = meta_rule_name(parse_state);
-    vars53->x = _;
+    vars54->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_53, (void*)vars53, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_54, (void*)vars54, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -3195,12 +3262,12 @@ MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action54Vars* vars54 = arena_alloc(parse_state->arena, sizeof(struct meta_Action54Vars));
+    struct meta_Action55Vars* vars55 = arena_alloc(parse_state->arena, sizeof(struct meta_Action55Vars));
     _ = meta_rule_dotname(parse_state);
-    vars54->x = _;
+    vars55->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_54, (void*)vars54, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_55, (void*)vars55, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
@@ -3223,7 +3290,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_313, sizeof(meta_symbol_313)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_326, sizeof(meta_symbol_326)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3237,7 +3304,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_314, sizeof(meta_symbol_314)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_327, sizeof(meta_symbol_327)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3251,7 +3318,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_315, sizeof(meta_symbol_315)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_328, sizeof(meta_symbol_328)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3265,7 +3332,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_316, sizeof(meta_symbol_316)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_329, sizeof(meta_symbol_329)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3279,7 +3346,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_317, sizeof(meta_symbol_317)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_330, sizeof(meta_symbol_330)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3293,7 +3360,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_318, sizeof(meta_symbol_318)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_331, sizeof(meta_symbol_331)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3307,7 +3374,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_319, sizeof(meta_symbol_319)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_332, sizeof(meta_symbol_332)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3321,7 +3388,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_320, sizeof(meta_symbol_320)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_333, sizeof(meta_symbol_333)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3335,7 +3402,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_321, sizeof(meta_symbol_321)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_334, sizeof(meta_symbol_334)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3349,7 +3416,7 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_322, sizeof(meta_symbol_322)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_335, sizeof(meta_symbol_335)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3373,8 +3440,8 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action66Vars* vars66 = arena_alloc(parse_state->arena, sizeof(struct meta_Action66Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_323, sizeof(meta_symbol_323)-1);
+    struct meta_Action67Vars* vars67 = arena_alloc(parse_state->arena, sizeof(struct meta_Action67Vars));
+    data = string_from_cstring(parse_state->arena, meta_symbol_336, sizeof(meta_symbol_336)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3385,9 +3452,9 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
         _ = meta_rule_space(parse_state);
         if (_.valid) {
             _ = meta_rule_string(parse_state);
-            vars66->x = _;
+            vars67->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_324, sizeof(meta_symbol_324)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_337, sizeof(meta_symbol_337)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3396,11 +3463,11 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
                 }
                 if (_.valid) {
                     _ = meta_rule_expr(parse_state);
-                    vars66->y = _;
+                    vars67->y = _;
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = string_from_cstring(parse_state->arena, meta_symbol_325, sizeof(meta_symbol_325)-1);
+                            data = string_from_cstring(parse_state->arena, meta_symbol_338, sizeof(meta_symbol_338)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3409,10 +3476,10 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
                             }
                             if (_.valid) {
                                 _ = meta_rule_genRuntime(parse_state);
-                                vars66->runtime = _;
+                                vars67->runtime = _;
                                 if (_.valid) {
                                     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                                    return meta_action_create(meta_action_66, (void*)vars66, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return meta_action_create(meta_action_67, (void*)vars67, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -3437,22 +3504,22 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action67Vars* vars67 = arena_alloc(parse_state->arena, sizeof(struct meta_Action67Vars));
+    struct meta_Action68Vars* vars68 = arena_alloc(parse_state->arena, sizeof(struct meta_Action68Vars));
     _ = meta_rule_wvar(parse_state);
-    vars67->x = _;
+    vars68->x = _;
     if (_.valid) {
         _ = meta_rule_genRuntime(parse_state);
-        vars67->runtime = _;
+        vars68->runtime = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_67, (void*)vars67, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_68, (void*)vars68, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action68Vars* vars68 = arena_alloc(parse_state->arena, sizeof(struct meta_Action68Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_340, sizeof(meta_symbol_340)-1);
+    struct meta_Action69Vars* vars69 = arena_alloc(parse_state->arena, sizeof(struct meta_Action69Vars));
+    data = string_from_cstring(parse_state->arena, meta_symbol_353, sizeof(meta_symbol_353)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3461,9 +3528,9 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     }
     if (_.valid) {
         _ = meta_rule_wvar(parse_state);
-        vars68->x = _;
+        vars69->x = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_341, sizeof(meta_symbol_341)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_354, sizeof(meta_symbol_354)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3472,9 +3539,9 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 _ = meta_rule_dotname(parse_state);
-                vars68->y = _;
+                vars69->y = _;
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_342, sizeof(meta_symbol_342)-1);
+                    data = string_from_cstring(parse_state->arena, meta_symbol_355, sizeof(meta_symbol_355)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3483,10 +3550,10 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
                     }
                     if (_.valid) {
                         _ = meta_rule_genRuntime(parse_state);
-                        vars68->runtime = _;
+                        vars69->runtime = _;
                         if (_.valid) {
                             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                            return meta_action_create(meta_action_68, (void*)vars68, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                            return meta_action_create(meta_action_69, (void*)vars69, parse_state->input_buffer, action_start_pos, parse_state->pos);
                         }
                     }
                 }
@@ -3496,8 +3563,8 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action69Vars* vars69 = arena_alloc(parse_state->arena, sizeof(struct meta_Action69Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_349, sizeof(meta_symbol_349)-1);
+    struct meta_Action70Vars* vars70 = arena_alloc(parse_state->arena, sizeof(struct meta_Action70Vars));
+    data = string_from_cstring(parse_state->arena, meta_symbol_362, sizeof(meta_symbol_362)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3517,9 +3584,9 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        vars69->xs = _;
+        vars70->xs = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_350, sizeof(meta_symbol_350)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_363, sizeof(meta_symbol_363)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3528,7 +3595,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_69, (void*)vars69, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_70, (void*)vars70, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3544,17 +3611,17 @@ MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action70Vars* vars70 = arena_alloc(parse_state->arena, sizeof(struct meta_Action70Vars));
+    struct meta_Action71Vars* vars71 = arena_alloc(parse_state->arena, sizeof(struct meta_Action71Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_nameAsActionLookup(parse_state);
-        vars70->x = _;
+        vars71->x = _;
         if (_.valid) {
             _ = meta_rule_maybeShift(parse_state);
-            vars70->y = _;
+            vars71->y = _;
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_70, (void*)vars70, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_71, (void*)vars71, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3571,7 +3638,7 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_356, sizeof(meta_symbol_356)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_369, sizeof(meta_symbol_369)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3588,9 +3655,9 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action72Vars* vars72 = arena_alloc(parse_state->arena, sizeof(struct meta_Action72Vars));
+    struct meta_Action73Vars* vars73 = arena_alloc(parse_state->arena, sizeof(struct meta_Action73Vars));
     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-    return meta_action_create(meta_action_72, (void*)vars72, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    return meta_action_create(meta_action_73, (void*)vars73, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
@@ -3607,8 +3674,8 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action73Vars* vars73 = arena_alloc(parse_state->arena, sizeof(struct meta_Action73Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_357, sizeof(meta_symbol_357)-1);
+    struct meta_Action74Vars* vars74 = arena_alloc(parse_state->arena, sizeof(struct meta_Action74Vars));
+    data = string_from_cstring(parse_state->arena, meta_symbol_370, sizeof(meta_symbol_370)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3628,9 +3695,9 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        vars73->xs = _;
+        vars74->xs = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_358, sizeof(meta_symbol_358)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_371, sizeof(meta_symbol_371)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3639,10 +3706,10 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 _ = meta_rule_genRuntime(parse_state);
-                vars73->runtime = _;
+                vars74->runtime = _;
                 if (_.valid) {
                     meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                    return meta_action_create(meta_action_73, (void*)vars73, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                    return meta_action_create(meta_action_74, (void*)vars74, parse_state->input_buffer, action_start_pos, parse_state->pos);
                 }
             }
         }
@@ -3659,15 +3726,15 @@ MetaAction meta_rule_dotname(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action74Vars* vars74 = arena_alloc(parse_state->arena, sizeof(struct meta_Action74Vars));
+    struct meta_Action75Vars* vars75 = arena_alloc(parse_state->arena, sizeof(struct meta_Action75Vars));
     _ = meta_rule_nameAsActionLookup(parse_state);
-    vars74->x = _;
+    vars75->x = _;
     if (_.valid) {
         _ = meta_rule_nextname(parse_state);
-        vars74->y = _;
+        vars75->y = _;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_74, (void*)vars74, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_75, (void*)vars75, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -3682,12 +3749,12 @@ MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action75Vars* vars75 = arena_alloc(parse_state->arena, sizeof(struct meta_Action75Vars));
+    struct meta_Action76Vars* vars76 = arena_alloc(parse_state->arena, sizeof(struct meta_Action76Vars));
     _ = meta_rule_variableName(parse_state);
-    vars75->x = _;
+    vars76->x = _;
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_75, (void*)vars75, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_76, (void*)vars76, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
@@ -3703,8 +3770,8 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action76Vars* vars76 = arena_alloc(parse_state->arena, sizeof(struct meta_Action76Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_375, sizeof(meta_symbol_375)-1);
+    struct meta_Action77Vars* vars77 = arena_alloc(parse_state->arena, sizeof(struct meta_Action77Vars));
+    data = string_from_cstring(parse_state->arena, meta_symbol_388, sizeof(meta_symbol_388)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3723,7 +3790,7 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
         parse_state->pos = nlookahead_pos;
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-            return meta_action_create(meta_action_76, (void*)vars76, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return meta_action_create(meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -3739,8 +3806,8 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action77Vars* vars77 = arena_alloc(parse_state->arena, sizeof(struct meta_Action77Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_377, sizeof(meta_symbol_377)-1);
+    struct meta_Action78Vars* vars78 = arena_alloc(parse_state->arena, sizeof(struct meta_Action78Vars));
+    data = string_from_cstring(parse_state->arena, meta_symbol_390, sizeof(meta_symbol_390)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3754,9 +3821,9 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
         } else {
             _ = meta_action_create_invalid();
         }
-        vars77->x = _;
+        vars78->x = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_378, sizeof(meta_symbol_378)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_391, sizeof(meta_symbol_391)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3765,7 +3832,7 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_78, (void*)vars78, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3792,7 +3859,7 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_381, sizeof(meta_symbol_381)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_394, sizeof(meta_symbol_394)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3834,8 +3901,8 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action80Vars* vars80 = arena_alloc(parse_state->arena, sizeof(struct meta_Action80Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_382, sizeof(meta_symbol_382)-1);
+    struct meta_Action81Vars* vars81 = arena_alloc(parse_state->arena, sizeof(struct meta_Action81Vars));
+    data = string_from_cstring(parse_state->arena, meta_symbol_395, sizeof(meta_symbol_395)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3855,9 +3922,9 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        vars80->xs = _;
+        vars81->xs = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_383, sizeof(meta_symbol_383)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_396, sizeof(meta_symbol_396)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3866,7 +3933,7 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
             }
             if (_.valid) {
                 meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-                return meta_action_create(meta_action_80, (void*)vars80, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return meta_action_create(meta_action_81, (void*)vars81, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3892,8 +3959,8 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    struct meta_Action82Vars* vars82 = arena_alloc(parse_state->arena, sizeof(struct meta_Action82Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_393, sizeof(meta_symbol_393)-1);
+    struct meta_Action83Vars* vars83 = arena_alloc(parse_state->arena, sizeof(struct meta_Action83Vars));
+    data = string_from_cstring(parse_state->arena, meta_symbol_406, sizeof(meta_symbol_406)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3902,13 +3969,13 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     }
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
-        return meta_action_create(meta_action_82, (void*)vars82, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return meta_action_create(meta_action_83, (void*)vars83, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_395, sizeof(meta_symbol_395)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_408, sizeof(meta_symbol_408)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3947,7 +4014,7 @@ MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_396, sizeof(meta_symbol_396)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_409, sizeof(meta_symbol_409)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4008,7 +4075,6 @@ MetaAction meta_rule_name(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
-    List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
@@ -4017,7 +4083,6 @@ MetaAction meta_rule_name(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     _ = meta_rule_char(parse_state);
     if (_.valid) {
-        star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
@@ -4026,9 +4091,8 @@ MetaAction meta_rule_name(MetaParseState* parse_state) {
                 parse_state->pos = star_pos;
                 break;
             }
-            list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
             return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
@@ -4072,7 +4136,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_397, sizeof(meta_symbol_397)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_410, sizeof(meta_symbol_410)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4086,7 +4150,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_398, sizeof(meta_symbol_398)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_411, sizeof(meta_symbol_411)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4100,7 +4164,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_399, sizeof(meta_symbol_399)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_412, sizeof(meta_symbol_412)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4114,7 +4178,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_400, sizeof(meta_symbol_400)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_413, sizeof(meta_symbol_413)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4128,7 +4192,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_401, sizeof(meta_symbol_401)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_414, sizeof(meta_symbol_414)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4142,7 +4206,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_402, sizeof(meta_symbol_402)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_415, sizeof(meta_symbol_415)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4156,7 +4220,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_403, sizeof(meta_symbol_403)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_416, sizeof(meta_symbol_416)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4170,7 +4234,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_404, sizeof(meta_symbol_404)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_417, sizeof(meta_symbol_417)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4184,7 +4248,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_405, sizeof(meta_symbol_405)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_418, sizeof(meta_symbol_418)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4198,7 +4262,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_406, sizeof(meta_symbol_406)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_419, sizeof(meta_symbol_419)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4212,7 +4276,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_407, sizeof(meta_symbol_407)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_420, sizeof(meta_symbol_420)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4226,7 +4290,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_408, sizeof(meta_symbol_408)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_421, sizeof(meta_symbol_421)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4240,7 +4304,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_409, sizeof(meta_symbol_409)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_422, sizeof(meta_symbol_422)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4254,7 +4318,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_410, sizeof(meta_symbol_410)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_423, sizeof(meta_symbol_423)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4268,7 +4332,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_411, sizeof(meta_symbol_411)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_424, sizeof(meta_symbol_424)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4282,7 +4346,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_412, sizeof(meta_symbol_412)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_425, sizeof(meta_symbol_425)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4296,7 +4360,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_413, sizeof(meta_symbol_413)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_426, sizeof(meta_symbol_426)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4310,7 +4374,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_414, sizeof(meta_symbol_414)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_427, sizeof(meta_symbol_427)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4324,7 +4388,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_415, sizeof(meta_symbol_415)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_428, sizeof(meta_symbol_428)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4338,7 +4402,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_416, sizeof(meta_symbol_416)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_429, sizeof(meta_symbol_429)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4352,7 +4416,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_417, sizeof(meta_symbol_417)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_430, sizeof(meta_symbol_430)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4366,7 +4430,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_418, sizeof(meta_symbol_418)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_431, sizeof(meta_symbol_431)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4380,7 +4444,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_419, sizeof(meta_symbol_419)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_432, sizeof(meta_symbol_432)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4394,7 +4458,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_420, sizeof(meta_symbol_420)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_433, sizeof(meta_symbol_433)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4408,7 +4472,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_421, sizeof(meta_symbol_421)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_434, sizeof(meta_symbol_434)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4422,7 +4486,7 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_422, sizeof(meta_symbol_422)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_435, sizeof(meta_symbol_435)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4446,7 +4510,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_423, sizeof(meta_symbol_423)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_436, sizeof(meta_symbol_436)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4460,7 +4524,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_424, sizeof(meta_symbol_424)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_437, sizeof(meta_symbol_437)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4474,7 +4538,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_425, sizeof(meta_symbol_425)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_438, sizeof(meta_symbol_438)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4488,7 +4552,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_426, sizeof(meta_symbol_426)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_439, sizeof(meta_symbol_439)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4502,7 +4566,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_427, sizeof(meta_symbol_427)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_440, sizeof(meta_symbol_440)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4516,7 +4580,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_428, sizeof(meta_symbol_428)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_441, sizeof(meta_symbol_441)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4530,7 +4594,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_429, sizeof(meta_symbol_429)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_442, sizeof(meta_symbol_442)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4544,7 +4608,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_430, sizeof(meta_symbol_430)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_443, sizeof(meta_symbol_443)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4558,7 +4622,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_431, sizeof(meta_symbol_431)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_444, sizeof(meta_symbol_444)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4572,7 +4636,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_432, sizeof(meta_symbol_432)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_445, sizeof(meta_symbol_445)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4586,7 +4650,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_433, sizeof(meta_symbol_433)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_446, sizeof(meta_symbol_446)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4600,7 +4664,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_434, sizeof(meta_symbol_434)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_447, sizeof(meta_symbol_447)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4614,7 +4678,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_435, sizeof(meta_symbol_435)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_448, sizeof(meta_symbol_448)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4628,7 +4692,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_436, sizeof(meta_symbol_436)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_449, sizeof(meta_symbol_449)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4642,7 +4706,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_437, sizeof(meta_symbol_437)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_450, sizeof(meta_symbol_450)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4656,7 +4720,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_438, sizeof(meta_symbol_438)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_451, sizeof(meta_symbol_451)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4670,7 +4734,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_439, sizeof(meta_symbol_439)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_452, sizeof(meta_symbol_452)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4684,7 +4748,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_440, sizeof(meta_symbol_440)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_453, sizeof(meta_symbol_453)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4698,7 +4762,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_441, sizeof(meta_symbol_441)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_454, sizeof(meta_symbol_454)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4712,7 +4776,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_442, sizeof(meta_symbol_442)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_455, sizeof(meta_symbol_455)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4726,7 +4790,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_443, sizeof(meta_symbol_443)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_456, sizeof(meta_symbol_456)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4740,7 +4804,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_444, sizeof(meta_symbol_444)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_457, sizeof(meta_symbol_457)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4754,7 +4818,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_445, sizeof(meta_symbol_445)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_458, sizeof(meta_symbol_458)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4768,7 +4832,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_446, sizeof(meta_symbol_446)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_459, sizeof(meta_symbol_459)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4782,7 +4846,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_447, sizeof(meta_symbol_447)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_460, sizeof(meta_symbol_460)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4796,7 +4860,7 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_448, sizeof(meta_symbol_448)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_461, sizeof(meta_symbol_461)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4815,7 +4879,6 @@ MetaAction meta_rule_number(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
-    List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
@@ -4824,7 +4887,6 @@ MetaAction meta_rule_number(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     _ = meta_rule_digit(parse_state);
     if (_.valid) {
-        star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
@@ -4833,9 +4895,8 @@ MetaAction meta_rule_number(MetaParseState* parse_state) {
                 parse_state->pos = star_pos;
                 break;
             }
-            list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);
         if (_.valid) {
             meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
             return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
@@ -4849,14 +4910,12 @@ MetaAction meta_rule_space(MetaParseState* parse_state) {
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
-    List* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    star_variables = list_create(parse_state->arena);
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
@@ -4865,9 +4924,8 @@ MetaAction meta_rule_space(MetaParseState* parse_state) {
             parse_state->pos = star_pos;
             break;
         }
-        list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
     }
-    _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+    _ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_.valid) {
         meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
         return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
@@ -4885,7 +4943,7 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_449, sizeof(meta_symbol_449)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_462, sizeof(meta_symbol_462)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4899,7 +4957,7 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_450, sizeof(meta_symbol_450)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_463, sizeof(meta_symbol_463)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 793e7b0..77b9c4b 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -199,7 +199,7 @@ matchAssign =
     ;
 
 matchExprRepeat =
-    | matchExprPrimitive:x opStar -> {
+    | matchExprPrimitive:x opStar &opBind -> {
         >ruleVars {
             unique("List* star_variables;\n")
             unique("unsigned int star_pos;\n")
@@ -218,6 +218,22 @@ matchExprRepeat =
         < "}\n"
         "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"
     }
+    | matchExprPrimitive:x opStar -> {
+        >ruleVars {
+            unique("unsigned int star_pos;\n")
+            unique("unsigned int star_start_pos;\n")
+        }
+        "star_start_pos = parse_state->pos;\n"
+        "while (1) {\n" >
+            "star_pos = parse_state->pos;\n"
+            x
+            "if (!_.valid) {\n" >
+                "parse_state->pos = star_pos;\n"
+                "break;\n"
+            < "}\n"
+        < "}\n"
+        "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"
+    }
     | matchExprPrimitive:x -> {
         x
     }

2025-11-23 08:56 Rickard pushed to rlworkbench

commit 77acaff196ef203d527149f6a1e87a3f994e5496
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sun Nov 23 08:53:04 2025 +0100

    Store highlight info in a single array only

diff --git a/src/highlight.c b/src/highlight.c
index e45ad7d..727da58 100644
--- a/src/highlight.c
+++ b/src/highlight.c
@@ -20,24 +20,12 @@ int main(int argc, char** argv) {
     MetaParseState* parse_state = meta_parse_state_from_stdin(&arena);
     MetaAction action = get_parse_function(argc, argv)(parse_state);
     int i;
-    MetaHighlight highlight = MetaHighlight_Unset;
-    MetaRuleParseInfo* rule_parse_info;
     if (!action.valid) {
         fprintf(stderr, "ERROR: parse error [pos=%d] [size=%d]", parse_state->pos, parse_state->input_buffer->size);
         exit(1);
     }
-    rule_parse_info = parse_state->rule_parse_info;
-    while (rule_parse_info) {
-        if (rule_parse_info->highlight != MetaHighlight_None) {
-            for (i=rule_parse_info->start; i<rule_parse_info->end; i++) {
-                parse_state->highlight[i] = rule_parse_info->highlight;
-            }
-        }
-        rule_parse_info = rule_parse_info->previous;
-    }
     for (i=0; i<parse_state->input_buffer->size; i++) {
-        highlight = parse_state->highlight[i];
-        switch (highlight) {
+        switch (parse_state->highlight[i]) {
             case MetaHighlight_RuleName:
                 printf("\033[34m");
                 break;
diff --git a/src/meta.c b/src/meta.c
index b4228e0..b8fab87 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -65,36 +65,31 @@ unsigned char meta_action_first_byte(MetaAction action) {
     return (unsigned char)action.input_buffer->buffer[action.start];
 }
 
-typedef struct meta_rule_parse_info MetaRuleParseInfo;
-
-struct meta_rule_parse_info {
-    unsigned int start;
-    unsigned int end;
-    MetaHighlight highlight;
-    MetaRuleParseInfo* previous;
-};
-
 typedef struct meta_parse_state {
     String* input_buffer;
     MetaHighlight* highlight;
     unsigned int pos;
-    MetaRuleParseInfo* rule_parse_info;
     Arena* arena;
 } MetaParseState;
 
-MetaAction meta_register_parse(Arena* arena, MetaAction action, MetaParseState* parse_state, MetaHighlight highlight) {
-    MetaRuleParseInfo* rule_parse_info = arena_alloc(arena, sizeof(MetaRuleParseInfo));
-    rule_parse_info->start = action.start;
-    rule_parse_info->end = action.end;
-    rule_parse_info->highlight = highlight;
-    rule_parse_info->previous = parse_state->rule_parse_info;
-    parse_state->rule_parse_info = rule_parse_info;
-    return action;
+void meta_highlight_register(MetaParseState* parse_state, unsigned int start, unsigned int end, MetaHighlight highlight) {
+    while (start < end) {
+        if (parse_state->highlight[start] == MetaHighlight_Unset || parse_state->highlight[start] == MetaHighlight_None) {
+            parse_state->highlight[start] = highlight;
+        }
+        start++;
+    }
+}
+
+void meta_highlight_clear(MetaParseState* parse_state, unsigned int start, unsigned int end) {
+    while (start < end) {
+        parse_state->highlight[start] = MetaHighlight_Unset;
+        start++;
+    }
 }
 
 MetaParseState* meta_parse_state_from_stdin(Arena* arena) {
     char* pos;
-    int i;
     MetaParseState* parse_state = arena_alloc(arena, sizeof(MetaParseState));
     parse_state->input_buffer = arena_alloc(arena, sizeof(String));
     parse_state->input_buffer->buffer = arena_alloc(arena, 1);
@@ -108,10 +103,7 @@ MetaParseState* meta_parse_state_from_stdin(Arena* arena) {
     }
     parse_state->input_buffer->size--;
     parse_state->highlight = (MetaHighlight*)arena_alloc(arena, sizeof(MetaHighlight)*parse_state->input_buffer->size);
-    for (i=0; i<parse_state->input_buffer->size; i++) {
-        parse_state->highlight[i] = MetaHighlight_Unset;
-    }
-    parse_state->rule_parse_info = NULL;
+    meta_highlight_clear(parse_state, 0, parse_state->input_buffer->size);
     return parse_state;
 }
 
diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index 730b777..6f58b6a 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -121,46 +121,46 @@ static char meta_symbol_78[] = "MetaAction ";
 static char meta_symbol_79[] = "rule_";
 static char meta_symbol_80[] = "(MetaParseState* parse_state) {\n";
 static char meta_symbol_81[] = "unsigned int or_backtrack_pos;\n";
-static char meta_symbol_82[] = "MetaRuleParseInfo* or_backtrack_rule_parse_info;\n";
-static char meta_symbol_83[] = "unsigned int action_start_pos;\n";
-static char meta_symbol_84[] = "MetaAction _;\n";
-static char meta_symbol_85[] = "MetaHighlight highlight = ";
-static char meta_symbol_86[] = ";\n";
-static char meta_symbol_87[] = "return meta_action_create_invalid();\n";
-static char meta_symbol_88[] = "}\n";
-static char meta_symbol_89[] = "\n";
-static char meta_symbol_90[] = "[";
-static char meta_symbol_91[] = "]";
-static char meta_symbol_92[] = "MetaHighlight_";
-static char meta_symbol_93[] = "MetaHighlight_None";
-static char meta_symbol_94[] = "or_backtrack_pos = parse_state->pos;\n";
-static char meta_symbol_95[] = "or_backtrack_rule_parse_info = parse_state->rule_parse_info;\n";
-static char meta_symbol_96[] = "struct ";
-static char meta_symbol_97[] = "Action";
-static char meta_symbol_98[] = "Vars {\n";
-static char meta_symbol_99[] = "};\n";
-static char meta_symbol_100[] = "parse_state->pos = or_backtrack_pos;\n";
-static char meta_symbol_101[] = "parse_state->rule_parse_info = or_backtrack_rule_parse_info;\n";
-static char meta_symbol_102[] = "action_start_pos = parse_state->pos;\n";
-static char meta_symbol_103[] = "if (_.valid) {\n";
-static char meta_symbol_104[] = "}\n";
-static char meta_symbol_105[] = "unsigned int nlookahead_pos;\n";
-static char meta_symbol_106[] = "unsigned int nlookahead_pos;\n";
-static char meta_symbol_107[] = "nlookahead_pos = parse_state->pos;\n";
-static char meta_symbol_108[] = "if (_.valid) {\n";
-static char meta_symbol_109[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_110[] = "} else {\n";
-static char meta_symbol_111[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char meta_symbol_112[] = "}\n";
-static char meta_symbol_113[] = "parse_state->pos = nlookahead_pos;\n";
+static char meta_symbol_82[] = "unsigned int action_start_pos;\n";
+static char meta_symbol_83[] = "MetaAction _;\n";
+static char meta_symbol_84[] = "MetaHighlight highlight = ";
+static char meta_symbol_85[] = ";\n";
+static char meta_symbol_86[] = "return meta_action_create_invalid();\n";
+static char meta_symbol_87[] = "}\n";
+static char meta_symbol_88[] = "\n";
+static char meta_symbol_89[] = "[";
+static char meta_symbol_90[] = "]";
+static char meta_symbol_91[] = "MetaHighlight_";
+static char meta_symbol_92[] = "MetaHighlight_None";
+static char meta_symbol_93[] = "or_backtrack_pos = parse_state->pos;\n";
+static char meta_symbol_94[] = "struct ";
+static char meta_symbol_95[] = "Action";
+static char meta_symbol_96[] = "Vars {\n";
+static char meta_symbol_97[] = "};\n";
+static char meta_symbol_98[] = "meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);\n";
+static char meta_symbol_99[] = "parse_state->pos = or_backtrack_pos;\n";
+static char meta_symbol_100[] = "action_start_pos = parse_state->pos;\n";
+static char meta_symbol_101[] = "if (_.valid) {\n";
+static char meta_symbol_102[] = "}\n";
+static char meta_symbol_103[] = "unsigned int nlookahead_pos;\n";
+static char meta_symbol_104[] = "unsigned int nlookahead_pos;\n";
+static char meta_symbol_105[] = "nlookahead_pos = parse_state->pos;\n";
+static char meta_symbol_106[] = "if (_.valid) {\n";
+static char meta_symbol_107[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_108[] = "} else {\n";
+static char meta_symbol_109[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char meta_symbol_110[] = "}\n";
+static char meta_symbol_111[] = "meta_highlight_clear(parse_state, nlookahead_pos, parse_state->pos);\n";
+static char meta_symbol_112[] = "parse_state->pos = nlookahead_pos;\n";
+static char meta_symbol_113[] = "unsigned int lookahead_pos;\n";
 static char meta_symbol_114[] = "unsigned int lookahead_pos;\n";
-static char meta_symbol_115[] = "unsigned int lookahead_pos;\n";
-static char meta_symbol_116[] = "lookahead_pos = parse_state->pos;\n";
-static char meta_symbol_117[] = "if (_.valid) {\n";
-static char meta_symbol_118[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char meta_symbol_119[] = "} else {\n";
-static char meta_symbol_120[] = "_ = meta_action_create_invalid();\n";
-static char meta_symbol_121[] = "}\n";
+static char meta_symbol_115[] = "lookahead_pos = parse_state->pos;\n";
+static char meta_symbol_116[] = "if (_.valid) {\n";
+static char meta_symbol_117[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char meta_symbol_118[] = "} else {\n";
+static char meta_symbol_119[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_120[] = "}\n";
+static char meta_symbol_121[] = "meta_highlight_clear(parse_state, lookahead_pos, parse_state->pos);\n";
 static char meta_symbol_122[] = "parse_state->pos = lookahead_pos;\n";
 static char meta_symbol_123[] = "MetaAction ";
 static char meta_symbol_124[] = ";\n";
@@ -243,251 +243,253 @@ static char meta_symbol_200[] = "Vars* vars";
 static char meta_symbol_201[] = " = arena_alloc(parse_state->arena, sizeof(struct ";
 static char meta_symbol_202[] = "Action";
 static char meta_symbol_203[] = "Vars));\n";
-static char meta_symbol_204[] = "return meta_register_parse(parse_state->arena, meta_action_create(";
-static char meta_symbol_205[] = "action_";
-static char meta_symbol_206[] = ", (void*)vars";
-static char meta_symbol_207[] = ", parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n";
-static char meta_symbol_208[] = "return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n";
-static char meta_symbol_209[] = "((";
-static char meta_symbol_210[] = "Runtime*)runtime)";
-static char meta_symbol_211[] = "unseen(";
-static char meta_symbol_212[] = ") -> {";
-static char meta_symbol_213[] = "}";
-static char meta_symbol_214[] = "MetaAction action;\n";
-static char meta_symbol_215[] = "MetaAction action;\n";
-static char meta_symbol_216[] = "action = ";
-static char meta_symbol_217[] = ";\n";
-static char meta_symbol_218[] = "if (!string_builder_contains(";
-static char meta_symbol_219[] = "->current_string_builder, string_slice(";
-static char meta_symbol_220[] = "->arena, action.input_buffer, action.start, action.end))) {\n";
-static char meta_symbol_221[] = "}\n";
-static char meta_symbol_222[] = "unique(";
-static char meta_symbol_223[] = ")";
-static char meta_symbol_224[] = "if (!string_builder_contains(";
-static char meta_symbol_225[] = "->current_string_builder, ";
-static char meta_symbol_226[] = ")) {\n";
-static char meta_symbol_227[] = "string_builder_append(";
-static char meta_symbol_228[] = "->current_string_builder, ";
-static char meta_symbol_229[] = "->arena, ";
-static char meta_symbol_230[] = ", 0, NULL);\n";
-static char meta_symbol_231[] = "}\n";
-static char meta_symbol_232[] = ">";
-static char meta_symbol_233[] = "{";
-static char meta_symbol_234[] = "}";
-static char meta_symbol_235[] = "StringBuilder* last_string_builder;\n";
-static char meta_symbol_236[] = "StringBuilder* last_string_builder;\n";
-static char meta_symbol_237[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_238[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_239[] = "last_string_builder = ";
-static char meta_symbol_240[] = "->current_string_builder;\n";
-static char meta_symbol_241[] = "string_builder = ";
-static char meta_symbol_242[] = "->named_string_builder_";
-static char meta_symbol_243[] = ";\n";
-static char meta_symbol_244[] = "->current_string_builder = string_builder;\n";
-static char meta_symbol_245[] = "->current_string_builder = last_string_builder;\n";
-static char meta_symbol_246[] = "<";
-static char meta_symbol_247[] = "string_builder_append(";
-static char meta_symbol_248[] = "->current_string_builder, ";
-static char meta_symbol_249[] = "->arena, NULL, 0, ";
-static char meta_symbol_250[] = "->named_string_builder_";
-static char meta_symbol_251[] = ");\n";
-static char meta_symbol_252[] = "$";
-static char meta_symbol_253[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_254[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_255[] = "string_builder = string_builder_create(";
-static char meta_symbol_256[] = "->arena);\n";
-static char meta_symbol_257[] = "->named_string_builder_";
-static char meta_symbol_258[] = " = string_builder;\n";
-static char meta_symbol_259[] = "string_builder_append(";
-static char meta_symbol_260[] = "->current_string_builder, ";
-static char meta_symbol_261[] = "->arena, string_from_integer(";
-static char meta_symbol_262[] = "->arena, ";
-static char meta_symbol_263[] = "), 0, NULL);\n";
-static char meta_symbol_264[] = "meta_action_run(&";
-static char meta_symbol_265[] = ", runtime, ";
-static char meta_symbol_266[] = "->current_string_builder, ";
-static char meta_symbol_267[] = "->arena);\n";
-static char meta_symbol_268[] = "void placeholder_";
-static char meta_symbol_269[] = "(void* runtime, void* variables);\n";
+static char meta_symbol_204[] = "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n";
+static char meta_symbol_205[] = "return meta_action_create(";
+static char meta_symbol_206[] = "action_";
+static char meta_symbol_207[] = ", (void*)vars";
+static char meta_symbol_208[] = ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char meta_symbol_209[] = "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n";
+static char meta_symbol_210[] = "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char meta_symbol_211[] = "((";
+static char meta_symbol_212[] = "Runtime*)runtime)";
+static char meta_symbol_213[] = "unseen(";
+static char meta_symbol_214[] = ") -> {";
+static char meta_symbol_215[] = "}";
+static char meta_symbol_216[] = "MetaAction action;\n";
+static char meta_symbol_217[] = "MetaAction action;\n";
+static char meta_symbol_218[] = "action = ";
+static char meta_symbol_219[] = ";\n";
+static char meta_symbol_220[] = "if (!string_builder_contains(";
+static char meta_symbol_221[] = "->current_string_builder, string_slice(";
+static char meta_symbol_222[] = "->arena, action.input_buffer, action.start, action.end))) {\n";
+static char meta_symbol_223[] = "}\n";
+static char meta_symbol_224[] = "unique(";
+static char meta_symbol_225[] = ")";
+static char meta_symbol_226[] = "if (!string_builder_contains(";
+static char meta_symbol_227[] = "->current_string_builder, ";
+static char meta_symbol_228[] = ")) {\n";
+static char meta_symbol_229[] = "string_builder_append(";
+static char meta_symbol_230[] = "->current_string_builder, ";
+static char meta_symbol_231[] = "->arena, ";
+static char meta_symbol_232[] = ", 0, NULL);\n";
+static char meta_symbol_233[] = "}\n";
+static char meta_symbol_234[] = ">";
+static char meta_symbol_235[] = "{";
+static char meta_symbol_236[] = "}";
+static char meta_symbol_237[] = "StringBuilder* last_string_builder;\n";
+static char meta_symbol_238[] = "StringBuilder* last_string_builder;\n";
+static char meta_symbol_239[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_240[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_241[] = "last_string_builder = ";
+static char meta_symbol_242[] = "->current_string_builder;\n";
+static char meta_symbol_243[] = "string_builder = ";
+static char meta_symbol_244[] = "->named_string_builder_";
+static char meta_symbol_245[] = ";\n";
+static char meta_symbol_246[] = "->current_string_builder = string_builder;\n";
+static char meta_symbol_247[] = "->current_string_builder = last_string_builder;\n";
+static char meta_symbol_248[] = "<";
+static char meta_symbol_249[] = "string_builder_append(";
+static char meta_symbol_250[] = "->current_string_builder, ";
+static char meta_symbol_251[] = "->arena, NULL, 0, ";
+static char meta_symbol_252[] = "->named_string_builder_";
+static char meta_symbol_253[] = ");\n";
+static char meta_symbol_254[] = "$";
+static char meta_symbol_255[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_256[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_257[] = "string_builder = string_builder_create(";
+static char meta_symbol_258[] = "->arena);\n";
+static char meta_symbol_259[] = "->named_string_builder_";
+static char meta_symbol_260[] = " = string_builder;\n";
+static char meta_symbol_261[] = "string_builder_append(";
+static char meta_symbol_262[] = "->current_string_builder, ";
+static char meta_symbol_263[] = "->arena, string_from_integer(";
+static char meta_symbol_264[] = "->arena, ";
+static char meta_symbol_265[] = "), 0, NULL);\n";
+static char meta_symbol_266[] = "meta_action_run(&";
+static char meta_symbol_267[] = ", runtime, ";
+static char meta_symbol_268[] = "->current_string_builder, ";
+static char meta_symbol_269[] = "->arena);\n";
 static char meta_symbol_270[] = "void placeholder_";
-static char meta_symbol_271[] = "(void* runtime, void* variables) {\n";
-static char meta_symbol_272[] = "}\n";
-static char meta_symbol_273[] = "\n";
-static char meta_symbol_274[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_275[] = "StringBuilder* string_builder;\n";
-static char meta_symbol_276[] = "string_builder = string_builder_create(";
-static char meta_symbol_277[] = "->arena);\n";
-static char meta_symbol_278[] = "meta_placeholder_append2(";
-static char meta_symbol_279[] = "->arena, ";
-static char meta_symbol_280[] = "->placeholders, string_builder, meta_action_create(placeholder_";
-static char meta_symbol_281[] = ", variables, NULL, 0, 0));\n";
-static char meta_symbol_282[] = "string_builder_append(";
-static char meta_symbol_283[] = "->current_string_builder, ";
-static char meta_symbol_284[] = "->arena, NULL, 0, string_builder);\n";
-static char meta_symbol_285[] = "string_builder_append(";
-static char meta_symbol_286[] = "->current_string_builder, ";
-static char meta_symbol_287[] = "->arena, ";
-static char meta_symbol_288[] = ", 0, NULL);\n";
-static char meta_symbol_289[] = "#";
-static char meta_symbol_290[] = "(";
-static char meta_symbol_291[] = " ";
-static char meta_symbol_292[] = ")";
-static char meta_symbol_293[] = "->W_";
-static char meta_symbol_294[] = " = meta_";
-static char meta_symbol_295[] = "(";
-static char meta_symbol_296[] = "->W_";
-static char meta_symbol_297[] = " ? ";
+static char meta_symbol_271[] = "(void* runtime, void* variables);\n";
+static char meta_symbol_272[] = "void placeholder_";
+static char meta_symbol_273[] = "(void* runtime, void* variables) {\n";
+static char meta_symbol_274[] = "}\n";
+static char meta_symbol_275[] = "\n";
+static char meta_symbol_276[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_277[] = "StringBuilder* string_builder;\n";
+static char meta_symbol_278[] = "string_builder = string_builder_create(";
+static char meta_symbol_279[] = "->arena);\n";
+static char meta_symbol_280[] = "meta_placeholder_append2(";
+static char meta_symbol_281[] = "->arena, ";
+static char meta_symbol_282[] = "->placeholders, string_builder, meta_action_create(placeholder_";
+static char meta_symbol_283[] = ", variables, NULL, 0, 0));\n";
+static char meta_symbol_284[] = "string_builder_append(";
+static char meta_symbol_285[] = "->current_string_builder, ";
+static char meta_symbol_286[] = "->arena, NULL, 0, string_builder);\n";
+static char meta_symbol_287[] = "string_builder_append(";
+static char meta_symbol_288[] = "->current_string_builder, ";
+static char meta_symbol_289[] = "->arena, ";
+static char meta_symbol_290[] = ", 0, NULL);\n";
+static char meta_symbol_291[] = "#";
+static char meta_symbol_292[] = "(";
+static char meta_symbol_293[] = " ";
+static char meta_symbol_294[] = ")";
+static char meta_symbol_295[] = "->W_";
+static char meta_symbol_296[] = " = meta_";
+static char meta_symbol_297[] = "(";
 static char meta_symbol_298[] = "->W_";
-static char meta_symbol_299[] = " : 0, ";
-static char meta_symbol_300[] = ");\n";
-static char meta_symbol_301[] = ">";
-static char meta_symbol_302[] = "<";
-static char meta_symbol_303[] = "string_builder_append(";
-static char meta_symbol_304[] = "->current_string_builder, ";
-static char meta_symbol_305[] = "->arena, NULL, 1, NULL);\n";
-static char meta_symbol_306[] = "string_builder_append(";
-static char meta_symbol_307[] = "->current_string_builder, ";
-static char meta_symbol_308[] = "->arena, NULL, -1, NULL);\n";
-static char meta_symbol_309[] = "StringBuilder* named_string_builder_";
-static char meta_symbol_310[] = ";\n";
-static char meta_symbol_311[] = "0";
-static char meta_symbol_312[] = "1";
-static char meta_symbol_313[] = "2";
-static char meta_symbol_314[] = "3";
-static char meta_symbol_315[] = "4";
-static char meta_symbol_316[] = "5";
-static char meta_symbol_317[] = "6";
-static char meta_symbol_318[] = "7";
-static char meta_symbol_319[] = "8";
-static char meta_symbol_320[] = "9";
-static char meta_symbol_321[] = "{";
-static char meta_symbol_322[] = "*";
-static char meta_symbol_323[] = "}";
-static char meta_symbol_324[] = "int i;\n";
-static char meta_symbol_325[] = "int i;\n";
-static char meta_symbol_326[] = "for (i=0; i < ";
-static char meta_symbol_327[] = "; i++) {\n";
-static char meta_symbol_328[] = "string_builder_append(";
-static char meta_symbol_329[] = "->current_string_builder, ";
-static char meta_symbol_330[] = "->arena, ";
-static char meta_symbol_331[] = ", 0, NULL);\n";
-static char meta_symbol_332[] = "}\n";
-static char meta_symbol_333[] = "(";
-static char meta_symbol_334[] = "->W_";
-static char meta_symbol_335[] = " ? ";
+static char meta_symbol_299[] = " ? ";
+static char meta_symbol_300[] = "->W_";
+static char meta_symbol_301[] = " : 0, ";
+static char meta_symbol_302[] = ");\n";
+static char meta_symbol_303[] = ">";
+static char meta_symbol_304[] = "<";
+static char meta_symbol_305[] = "string_builder_append(";
+static char meta_symbol_306[] = "->current_string_builder, ";
+static char meta_symbol_307[] = "->arena, NULL, 1, NULL);\n";
+static char meta_symbol_308[] = "string_builder_append(";
+static char meta_symbol_309[] = "->current_string_builder, ";
+static char meta_symbol_310[] = "->arena, NULL, -1, NULL);\n";
+static char meta_symbol_311[] = "StringBuilder* named_string_builder_";
+static char meta_symbol_312[] = ";\n";
+static char meta_symbol_313[] = "0";
+static char meta_symbol_314[] = "1";
+static char meta_symbol_315[] = "2";
+static char meta_symbol_316[] = "3";
+static char meta_symbol_317[] = "4";
+static char meta_symbol_318[] = "5";
+static char meta_symbol_319[] = "6";
+static char meta_symbol_320[] = "7";
+static char meta_symbol_321[] = "8";
+static char meta_symbol_322[] = "9";
+static char meta_symbol_323[] = "{";
+static char meta_symbol_324[] = "*";
+static char meta_symbol_325[] = "}";
+static char meta_symbol_326[] = "int i;\n";
+static char meta_symbol_327[] = "int i;\n";
+static char meta_symbol_328[] = "for (i=0; i < ";
+static char meta_symbol_329[] = "; i++) {\n";
+static char meta_symbol_330[] = "string_builder_append(";
+static char meta_symbol_331[] = "->current_string_builder, ";
+static char meta_symbol_332[] = "->arena, ";
+static char meta_symbol_333[] = ", 0, NULL);\n";
+static char meta_symbol_334[] = "}\n";
+static char meta_symbol_335[] = "(";
 static char meta_symbol_336[] = "->W_";
-static char meta_symbol_337[] = " : 0)";
-static char meta_symbol_338[] = "(";
-static char meta_symbol_339[] = "-";
-static char meta_symbol_340[] = ")";
-static char meta_symbol_341[] = "((";
-static char meta_symbol_342[] = "->W_";
-static char meta_symbol_343[] = " ? ";
+static char meta_symbol_337[] = " ? ";
+static char meta_symbol_338[] = "->W_";
+static char meta_symbol_339[] = " : 0)";
+static char meta_symbol_340[] = "(";
+static char meta_symbol_341[] = "-";
+static char meta_symbol_342[] = ")";
+static char meta_symbol_343[] = "((";
 static char meta_symbol_344[] = "->W_";
-static char meta_symbol_345[] = " : 0)-";
-static char meta_symbol_346[] = ")";
-static char meta_symbol_347[] = "number(";
+static char meta_symbol_345[] = " ? ";
+static char meta_symbol_346[] = "->W_";
+static char meta_symbol_347[] = " : 0)-";
 static char meta_symbol_348[] = ")";
-static char meta_symbol_349[] = "(0";
+static char meta_symbol_349[] = "number(";
 static char meta_symbol_350[] = ")";
-static char meta_symbol_351[] = "+(meta_action_first_byte(";
+static char meta_symbol_351[] = "(0";
 static char meta_symbol_352[] = ")";
-static char meta_symbol_353[] = ")";
-static char meta_symbol_354[] = "<<";
-static char meta_symbol_355[] = "\"";
-static char meta_symbol_356[] = "\"";
-static char meta_symbol_357[] = "static char ";
-static char meta_symbol_358[] = "symbol_";
-static char meta_symbol_359[] = "[] = \"";
-static char meta_symbol_360[] = "\";\n";
-static char meta_symbol_361[] = "string_from_cstring(";
-static char meta_symbol_362[] = "->arena, ";
-static char meta_symbol_363[] = "symbol_";
-static char meta_symbol_364[] = ", sizeof(";
+static char meta_symbol_353[] = "+(meta_action_first_byte(";
+static char meta_symbol_354[] = ")";
+static char meta_symbol_355[] = ")";
+static char meta_symbol_356[] = "<<";
+static char meta_symbol_357[] = "\"";
+static char meta_symbol_358[] = "\"";
+static char meta_symbol_359[] = "static char ";
+static char meta_symbol_360[] = "symbol_";
+static char meta_symbol_361[] = "[] = \"";
+static char meta_symbol_362[] = "\";\n";
+static char meta_symbol_363[] = "string_from_cstring(";
+static char meta_symbol_364[] = "->arena, ";
 static char meta_symbol_365[] = "symbol_";
-static char meta_symbol_366[] = ")-1)";
-static char meta_symbol_367[] = "(";
-static char meta_symbol_368[] = ")";
-static char meta_symbol_369[] = "(((struct ";
-static char meta_symbol_370[] = "Action";
-static char meta_symbol_371[] = "Vars*)variables)->";
-static char meta_symbol_372[] = ")";
-static char meta_symbol_373[] = ".len";
-static char meta_symbol_374[] = "meta_action_len";
-static char meta_symbol_375[] = "W[";
-static char meta_symbol_376[] = "]";
-static char meta_symbol_377[] = "unsigned int W_";
-static char meta_symbol_378[] = ";\n";
-static char meta_symbol_379[] = "\"";
-static char meta_symbol_380[] = "\'";
-static char meta_symbol_381[] = "\'";
-static char meta_symbol_382[] = "static char ";
-static char meta_symbol_383[] = "symbol_";
-static char meta_symbol_384[] = "[] = \"";
-static char meta_symbol_385[] = "\";\n";
-static char meta_symbol_386[] = "string_from_cstring(parse_state->arena, ";
-static char meta_symbol_387[] = "symbol_";
-static char meta_symbol_388[] = ", sizeof(";
+static char meta_symbol_366[] = ", sizeof(";
+static char meta_symbol_367[] = "symbol_";
+static char meta_symbol_368[] = ")-1)";
+static char meta_symbol_369[] = "(";
+static char meta_symbol_370[] = ")";
+static char meta_symbol_371[] = "(((struct ";
+static char meta_symbol_372[] = "Action";
+static char meta_symbol_373[] = "Vars*)variables)->";
+static char meta_symbol_374[] = ")";
+static char meta_symbol_375[] = ".len";
+static char meta_symbol_376[] = "meta_action_len";
+static char meta_symbol_377[] = "W[";
+static char meta_symbol_378[] = "]";
+static char meta_symbol_379[] = "unsigned int W_";
+static char meta_symbol_380[] = ";\n";
+static char meta_symbol_381[] = "\"";
+static char meta_symbol_382[] = "\'";
+static char meta_symbol_383[] = "\'";
+static char meta_symbol_384[] = "static char ";
+static char meta_symbol_385[] = "symbol_";
+static char meta_symbol_386[] = "[] = \"";
+static char meta_symbol_387[] = "\";\n";
+static char meta_symbol_388[] = "string_from_cstring(parse_state->arena, ";
 static char meta_symbol_389[] = "symbol_";
-static char meta_symbol_390[] = ")-1)";
-static char meta_symbol_391[] = "\"";
-static char meta_symbol_392[] = "\\\"";
-static char meta_symbol_393[] = "\'";
-static char meta_symbol_394[] = "\\";
-static char meta_symbol_395[] = "a";
-static char meta_symbol_396[] = "b";
-static char meta_symbol_397[] = "c";
-static char meta_symbol_398[] = "d";
-static char meta_symbol_399[] = "e";
-static char meta_symbol_400[] = "f";
-static char meta_symbol_401[] = "g";
-static char meta_symbol_402[] = "h";
-static char meta_symbol_403[] = "i";
-static char meta_symbol_404[] = "j";
-static char meta_symbol_405[] = "k";
-static char meta_symbol_406[] = "l";
-static char meta_symbol_407[] = "m";
-static char meta_symbol_408[] = "n";
-static char meta_symbol_409[] = "o";
-static char meta_symbol_410[] = "p";
-static char meta_symbol_411[] = "q";
-static char meta_symbol_412[] = "r";
-static char meta_symbol_413[] = "s";
-static char meta_symbol_414[] = "t";
-static char meta_symbol_415[] = "u";
-static char meta_symbol_416[] = "v";
-static char meta_symbol_417[] = "w";
-static char meta_symbol_418[] = "x";
-static char meta_symbol_419[] = "y";
-static char meta_symbol_420[] = "z";
-static char meta_symbol_421[] = "A";
-static char meta_symbol_422[] = "B";
-static char meta_symbol_423[] = "C";
-static char meta_symbol_424[] = "D";
-static char meta_symbol_425[] = "E";
-static char meta_symbol_426[] = "F";
-static char meta_symbol_427[] = "G";
-static char meta_symbol_428[] = "H";
-static char meta_symbol_429[] = "I";
-static char meta_symbol_430[] = "J";
-static char meta_symbol_431[] = "K";
-static char meta_symbol_432[] = "L";
-static char meta_symbol_433[] = "M";
-static char meta_symbol_434[] = "N";
-static char meta_symbol_435[] = "O";
-static char meta_symbol_436[] = "P";
-static char meta_symbol_437[] = "Q";
-static char meta_symbol_438[] = "R";
-static char meta_symbol_439[] = "S";
-static char meta_symbol_440[] = "T";
-static char meta_symbol_441[] = "U";
-static char meta_symbol_442[] = "V";
-static char meta_symbol_443[] = "W";
-static char meta_symbol_444[] = "X";
-static char meta_symbol_445[] = "Y";
-static char meta_symbol_446[] = "Z";
-static char meta_symbol_447[] = " ";
-static char meta_symbol_448[] = "\n";
+static char meta_symbol_390[] = ", sizeof(";
+static char meta_symbol_391[] = "symbol_";
+static char meta_symbol_392[] = ")-1)";
+static char meta_symbol_393[] = "\"";
+static char meta_symbol_394[] = "\\\"";
+static char meta_symbol_395[] = "\'";
+static char meta_symbol_396[] = "\\";
+static char meta_symbol_397[] = "a";
+static char meta_symbol_398[] = "b";
+static char meta_symbol_399[] = "c";
+static char meta_symbol_400[] = "d";
+static char meta_symbol_401[] = "e";
+static char meta_symbol_402[] = "f";
+static char meta_symbol_403[] = "g";
+static char meta_symbol_404[] = "h";
+static char meta_symbol_405[] = "i";
+static char meta_symbol_406[] = "j";
+static char meta_symbol_407[] = "k";
+static char meta_symbol_408[] = "l";
+static char meta_symbol_409[] = "m";
+static char meta_symbol_410[] = "n";
+static char meta_symbol_411[] = "o";
+static char meta_symbol_412[] = "p";
+static char meta_symbol_413[] = "q";
+static char meta_symbol_414[] = "r";
+static char meta_symbol_415[] = "s";
+static char meta_symbol_416[] = "t";
+static char meta_symbol_417[] = "u";
+static char meta_symbol_418[] = "v";
+static char meta_symbol_419[] = "w";
+static char meta_symbol_420[] = "x";
+static char meta_symbol_421[] = "y";
+static char meta_symbol_422[] = "z";
+static char meta_symbol_423[] = "A";
+static char meta_symbol_424[] = "B";
+static char meta_symbol_425[] = "C";
+static char meta_symbol_426[] = "D";
+static char meta_symbol_427[] = "E";
+static char meta_symbol_428[] = "F";
+static char meta_symbol_429[] = "G";
+static char meta_symbol_430[] = "H";
+static char meta_symbol_431[] = "I";
+static char meta_symbol_432[] = "J";
+static char meta_symbol_433[] = "K";
+static char meta_symbol_434[] = "L";
+static char meta_symbol_435[] = "M";
+static char meta_symbol_436[] = "N";
+static char meta_symbol_437[] = "O";
+static char meta_symbol_438[] = "P";
+static char meta_symbol_439[] = "Q";
+static char meta_symbol_440[] = "R";
+static char meta_symbol_441[] = "S";
+static char meta_symbol_442[] = "T";
+static char meta_symbol_443[] = "U";
+static char meta_symbol_444[] = "V";
+static char meta_symbol_445[] = "W";
+static char meta_symbol_446[] = "X";
+static char meta_symbol_447[] = "Y";
+static char meta_symbol_448[] = "Z";
+static char meta_symbol_449[] = " ";
+static char meta_symbol_450[] = "\n";
 MetaAction meta_rule_main(MetaParseState* parse_state);
 struct meta_Action1Vars {
     MetaAction xs;
@@ -1060,31 +1062,29 @@ void meta_action_4(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_82, sizeof(meta_symbol_82)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_83, sizeof(meta_symbol_83)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_84, sizeof(meta_symbol_84)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_85, sizeof(meta_symbol_85)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action4Vars*)variables)->h), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_86, sizeof(meta_symbol_86)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_85, sizeof(meta_symbol_85)-1), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_ruleVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_ruleVars);
     meta_action_run(&(((struct meta_Action4Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_87, sizeof(meta_symbol_87)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_86, sizeof(meta_symbol_86)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_87, sizeof(meta_symbol_87)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_88, sizeof(meta_symbol_88)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_89, sizeof(meta_symbol_89)-1), 0, NULL);
 }
 
 void meta_action_5(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_92, sizeof(meta_symbol_92)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_91, sizeof(meta_symbol_91)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action5Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_6(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_93, sizeof(meta_symbol_93)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_92, sizeof(meta_symbol_92)-1), 0, NULL);
 }
 
 void meta_action_8(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_94, sizeof(meta_symbol_94)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_95, sizeof(meta_symbol_95)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_93, sizeof(meta_symbol_93)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action8Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     meta_action_run(&(((struct meta_Action8Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
@@ -1103,21 +1103,21 @@ void meta_action_13(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_96, sizeof(meta_symbol_96)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_94, sizeof(meta_symbol_94)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_97, sizeof(meta_symbol_97)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_95, sizeof(meta_symbol_95)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_98, sizeof(meta_symbol_98)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_96, sizeof(meta_symbol_96)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_variables = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_variables);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_99, sizeof(meta_symbol_99)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_97, sizeof(meta_symbol_97)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_98, sizeof(meta_symbol_98)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_99, sizeof(meta_symbol_99)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_100, sizeof(meta_symbol_100)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_101, sizeof(meta_symbol_101)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_102, sizeof(meta_symbol_102)-1), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_orInit = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_orInit);
@@ -1126,11 +1126,11 @@ void meta_action_13(void* runtime, void* variables) {
 
 void meta_action_14(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action14Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_103, sizeof(meta_symbol_103)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_101, sizeof(meta_symbol_101)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action14Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_104, sizeof(meta_symbol_104)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_102, sizeof(meta_symbol_102)-1), 0, NULL);
 }
 
 void meta_action_15(void* runtime, void* variables) {
@@ -1143,22 +1143,23 @@ void meta_action_16(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_105, sizeof(meta_symbol_105)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_106, sizeof(meta_symbol_106)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_103, sizeof(meta_symbol_103)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_104, sizeof(meta_symbol_104)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_107, sizeof(meta_symbol_107)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_105, sizeof(meta_symbol_105)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action16Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_106, sizeof(meta_symbol_106)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_107, sizeof(meta_symbol_107)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_108, sizeof(meta_symbol_108)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_109, sizeof(meta_symbol_109)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_110, sizeof(meta_symbol_110)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_111, sizeof(meta_symbol_111)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_112, sizeof(meta_symbol_112)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_113, sizeof(meta_symbol_113)-1), 0, NULL);
 }
 
 void meta_action_17(void* runtime, void* variables) {
@@ -1167,20 +1168,21 @@ void meta_action_17(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_ruleVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_114, sizeof(meta_symbol_114)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_115, sizeof(meta_symbol_115)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_113, sizeof(meta_symbol_113)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_114, sizeof(meta_symbol_114)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_116, sizeof(meta_symbol_116)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_115, sizeof(meta_symbol_115)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action17Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_117, sizeof(meta_symbol_117)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_116, sizeof(meta_symbol_116)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_118, sizeof(meta_symbol_118)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_117, sizeof(meta_symbol_117)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_119, sizeof(meta_symbol_119)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_118, sizeof(meta_symbol_118)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_120, sizeof(meta_symbol_120)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_119, sizeof(meta_symbol_119)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_120, sizeof(meta_symbol_120)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_121, sizeof(meta_symbol_121)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_122, sizeof(meta_symbol_122)-1), 0, NULL);
 }
@@ -1379,22 +1381,24 @@ void meta_action_39(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_203, sizeof(meta_symbol_203)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_204, sizeof(meta_symbol_204)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_205, sizeof(meta_symbol_205)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_206, sizeof(meta_symbol_206)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_207, sizeof(meta_symbol_207)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_208, sizeof(meta_symbol_208)-1), 0, NULL);
 }
 
 void meta_action_40(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_208, sizeof(meta_symbol_208)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_209, sizeof(meta_symbol_209)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_210, sizeof(meta_symbol_210)-1), 0, NULL);
 }
 
 void meta_action_41(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_209, sizeof(meta_symbol_209)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_211, sizeof(meta_symbol_211)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_210, sizeof(meta_symbol_210)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_212, sizeof(meta_symbol_212)-1), 0, NULL);
 }
 
 void meta_action_42(void* runtime, void* variables) {
@@ -1403,40 +1407,40 @@ void meta_action_42(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_214, sizeof(meta_symbol_214)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_215, sizeof(meta_symbol_215)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_216, sizeof(meta_symbol_216)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_217, sizeof(meta_symbol_217)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_216, sizeof(meta_symbol_216)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action42Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_217, sizeof(meta_symbol_217)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_218, sizeof(meta_symbol_218)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action42Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action42Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_219, sizeof(meta_symbol_219)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action42Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_220, sizeof(meta_symbol_220)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action42Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_221, sizeof(meta_symbol_221)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action42Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_222, sizeof(meta_symbol_222)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     meta_action_run(&(((struct meta_Action42Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_221, sizeof(meta_symbol_221)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_223, sizeof(meta_symbol_223)-1), 0, NULL);
 }
 
 void meta_action_43(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_224, sizeof(meta_symbol_224)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_226, sizeof(meta_symbol_226)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_225, sizeof(meta_symbol_225)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_227, sizeof(meta_symbol_227)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_226, sizeof(meta_symbol_226)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_228, sizeof(meta_symbol_228)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_227, sizeof(meta_symbol_227)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_229, sizeof(meta_symbol_229)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_228, sizeof(meta_symbol_228)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_230, sizeof(meta_symbol_230)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_229, sizeof(meta_symbol_229)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_231, sizeof(meta_symbol_231)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_230, sizeof(meta_symbol_230)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_232, sizeof(meta_symbol_232)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_231, sizeof(meta_symbol_231)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_233, sizeof(meta_symbol_233)-1), 0, NULL);
 }
 
 void meta_action_44(void* runtime, void* variables) {
@@ -1445,38 +1449,38 @@ void meta_action_44(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_235, sizeof(meta_symbol_235)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_236, sizeof(meta_symbol_236)-1), 0, NULL);
-    }
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_237, sizeof(meta_symbol_237)-1))) {
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_238, sizeof(meta_symbol_238)-1), 0, NULL);
     }
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_239, sizeof(meta_symbol_239)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_240, sizeof(meta_symbol_240)-1), 0, NULL);
+    }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_239, sizeof(meta_symbol_239)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_240, sizeof(meta_symbol_240)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_241, sizeof(meta_symbol_241)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_242, sizeof(meta_symbol_242)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_243, sizeof(meta_symbol_243)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_244, sizeof(meta_symbol_244)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_245, sizeof(meta_symbol_245)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_246, sizeof(meta_symbol_246)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_245, sizeof(meta_symbol_245)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_247, sizeof(meta_symbol_247)-1), 0, NULL);
 }
 
 void meta_action_45(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_247, sizeof(meta_symbol_247)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_248, sizeof(meta_symbol_248)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_249, sizeof(meta_symbol_249)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_250, sizeof(meta_symbol_250)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_251, sizeof(meta_symbol_251)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_252, sizeof(meta_symbol_252)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_253, sizeof(meta_symbol_253)-1), 0, NULL);
 }
 
 void meta_action_46(void* runtime, void* variables) {
@@ -1485,39 +1489,39 @@ void meta_action_46(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_253, sizeof(meta_symbol_253)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_254, sizeof(meta_symbol_254)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_255, sizeof(meta_symbol_255)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_256, sizeof(meta_symbol_256)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_255, sizeof(meta_symbol_255)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_257, sizeof(meta_symbol_257)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_256, sizeof(meta_symbol_256)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_258, sizeof(meta_symbol_258)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_257, sizeof(meta_symbol_257)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_259, sizeof(meta_symbol_259)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action46Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_258, sizeof(meta_symbol_258)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_260, sizeof(meta_symbol_260)-1), 0, NULL);
 }
 
 void meta_action_47(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_259, sizeof(meta_symbol_259)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_260, sizeof(meta_symbol_260)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_261, sizeof(meta_symbol_261)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_262, sizeof(meta_symbol_262)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_263, sizeof(meta_symbol_263)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_264, sizeof(meta_symbol_264)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_265, sizeof(meta_symbol_265)-1), 0, NULL);
 }
 
 void meta_action_48(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_264, sizeof(meta_symbol_264)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_266, sizeof(meta_symbol_266)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_265, sizeof(meta_symbol_265)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_267, sizeof(meta_symbol_267)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_266, sizeof(meta_symbol_266)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_268, sizeof(meta_symbol_268)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_267, sizeof(meta_symbol_267)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_269, sizeof(meta_symbol_269)-1), 0, NULL);
 }
 
 void meta_action_49(void* runtime, void* variables) {
@@ -1527,90 +1531,90 @@ void meta_action_49(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_definitions;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_268, sizeof(meta_symbol_268)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_270, sizeof(meta_symbol_270)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_269, sizeof(meta_symbol_269)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_271, sizeof(meta_symbol_271)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholders;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_270, sizeof(meta_symbol_270)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_272, sizeof(meta_symbol_272)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_271, sizeof(meta_symbol_271)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_273, sizeof(meta_symbol_273)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_placeholderVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_placeholderVars);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_272, sizeof(meta_symbol_272)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_273, sizeof(meta_symbol_273)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_274, sizeof(meta_symbol_274)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_275, sizeof(meta_symbol_275)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_actionVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_274, sizeof(meta_symbol_274)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_275, sizeof(meta_symbol_275)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_276, sizeof(meta_symbol_276)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_277, sizeof(meta_symbol_277)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_276, sizeof(meta_symbol_276)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_277, sizeof(meta_symbol_277)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_278, sizeof(meta_symbol_278)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_279, sizeof(meta_symbol_279)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_280, sizeof(meta_symbol_280)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_281, sizeof(meta_symbol_281)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_282, sizeof(meta_symbol_282)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_282, sizeof(meta_symbol_282)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_283, sizeof(meta_symbol_283)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_284, sizeof(meta_symbol_284)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_285, sizeof(meta_symbol_285)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_286, sizeof(meta_symbol_286)-1), 0, NULL);
 }
 
 void meta_action_50(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_285, sizeof(meta_symbol_285)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_287, sizeof(meta_symbol_287)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_286, sizeof(meta_symbol_286)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_288, sizeof(meta_symbol_288)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_287, sizeof(meta_symbol_287)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_289, sizeof(meta_symbol_289)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action50Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_288, sizeof(meta_symbol_288)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_290, sizeof(meta_symbol_290)-1), 0, NULL);
 }
 
 void meta_action_51(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_293, sizeof(meta_symbol_293)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_294, sizeof(meta_symbol_294)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_295, sizeof(meta_symbol_295)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_296, sizeof(meta_symbol_296)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_296, sizeof(meta_symbol_296)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_297, sizeof(meta_symbol_297)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_298, sizeof(meta_symbol_298)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_299, sizeof(meta_symbol_299)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action51Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_300, sizeof(meta_symbol_300)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_301, sizeof(meta_symbol_301)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_302, sizeof(meta_symbol_302)-1), 0, NULL);
 }
 
 void meta_action_52(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_303, sizeof(meta_symbol_303)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_304, sizeof(meta_symbol_304)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_305, sizeof(meta_symbol_305)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_306, sizeof(meta_symbol_306)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_307, sizeof(meta_symbol_307)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_308, sizeof(meta_symbol_308)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_309, sizeof(meta_symbol_309)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_310, sizeof(meta_symbol_310)-1), 0, NULL);
 }
 
 void meta_action_53(void* runtime, void* variables) {
@@ -1622,9 +1626,9 @@ void meta_action_53(void* runtime, void* variables) {
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     action = (((struct meta_Action53Vars*)variables)->x);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action.input_buffer, action.start, action.end))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_309, sizeof(meta_symbol_309)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_311, sizeof(meta_symbol_311)-1), 0, NULL);
         meta_action_run(&(((struct meta_Action53Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_310, sizeof(meta_symbol_310)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_312, sizeof(meta_symbol_312)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     meta_action_run(&(((struct meta_Action53Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
@@ -1640,63 +1644,63 @@ void meta_action_66(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholderVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_324, sizeof(meta_symbol_324)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_325, sizeof(meta_symbol_325)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_326, sizeof(meta_symbol_326)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_327, sizeof(meta_symbol_327)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_326, sizeof(meta_symbol_326)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_328, sizeof(meta_symbol_328)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action66Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_327, sizeof(meta_symbol_327)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_329, sizeof(meta_symbol_329)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_328, sizeof(meta_symbol_328)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_330, sizeof(meta_symbol_330)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action66Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_329, sizeof(meta_symbol_329)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_331, sizeof(meta_symbol_331)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action66Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_330, sizeof(meta_symbol_330)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_332, sizeof(meta_symbol_332)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action66Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_331, sizeof(meta_symbol_331)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_333, sizeof(meta_symbol_333)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_332, sizeof(meta_symbol_332)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_334, sizeof(meta_symbol_334)-1), 0, NULL);
 }
 
 void meta_action_67(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_333, sizeof(meta_symbol_333)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_334, sizeof(meta_symbol_334)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_335, sizeof(meta_symbol_335)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_336, sizeof(meta_symbol_336)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_337, sizeof(meta_symbol_337)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_338, sizeof(meta_symbol_338)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_339, sizeof(meta_symbol_339)-1), 0, NULL);
 }
 
 void meta_action_68(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_341, sizeof(meta_symbol_341)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_342, sizeof(meta_symbol_342)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_343, sizeof(meta_symbol_343)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_344, sizeof(meta_symbol_344)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_345, sizeof(meta_symbol_345)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action68Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_346, sizeof(meta_symbol_346)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_347, sizeof(meta_symbol_347)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action68Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_348, sizeof(meta_symbol_348)-1), 0, NULL);
 }
 
 void meta_action_69(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_349, sizeof(meta_symbol_349)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_351, sizeof(meta_symbol_351)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action69Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_350, sizeof(meta_symbol_350)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_352, sizeof(meta_symbol_352)-1), 0, NULL);
 }
 
 void meta_action_70(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_351, sizeof(meta_symbol_351)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_353, sizeof(meta_symbol_353)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_352, sizeof(meta_symbol_352)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_354, sizeof(meta_symbol_354)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action70Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_353, sizeof(meta_symbol_353)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_355, sizeof(meta_symbol_355)-1), 0, NULL);
 }
 
 void meta_action_72(void* runtime, void* variables) {
@@ -1709,46 +1713,46 @@ void meta_action_73(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_357, sizeof(meta_symbol_357)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_358, sizeof(meta_symbol_358)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_359, sizeof(meta_symbol_359)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action73Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_360, sizeof(meta_symbol_360)-1), 0, NULL);
-    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_361, sizeof(meta_symbol_361)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action73Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action73Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_362, sizeof(meta_symbol_362)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
+    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_363, sizeof(meta_symbol_363)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
+    meta_action_run(&(((struct meta_Action73Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_364, sizeof(meta_symbol_364)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_365, sizeof(meta_symbol_365)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_366, sizeof(meta_symbol_366)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_367, sizeof(meta_symbol_367)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_368, sizeof(meta_symbol_368)-1), 0, NULL);
 }
 
 void meta_action_74(void* runtime, void* variables) {
     meta_action_run(&(((struct meta_Action74Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_367, sizeof(meta_symbol_367)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_369, sizeof(meta_symbol_369)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action74Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_368, sizeof(meta_symbol_368)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_370, sizeof(meta_symbol_370)-1), 0, NULL);
 }
 
 void meta_action_75(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_369, sizeof(meta_symbol_369)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_371, sizeof(meta_symbol_371)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_370, sizeof(meta_symbol_370)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_372, sizeof(meta_symbol_372)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_371, sizeof(meta_symbol_371)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_373, sizeof(meta_symbol_373)-1), 0, NULL);
     meta_action_run(&(((struct meta_Action75Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_372, sizeof(meta_symbol_372)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_374, sizeof(meta_symbol_374)-1), 0, NULL);
 }
 
 void meta_action_76(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_374, sizeof(meta_symbol_374)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_376, sizeof(meta_symbol_376)-1), 0, NULL);
 }
 
 void meta_action_77(void* runtime, void* variables) {
@@ -1760,9 +1764,9 @@ void meta_action_77(void* runtime, void* variables) {
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     action = (((struct meta_Action77Vars*)variables)->x);
     if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action.input_buffer, action.start, action.end))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_377, sizeof(meta_symbol_377)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_379, sizeof(meta_symbol_379)-1), 0, NULL);
         meta_action_run(&(((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_378, sizeof(meta_symbol_378)-1), 0, NULL);
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_380, sizeof(meta_symbol_380)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     meta_action_run(&(((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
@@ -1775,32 +1779,31 @@ void meta_action_80(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_382, sizeof(meta_symbol_382)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_383, sizeof(meta_symbol_383)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_384, sizeof(meta_symbol_384)-1), 0, NULL);
-    meta_action_run(&(((struct meta_Action80Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_385, sizeof(meta_symbol_385)-1), 0, NULL);
-    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_386, sizeof(meta_symbol_386)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
+    meta_action_run(&(((struct meta_Action80Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_387, sizeof(meta_symbol_387)-1), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
+    ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_388, sizeof(meta_symbol_388)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_389, sizeof(meta_symbol_389)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_390, sizeof(meta_symbol_390)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_391, sizeof(meta_symbol_391)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_392, sizeof(meta_symbol_392)-1), 0, NULL);
 }
 
 void meta_action_82(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_392, sizeof(meta_symbol_392)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_394, sizeof(meta_symbol_394)-1), 0, NULL);
 }
 
 MetaAction meta_rule_main(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
@@ -1808,9 +1811,8 @@ MetaAction meta_rule_main(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action1Vars* vars1 = arena_alloc(parse_state->arena, sizeof(struct meta_Action1Vars));
     star_variables = list_create(parse_state->arena);
@@ -1830,7 +1832,8 @@ MetaAction meta_rule_main(MetaParseState* parse_state) {
         _ = meta_rule_file(parse_state);
         vars1->y = _;
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_1, (void*)vars1, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_1, (void*)vars1, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -1838,15 +1841,13 @@ MetaAction meta_rule_main(MetaParseState* parse_state) {
 
 MetaAction meta_rule_metaField(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action2Vars* vars2 = arena_alloc(parse_state->arena, sizeof(struct meta_Action2Vars));
     data = string_from_cstring(parse_state->arena, meta_symbol_1, sizeof(meta_symbol_1)-1);
@@ -1860,7 +1861,8 @@ MetaAction meta_rule_metaField(MetaParseState* parse_state) {
         _ = meta_rule_name(parse_state);
         vars2->x = _;
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_2, (void*)vars2, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_2, (void*)vars2, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -1868,7 +1870,6 @@ MetaAction meta_rule_metaField(MetaParseState* parse_state) {
 
 MetaAction meta_rule_file(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
@@ -1877,9 +1878,8 @@ MetaAction meta_rule_file(MetaParseState* parse_state) {
     unsigned int star_start_pos;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action3Vars* vars3 = arena_alloc(parse_state->arena, sizeof(struct meta_Action3Vars));
     star_variables = list_create(parse_state->arena);
@@ -1910,9 +1910,11 @@ MetaAction meta_rule_file(MetaParseState* parse_state) {
             } else {
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
             }
+            meta_highlight_clear(parse_state, nlookahead_pos, parse_state->pos);
             parse_state->pos = nlookahead_pos;
             if (_.valid) {
-                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_3, (void*)vars3, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_3, (void*)vars3, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -1921,15 +1923,13 @@ MetaAction meta_rule_file(MetaParseState* parse_state) {
 
 MetaAction meta_rule_rule(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action4Vars* vars4 = arena_alloc(parse_state->arena, sizeof(struct meta_Action4Vars));
     _ = meta_rule_space(parse_state);
@@ -1965,7 +1965,8 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
                                         _ = meta_action_create_invalid();
                                     }
                                     if (_.valid) {
-                                        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_4, (void*)vars4, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                                        return meta_action_create(meta_action_4, (void*)vars4, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                     }
                                 }
                             }
@@ -1980,18 +1981,16 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
 
 MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action5Vars* vars5 = arena_alloc(parse_state->arena, sizeof(struct meta_Action5Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_90, sizeof(meta_symbol_90)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_89, sizeof(meta_symbol_89)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2002,7 +2001,7 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
         _ = meta_rule_metaName(parse_state);
         vars5->x = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_91, sizeof(meta_symbol_91)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_90, sizeof(meta_symbol_90)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2010,39 +2009,39 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
                 _ = meta_action_create_invalid();
             }
             if (_.valid) {
-                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_5, (void*)vars5, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_5, (void*)vars5, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action6Vars* vars6 = arena_alloc(parse_state->arena, sizeof(struct meta_Action6Vars));
-    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_6, (void*)vars6, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+    return meta_action_create(meta_action_6, (void*)vars6, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_metaName(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Meta;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_name(parse_state);
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_ors(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
@@ -2050,9 +2049,8 @@ MetaAction meta_rule_ors(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action8Vars* vars8 = arena_alloc(parse_state->arena, sizeof(struct meta_Action8Vars));
     _ = meta_rule_maybeorbar(parse_state);
@@ -2074,7 +2072,8 @@ MetaAction meta_rule_ors(MetaParseState* parse_state) {
             _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
             vars8->xs = _;
             if (_.valid) {
-                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_8, (void*)vars8, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_8, (void*)vars8, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -2083,14 +2082,12 @@ MetaAction meta_rule_ors(MetaParseState* parse_state) {
 
 MetaAction meta_rule_restorcase(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action9Vars* vars9 = arena_alloc(parse_state->arena, sizeof(struct meta_Action9Vars));
     _ = meta_rule_orbar(parse_state);
@@ -2098,7 +2095,8 @@ MetaAction meta_rule_restorcase(MetaParseState* parse_state) {
         _ = meta_rule_orcase(parse_state);
         vars9->x = _;
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_9, (void*)vars9, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_9, (void*)vars9, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -2106,43 +2104,42 @@ MetaAction meta_rule_restorcase(MetaParseState* parse_state) {
 
 MetaAction meta_rule_maybeorbar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_orbar(parse_state);
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action11Vars* vars11 = arena_alloc(parse_state->arena, sizeof(struct meta_Action11Vars));
-    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_11, (void*)vars11, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+    return meta_action_create(meta_action_11, (void*)vars11, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_orbar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_space(parse_state);
     if (_.valid) {
         _ = meta_rule_opOr(parse_state);
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -2150,34 +2147,31 @@ MetaAction meta_rule_orbar(MetaParseState* parse_state) {
 
 MetaAction meta_rule_orcase(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action13Vars* vars13 = arena_alloc(parse_state->arena, sizeof(struct meta_Action13Vars));
     _ = meta_rule_matchAnd(parse_state);
     vars13->x = _;
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_13, (void*)vars13, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_13, (void*)vars13, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action14Vars* vars14 = arena_alloc(parse_state->arena, sizeof(struct meta_Action14Vars));
     _ = meta_rule_space(parse_state);
@@ -2188,32 +2182,32 @@ MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
             _ = meta_rule_matchAnd(parse_state);
             vars14->y = _;
             if (_.valid) {
-                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_14, (void*)vars14, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_14, (void*)vars14, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action15Vars* vars15 = arena_alloc(parse_state->arena, sizeof(struct meta_Action15Vars));
     _ = meta_rule_action(parse_state);
     vars15->y = _;
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_15, (void*)vars15, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_15, (void*)vars15, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action16Vars* vars16 = arena_alloc(parse_state->arena, sizeof(struct meta_Action16Vars));
     _ = meta_rule_opNegativeLookahead(parse_state);
@@ -2221,11 +2215,12 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
         _ = meta_rule_matchExprPrimitive(parse_state);
         vars16->x = _;
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_16, (void*)vars16, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_16, (void*)vars16, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action17Vars* vars17 = arena_alloc(parse_state->arena, sizeof(struct meta_Action17Vars));
     _ = meta_rule_opLookahead(parse_state);
@@ -2233,11 +2228,12 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
         _ = meta_rule_matchExprPrimitive(parse_state);
         vars17->x = _;
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_17, (void*)vars17, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_17, (void*)vars17, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action18Vars* vars18 = arena_alloc(parse_state->arena, sizeof(struct meta_Action18Vars));
     _ = meta_rule_matchExprRepeat(parse_state);
@@ -2246,7 +2242,8 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
         _ = meta_rule_matchAssign(parse_state);
         vars18->y = _;
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_18, (void*)vars18, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_18, (void*)vars18, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -2254,14 +2251,12 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
 
 MetaAction meta_rule_matchAssign(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action19Vars* vars19 = arena_alloc(parse_state->arena, sizeof(struct meta_Action19Vars));
     _ = meta_rule_opBind(parse_state);
@@ -2269,27 +2264,27 @@ MetaAction meta_rule_matchAssign(MetaParseState* parse_state) {
         _ = meta_rule_variableName(parse_state);
         vars19->x = _;
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_19, (void*)vars19, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_19, (void*)vars19, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action20Vars* vars20 = arena_alloc(parse_state->arena, sizeof(struct meta_Action20Vars));
-    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_20, (void*)vars20, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+    return meta_action_create(meta_action_20, (void*)vars20, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action21Vars* vars21 = arena_alloc(parse_state->arena, sizeof(struct meta_Action21Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
@@ -2297,32 +2292,32 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     if (_.valid) {
         _ = meta_rule_opStar(parse_state);
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_21, (void*)vars21, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_21, (void*)vars21, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action22Vars* vars22 = arena_alloc(parse_state->arena, sizeof(struct meta_Action22Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
     vars22->x = _;
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_22, (void*)vars22, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_22, (void*)vars22, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opBind(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_145, sizeof(meta_symbol_145)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -2332,22 +2327,21 @@ MetaAction meta_rule_opBind(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opStar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_146, sizeof(meta_symbol_146)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -2357,22 +2351,21 @@ MetaAction meta_rule_opStar(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_147, sizeof(meta_symbol_147)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -2382,22 +2375,21 @@ MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_148, sizeof(meta_symbol_148)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -2407,22 +2399,21 @@ MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opAny(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_149, sizeof(meta_symbol_149)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -2432,22 +2423,21 @@ MetaAction meta_rule_opAny(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opOr(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_150, sizeof(meta_symbol_150)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -2457,22 +2447,21 @@ MetaAction meta_rule_opOr(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opAction(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_151, sizeof(meta_symbol_151)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -2482,14 +2471,14 @@ MetaAction meta_rule_opAction(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
@@ -2498,9 +2487,8 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     unsigned int star_start_pos;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action30Vars* vars30 = arena_alloc(parse_state->arena, sizeof(struct meta_Action30Vars));
     star_variables = list_create(parse_state->arena);
@@ -2525,7 +2513,8 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
         _ = meta_rule_maybeBit(parse_state);
         vars30->x = _;
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_30, (void*)vars30, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_30, (void*)vars30, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -2533,43 +2522,41 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
 
 MetaAction meta_rule_maybeBit(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action31Vars* vars31 = arena_alloc(parse_state->arena, sizeof(struct meta_Action31Vars));
     _ = meta_rule_bit(parse_state);
     vars31->x = _;
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_31, (void*)vars31, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_31, (void*)vars31, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action32Vars* vars32 = arena_alloc(parse_state->arena, sizeof(struct meta_Action32Vars));
     _ = meta_rule_lower(parse_state);
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_32, (void*)vars32, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_32, (void*)vars32, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_bit(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action33Vars* vars33 = arena_alloc(parse_state->arena, sizeof(struct meta_Action33Vars));
     data = string_from_cstring(parse_state->arena, meta_symbol_156, sizeof(meta_symbol_156)-1);
@@ -2580,10 +2567,11 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_33, (void*)vars33, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_33, (void*)vars33, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action34Vars* vars34 = arena_alloc(parse_state->arena, sizeof(struct meta_Action34Vars));
     data = string_from_cstring(parse_state->arena, meta_symbol_157, sizeof(meta_symbol_157)-1);
@@ -2594,14 +2582,14 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_34, (void*)vars34, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_34, (void*)vars34, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
@@ -2610,18 +2598,18 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action35Vars* vars35 = arena_alloc(parse_state->arena, sizeof(struct meta_Action35Vars));
     _ = meta_rule_ruleName(parse_state);
     vars35->x = _;
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_35, (void*)vars35, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_35, (void*)vars35, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action36Vars* vars36 = arena_alloc(parse_state->arena, sizeof(struct meta_Action36Vars));
     data = string_from_cstring(parse_state->arena, meta_symbol_162, sizeof(meta_symbol_162)-1);
@@ -2646,32 +2634,34 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars36->xs = _;
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_36, (void*)vars36, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_36, (void*)vars36, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action37Vars* vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
     _ = meta_rule_opAny(parse_state);
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_37, (void*)vars37, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_37, (void*)vars37, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action38Vars* vars38 = arena_alloc(parse_state->arena, sizeof(struct meta_Action38Vars));
     _ = meta_rule_charString(parse_state);
     vars38->x = _;
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_38, (void*)vars38, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_38, (void*)vars38, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_action(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
@@ -2680,9 +2670,8 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action39Vars* vars39 = arena_alloc(parse_state->arena, sizeof(struct meta_Action39Vars));
     _ = meta_rule_space(parse_state);
@@ -2723,7 +2712,8 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
                                 _ = meta_action_create_invalid();
                             }
                             if (_.valid) {
-                                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_39, (void*)vars39, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                                return meta_action_create(meta_action_39, (void*)vars39, parse_state->input_buffer, action_start_pos, parse_state->pos);
                             }
                         }
                     }
@@ -2731,25 +2721,24 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action40Vars* vars40 = arena_alloc(parse_state->arena, sizeof(struct meta_Action40Vars));
-    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_40, (void*)vars40, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+    return meta_action_create(meta_action_40, (void*)vars40, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     unsigned int lookahead_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action41Vars* vars41 = arena_alloc(parse_state->arena, sizeof(struct meta_Action41Vars));
     lookahead_pos = parse_state->pos;
@@ -2764,16 +2753,17 @@ MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
     } else {
         _ = meta_action_create_invalid();
     }
+    meta_highlight_clear(parse_state, lookahead_pos, parse_state->pos);
     parse_state->pos = lookahead_pos;
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_41, (void*)vars41, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_41, (void*)vars41, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
@@ -2782,14 +2772,13 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action42Vars* vars42 = arena_alloc(parse_state->arena, sizeof(struct meta_Action42Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_211, sizeof(meta_symbol_211)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_213, sizeof(meta_symbol_213)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2800,7 +2789,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_nameAsActionLookup(parse_state);
             vars42->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_212, sizeof(meta_symbol_212)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_214, sizeof(meta_symbol_214)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2824,7 +2813,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = string_from_cstring(parse_state->arena, meta_symbol_213, sizeof(meta_symbol_213)-1);
+                            data = string_from_cstring(parse_state->arena, meta_symbol_215, sizeof(meta_symbol_215)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2835,7 +2824,8 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                                 _ = meta_rule_genRuntime(parse_state);
                                 vars42->runtime = _;
                                 if (_.valid) {
-                                    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_42, (void*)vars42, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                    meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                                    return meta_action_create(meta_action_42, (void*)vars42, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -2844,13 +2834,13 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action43Vars* vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_222, sizeof(meta_symbol_222)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_224, sizeof(meta_symbol_224)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2861,7 +2851,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_string(parse_state);
             vars43->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_223, sizeof(meta_symbol_223)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_225, sizeof(meta_symbol_225)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2872,19 +2862,20 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     _ = meta_rule_genRuntime(parse_state);
                     vars43->runtime = _;
                     if (_.valid) {
-                        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_43, (void*)vars43, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                        return meta_action_create(meta_action_43, (void*)vars43, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action44Vars* vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_232, sizeof(meta_symbol_232)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_234, sizeof(meta_symbol_234)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2897,7 +2888,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_233, sizeof(meta_symbol_233)-1);
+                    data = string_from_cstring(parse_state->arena, meta_symbol_235, sizeof(meta_symbol_235)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2921,7 +2912,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                         if (_.valid) {
                             _ = meta_rule_space(parse_state);
                             if (_.valid) {
-                                data = string_from_cstring(parse_state->arena, meta_symbol_234, sizeof(meta_symbol_234)-1);
+                                data = string_from_cstring(parse_state->arena, meta_symbol_236, sizeof(meta_symbol_236)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2932,7 +2923,8 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                                     _ = meta_rule_genRuntime(parse_state);
                                     vars44->runtime = _;
                                     if (_.valid) {
-                                        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_44, (void*)vars44, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                                        return meta_action_create(meta_action_44, (void*)vars44, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                     }
                                 }
                             }
@@ -2942,13 +2934,13 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action45Vars* vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_246, sizeof(meta_symbol_246)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_248, sizeof(meta_symbol_248)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2962,18 +2954,19 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                 _ = meta_rule_genRuntime(parse_state);
                 vars45->runtime = _;
                 if (_.valid) {
-                    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_45, (void*)vars45, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                    meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                    return meta_action_create(meta_action_45, (void*)vars45, parse_state->input_buffer, action_start_pos, parse_state->pos);
                 }
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action46Vars* vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_252, sizeof(meta_symbol_252)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_254, sizeof(meta_symbol_254)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2987,13 +2980,14 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                 _ = meta_rule_genRuntime(parse_state);
                 vars46->runtime = _;
                 if (_.valid) {
-                    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_46, (void*)vars46, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                    meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                    return meta_action_create(meta_action_46, (void*)vars46, parse_state->input_buffer, action_start_pos, parse_state->pos);
                 }
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action47Vars* vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
     _ = meta_rule_space(parse_state);
@@ -3004,12 +2998,13 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_genRuntime(parse_state);
             vars47->runtime = _;
             if (_.valid) {
-                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_47, (void*)vars47, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_47, (void*)vars47, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action48Vars* vars48 = arena_alloc(parse_state->arena, sizeof(struct meta_Action48Vars));
     _ = meta_rule_space(parse_state);
@@ -3020,12 +3015,13 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_genRuntime(parse_state);
             vars48->runtime = _;
             if (_.valid) {
-                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_48, (void*)vars48, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_48, (void*)vars48, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action49Vars* vars49 = arena_alloc(parse_state->arena, sizeof(struct meta_Action49Vars));
     _ = meta_rule_space(parse_state);
@@ -3036,12 +3032,13 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_genRuntime(parse_state);
             vars49->runtime = _;
             if (_.valid) {
-                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_49, (void*)vars49, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_49, (void*)vars49, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action50Vars* vars50 = arena_alloc(parse_state->arena, sizeof(struct meta_Action50Vars));
     _ = meta_rule_space(parse_state);
@@ -3052,17 +3049,18 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_genRuntime(parse_state);
             vars50->runtime = _;
             if (_.valid) {
-                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_50, (void*)vars50, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_50, (void*)vars50, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action51Vars* vars51 = arena_alloc(parse_state->arena, sizeof(struct meta_Action51Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_289, sizeof(meta_symbol_289)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_291, sizeof(meta_symbol_291)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3073,7 +3071,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             _ = meta_rule_name(parse_state);
             vars51->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_290, sizeof(meta_symbol_290)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_292, sizeof(meta_symbol_292)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3084,7 +3082,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                     _ = meta_rule_wvar(parse_state);
                     vars51->y = _;
                     if (_.valid) {
-                        data = string_from_cstring(parse_state->arena, meta_symbol_291, sizeof(meta_symbol_291)-1);
+                        data = string_from_cstring(parse_state->arena, meta_symbol_293, sizeof(meta_symbol_293)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3095,7 +3093,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                             _ = meta_rule_actionPrimitiveExpression(parse_state);
                             vars51->z = _;
                             if (_.valid) {
-                                data = string_from_cstring(parse_state->arena, meta_symbol_292, sizeof(meta_symbol_292)-1);
+                                data = string_from_cstring(parse_state->arena, meta_symbol_294, sizeof(meta_symbol_294)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3106,7 +3104,8 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                                     _ = meta_rule_genRuntime(parse_state);
                                     vars51->runtime = _;
                                     if (_.valid) {
-                                        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_51, (void*)vars51, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                                        return meta_action_create(meta_action_51, (void*)vars51, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                     }
                                 }
                             }
@@ -3116,13 +3115,13 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action52Vars* vars52 = arena_alloc(parse_state->arena, sizeof(struct meta_Action52Vars));
     _ = meta_rule_space(parse_state);
     if (_.valid) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_301, sizeof(meta_symbol_301)-1);
+        data = string_from_cstring(parse_state->arena, meta_symbol_303, sizeof(meta_symbol_303)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3146,7 +3145,7 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
             if (_.valid) {
                 _ = meta_rule_space(parse_state);
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_302, sizeof(meta_symbol_302)-1);
+                    data = string_from_cstring(parse_state->arena, meta_symbol_304, sizeof(meta_symbol_304)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3157,7 +3156,8 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
                         _ = meta_rule_genRuntime(parse_state);
                         vars52->runtime = _;
                         if (_.valid) {
-                            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_52, (void*)vars52, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                            return meta_action_create(meta_action_52, (void*)vars52, parse_state->input_buffer, action_start_pos, parse_state->pos);
                         }
                     }
                 }
@@ -3169,64 +3169,61 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
 
 MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action53Vars* vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
     _ = meta_rule_name(parse_state);
     vars53->x = _;
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_53, (void*)vars53, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_53, (void*)vars53, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action54Vars* vars54 = arena_alloc(parse_state->arena, sizeof(struct meta_Action54Vars));
     _ = meta_rule_dotname(parse_state);
     vars54->x = _;
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_54, (void*)vars54, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_54, (void*)vars54, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_digit(parse_state);
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_digit(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_311, sizeof(meta_symbol_311)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_313, sizeof(meta_symbol_313)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3234,12 +3231,13 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_312, sizeof(meta_symbol_312)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_314, sizeof(meta_symbol_314)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3247,12 +3245,13 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_313, sizeof(meta_symbol_313)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_315, sizeof(meta_symbol_315)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3260,12 +3259,13 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_314, sizeof(meta_symbol_314)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_316, sizeof(meta_symbol_316)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3273,12 +3273,13 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_315, sizeof(meta_symbol_315)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_317, sizeof(meta_symbol_317)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3286,12 +3287,13 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_316, sizeof(meta_symbol_316)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_318, sizeof(meta_symbol_318)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3299,12 +3301,13 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_317, sizeof(meta_symbol_317)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_319, sizeof(meta_symbol_319)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3312,12 +3315,13 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_318, sizeof(meta_symbol_318)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_320, sizeof(meta_symbol_320)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3325,12 +3329,13 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_319, sizeof(meta_symbol_319)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_321, sizeof(meta_symbol_321)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3338,12 +3343,13 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_320, sizeof(meta_symbol_320)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_322, sizeof(meta_symbol_322)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3351,25 +3357,24 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action66Vars* vars66 = arena_alloc(parse_state->arena, sizeof(struct meta_Action66Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_321, sizeof(meta_symbol_321)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_323, sizeof(meta_symbol_323)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3382,7 +3387,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
             _ = meta_rule_string(parse_state);
             vars66->x = _;
             if (_.valid) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_322, sizeof(meta_symbol_322)-1);
+                data = string_from_cstring(parse_state->arena, meta_symbol_324, sizeof(meta_symbol_324)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3395,7 +3400,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
                     if (_.valid) {
                         _ = meta_rule_space(parse_state);
                         if (_.valid) {
-                            data = string_from_cstring(parse_state->arena, meta_symbol_323, sizeof(meta_symbol_323)-1);
+                            data = string_from_cstring(parse_state->arena, meta_symbol_325, sizeof(meta_symbol_325)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3406,7 +3411,8 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
                                 _ = meta_rule_genRuntime(parse_state);
                                 vars66->runtime = _;
                                 if (_.valid) {
-                                    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_66, (void*)vars66, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                    meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                                    return meta_action_create(meta_action_66, (void*)vars66, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -3420,7 +3426,6 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
 
 MetaAction meta_rule_expr(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
@@ -3429,9 +3434,8 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action67Vars* vars67 = arena_alloc(parse_state->arena, sizeof(struct meta_Action67Vars));
     _ = meta_rule_wvar(parse_state);
@@ -3440,14 +3444,15 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
         _ = meta_rule_genRuntime(parse_state);
         vars67->runtime = _;
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_67, (void*)vars67, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_67, (void*)vars67, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action68Vars* vars68 = arena_alloc(parse_state->arena, sizeof(struct meta_Action68Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_338, sizeof(meta_symbol_338)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_340, sizeof(meta_symbol_340)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3458,7 +3463,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
         _ = meta_rule_wvar(parse_state);
         vars68->x = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_339, sizeof(meta_symbol_339)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_341, sizeof(meta_symbol_341)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3469,7 +3474,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
                 _ = meta_rule_dotname(parse_state);
                 vars68->y = _;
                 if (_.valid) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_340, sizeof(meta_symbol_340)-1);
+                    data = string_from_cstring(parse_state->arena, meta_symbol_342, sizeof(meta_symbol_342)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3480,18 +3485,19 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
                         _ = meta_rule_genRuntime(parse_state);
                         vars68->runtime = _;
                         if (_.valid) {
-                            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_68, (void*)vars68, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                            return meta_action_create(meta_action_68, (void*)vars68, parse_state->input_buffer, action_start_pos, parse_state->pos);
                         }
                     }
                 }
             }
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action69Vars* vars69 = arena_alloc(parse_state->arena, sizeof(struct meta_Action69Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_347, sizeof(meta_symbol_347)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_349, sizeof(meta_symbol_349)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3513,7 +3519,7 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars69->xs = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_348, sizeof(meta_symbol_348)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_350, sizeof(meta_symbol_350)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3521,7 +3527,8 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
                 _ = meta_action_create_invalid();
             }
             if (_.valid) {
-                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_69, (void*)vars69, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_69, (void*)vars69, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3530,14 +3537,12 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
 
 MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action70Vars* vars70 = arena_alloc(parse_state->arena, sizeof(struct meta_Action70Vars));
     _ = meta_rule_space(parse_state);
@@ -3548,7 +3553,8 @@ MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
             _ = meta_rule_maybeShift(parse_state);
             vars70->y = _;
             if (_.valid) {
-                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_70, (void*)vars70, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_70, (void*)vars70, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3557,17 +3563,15 @@ MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
 
 MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_354, sizeof(meta_symbol_354)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_356, sizeof(meta_symbol_356)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3577,20 +3581,21 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     if (_.valid) {
         _ = meta_rule_number(parse_state);
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action72Vars* vars72 = arena_alloc(parse_state->arena, sizeof(struct meta_Action72Vars));
-    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_72, (void*)vars72, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+    return meta_action_create(meta_action_72, (void*)vars72, parse_state->input_buffer, action_start_pos, parse_state->pos);
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_string(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_String;
@@ -3599,12 +3604,11 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action73Vars* vars73 = arena_alloc(parse_state->arena, sizeof(struct meta_Action73Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_355, sizeof(meta_symbol_355)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_357, sizeof(meta_symbol_357)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3626,7 +3630,7 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars73->xs = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_356, sizeof(meta_symbol_356)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_358, sizeof(meta_symbol_358)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3637,7 +3641,8 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
                 _ = meta_rule_genRuntime(parse_state);
                 vars73->runtime = _;
                 if (_.valid) {
-                    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_73, (void*)vars73, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                    meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                    return meta_action_create(meta_action_73, (void*)vars73, parse_state->input_buffer, action_start_pos, parse_state->pos);
                 }
             }
         }
@@ -3647,14 +3652,12 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
 
 MetaAction meta_rule_dotname(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action74Vars* vars74 = arena_alloc(parse_state->arena, sizeof(struct meta_Action74Vars));
     _ = meta_rule_nameAsActionLookup(parse_state);
@@ -3663,7 +3666,8 @@ MetaAction meta_rule_dotname(MetaParseState* parse_state) {
         _ = meta_rule_nextname(parse_state);
         vars74->y = _;
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_74, (void*)vars74, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_74, (void*)vars74, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -3671,39 +3675,36 @@ MetaAction meta_rule_dotname(MetaParseState* parse_state) {
 
 MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action75Vars* vars75 = arena_alloc(parse_state->arena, sizeof(struct meta_Action75Vars));
     _ = meta_rule_variableName(parse_state);
     vars75->x = _;
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_75, (void*)vars75, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_75, (void*)vars75, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action76Vars* vars76 = arena_alloc(parse_state->arena, sizeof(struct meta_Action76Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_373, sizeof(meta_symbol_373)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_375, sizeof(meta_symbol_375)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3718,9 +3719,11 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
         } else {
             _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
         }
+        meta_highlight_clear(parse_state, nlookahead_pos, parse_state->pos);
         parse_state->pos = nlookahead_pos;
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_76, (void*)vars76, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(meta_action_76, (void*)vars76, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -3728,18 +3731,16 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
 
 MetaAction meta_rule_wvar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action77Vars* vars77 = arena_alloc(parse_state->arena, sizeof(struct meta_Action77Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_375, sizeof(meta_symbol_375)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_377, sizeof(meta_symbol_377)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3755,7 +3756,7 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
         }
         vars77->x = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_376, sizeof(meta_symbol_376)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_378, sizeof(meta_symbol_378)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3763,7 +3764,8 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
                 _ = meta_action_create_invalid();
             }
             if (_.valid) {
-                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3772,26 +3774,25 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
 
 MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     unsigned int nlookahead_pos;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_stringEscape(parse_state);
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_379, sizeof(meta_symbol_379)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_381, sizeof(meta_symbol_381)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3803,6 +3804,7 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     } else {
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
     }
+    meta_highlight_clear(parse_state, nlookahead_pos, parse_state->pos);
     parse_state->pos = nlookahead_pos;
     if (_.valid) {
         if (parse_state->pos < parse_state->input_buffer->size) {
@@ -3812,7 +3814,8 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
             _ = meta_action_create_invalid();
         }
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -3820,7 +3823,6 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
 
 MetaAction meta_rule_charString(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_CharString;
@@ -3829,12 +3831,11 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action80Vars* vars80 = arena_alloc(parse_state->arena, sizeof(struct meta_Action80Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_380, sizeof(meta_symbol_380)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_382, sizeof(meta_symbol_382)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3856,7 +3857,7 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars80->xs = _;
         if (_.valid) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_381, sizeof(meta_symbol_381)-1);
+            data = string_from_cstring(parse_state->arena, meta_symbol_383, sizeof(meta_symbol_383)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3864,7 +3865,8 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
                 _ = meta_action_create_invalid();
             }
             if (_.valid) {
-                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_80, (void*)vars80, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+                return meta_action_create(meta_action_80, (void*)vars80, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3873,26 +3875,25 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
 
 MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_stringEscape(parse_state);
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action82Vars* vars82 = arena_alloc(parse_state->arena, sizeof(struct meta_Action82Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_391, sizeof(meta_symbol_391)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_393, sizeof(meta_symbol_393)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3900,13 +3901,14 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_82, (void*)vars82, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(meta_action_82, (void*)vars82, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_393, sizeof(meta_symbol_393)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_395, sizeof(meta_symbol_395)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3918,6 +3920,7 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     } else {
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
     }
+    meta_highlight_clear(parse_state, nlookahead_pos, parse_state->pos);
     parse_state->pos = nlookahead_pos;
     if (_.valid) {
         if (parse_state->pos < parse_state->input_buffer->size) {
@@ -3927,7 +3930,8 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
             _ = meta_action_create_invalid();
         }
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -3935,17 +3939,15 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
 
 MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_Escape;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_394, sizeof(meta_symbol_394)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_396, sizeof(meta_symbol_396)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3960,7 +3962,8 @@ MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
             _ = meta_action_create_invalid();
         }
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -3968,43 +3971,40 @@ MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
 
 MetaAction meta_rule_ruleName(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_RuleName;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_name(parse_state);
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_variableName(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_VariableName;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_name(parse_state);
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_name(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
@@ -4012,9 +4012,8 @@ MetaAction meta_rule_name(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_char(parse_state);
     if (_.valid) {
@@ -4031,7 +4030,8 @@ MetaAction meta_rule_name(MetaParseState* parse_state) {
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -4039,66 +4039,38 @@ MetaAction meta_rule_name(MetaParseState* parse_state) {
 
 MetaAction meta_rule_char(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_lower(parse_state);
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_upper(parse_state);
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_lower(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
-    parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
-    action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_395, sizeof(meta_symbol_395)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = meta_action_create_invalid();
-    }
-    if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    }
-    parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
-    action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_396, sizeof(meta_symbol_396)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = meta_action_create_invalid();
-    }
-    if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_397, sizeof(meta_symbol_397)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4108,10 +4080,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_398, sizeof(meta_symbol_398)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4121,10 +4094,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_399, sizeof(meta_symbol_399)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4134,10 +4108,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_400, sizeof(meta_symbol_400)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4147,10 +4122,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_401, sizeof(meta_symbol_401)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4160,10 +4136,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_402, sizeof(meta_symbol_402)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4173,10 +4150,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_403, sizeof(meta_symbol_403)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4186,10 +4164,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_404, sizeof(meta_symbol_404)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4199,10 +4178,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_405, sizeof(meta_symbol_405)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4212,10 +4192,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_406, sizeof(meta_symbol_406)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4225,10 +4206,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_407, sizeof(meta_symbol_407)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4238,10 +4220,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_408, sizeof(meta_symbol_408)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4251,10 +4234,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_409, sizeof(meta_symbol_409)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4264,10 +4248,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_410, sizeof(meta_symbol_410)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4277,10 +4262,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_411, sizeof(meta_symbol_411)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4290,10 +4276,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_412, sizeof(meta_symbol_412)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4303,10 +4290,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_413, sizeof(meta_symbol_413)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4316,10 +4304,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_414, sizeof(meta_symbol_414)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4329,10 +4318,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_415, sizeof(meta_symbol_415)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4342,10 +4332,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_416, sizeof(meta_symbol_416)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4355,10 +4346,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_417, sizeof(meta_symbol_417)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4368,10 +4360,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_418, sizeof(meta_symbol_418)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4381,10 +4374,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_419, sizeof(meta_symbol_419)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4394,10 +4388,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_420, sizeof(meta_symbol_420)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4407,22 +4402,11 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    return meta_action_create_invalid();
-}
-
-MetaAction meta_rule_upper(MetaParseState* parse_state) {
-    unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
-    unsigned int action_start_pos;
-    MetaAction _;
-    MetaHighlight highlight = MetaHighlight_None;
-    String* data;
-    or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_421, sizeof(meta_symbol_421)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4432,10 +4416,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_422, sizeof(meta_symbol_422)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4445,10 +4430,21 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    return meta_action_create_invalid();
+}
+
+MetaAction meta_rule_upper(MetaParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    MetaAction _;
+    MetaHighlight highlight = MetaHighlight_None;
+    String* data;
+    or_backtrack_pos = parse_state->pos;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_423, sizeof(meta_symbol_423)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4458,10 +4454,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_424, sizeof(meta_symbol_424)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4471,10 +4468,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_425, sizeof(meta_symbol_425)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4484,10 +4482,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_426, sizeof(meta_symbol_426)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4497,10 +4496,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_427, sizeof(meta_symbol_427)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4510,10 +4510,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_428, sizeof(meta_symbol_428)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4523,10 +4524,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_429, sizeof(meta_symbol_429)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4536,10 +4538,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_430, sizeof(meta_symbol_430)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4549,10 +4552,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_431, sizeof(meta_symbol_431)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4562,10 +4566,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_432, sizeof(meta_symbol_432)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4575,10 +4580,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_433, sizeof(meta_symbol_433)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4588,10 +4594,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_434, sizeof(meta_symbol_434)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4601,10 +4608,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_435, sizeof(meta_symbol_435)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4614,10 +4622,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_436, sizeof(meta_symbol_436)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4627,10 +4636,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_437, sizeof(meta_symbol_437)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4640,10 +4650,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_438, sizeof(meta_symbol_438)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4653,10 +4664,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_439, sizeof(meta_symbol_439)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4666,10 +4678,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_440, sizeof(meta_symbol_440)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4679,10 +4692,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_441, sizeof(meta_symbol_441)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4692,10 +4706,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_442, sizeof(meta_symbol_442)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4705,10 +4720,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_443, sizeof(meta_symbol_443)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4718,10 +4734,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_444, sizeof(meta_symbol_444)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4731,10 +4748,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_445, sizeof(meta_symbol_445)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4744,10 +4762,11 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_446, sizeof(meta_symbol_446)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
@@ -4757,14 +4776,42 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    data = string_from_cstring(parse_state->arena, meta_symbol_447, sizeof(meta_symbol_447)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = meta_action_create_invalid();
+    }
+    if (_.valid) {
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    data = string_from_cstring(parse_state->arena, meta_symbol_448, sizeof(meta_symbol_448)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = meta_action_create_invalid();
+    }
+    if (_.valid) {
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_number(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
@@ -4772,9 +4819,8 @@ MetaAction meta_rule_number(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_digit(parse_state);
     if (_.valid) {
@@ -4791,7 +4837,8 @@ MetaAction meta_rule_number(MetaParseState* parse_state) {
         }
         _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         if (_.valid) {
-            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+            return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return meta_action_create_invalid();
@@ -4799,7 +4846,6 @@ MetaAction meta_rule_number(MetaParseState* parse_state) {
 
 MetaAction meta_rule_space(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
@@ -4807,9 +4853,8 @@ MetaAction meta_rule_space(MetaParseState* parse_state) {
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     star_variables = list_create(parse_state->arena);
     star_start_pos = parse_state->pos;
@@ -4824,24 +4869,23 @@ MetaAction meta_rule_space(MetaParseState* parse_state) {
     }
     _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
-    MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
     MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
-    or_backtrack_rule_parse_info = parse_state->rule_parse_info;
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_447, sizeof(meta_symbol_447)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_449, sizeof(meta_symbol_449)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4849,12 +4893,13 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);
     parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_448, sizeof(meta_symbol_448)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_450, sizeof(meta_symbol_450)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4862,7 +4907,8 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
         _ = meta_action_create_invalid();
     }
     if (_.valid) {
-        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);
+        return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return meta_action_create_invalid();
 }
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index a994bc4..793e7b0 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -96,7 +96,6 @@ rule = space ruleName:x highlight:h space '=' space ors:y space ';' -> {
     }
     "MetaAction " <prefix "rule_" x "(MetaParseState* parse_state) {\n" >
         "unsigned int or_backtrack_pos;\n"
-        "MetaRuleParseInfo* or_backtrack_rule_parse_info;\n"
         "unsigned int action_start_pos;\n"
         "MetaAction _;\n"
         "MetaHighlight highlight = " h ";\n"
@@ -121,7 +120,6 @@ metaName[Meta] = name;
 
 ors = maybeorbar orcase:x restorcase*:xs -> {
     "or_backtrack_pos = parse_state->pos;\n"
-    "or_backtrack_rule_parse_info = parse_state->rule_parse_info;\n"
     x
     xs
 };
@@ -140,8 +138,8 @@ orcase = matchAnd:x -> {
             <variables
         < "};\n"
     }
+    "meta_highlight_clear(parse_state, or_backtrack_pos, parse_state->pos);\n"
     "parse_state->pos = or_backtrack_pos;\n"
-    "parse_state->rule_parse_info = or_backtrack_rule_parse_info;\n"
     "action_start_pos = parse_state->pos;\n"
     $orInit
     <orInit
@@ -170,6 +168,7 @@ matchExpr =
         < "} else {\n" >
             "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"
         < "}\n"
+        "meta_highlight_clear(parse_state, nlookahead_pos, parse_state->pos);\n"
         "parse_state->pos = nlookahead_pos;\n"
     }
     | opLookahead matchExprPrimitive:x -> {
@@ -183,6 +182,7 @@ matchExpr =
         < "} else {\n" >
             "_ = meta_action_create_invalid();\n"
         < "}\n"
+        "meta_highlight_clear(parse_state, lookahead_pos, parse_state->pos);\n"
         "parse_state->pos = lookahead_pos;\n"
     }
     | matchExprRepeat:x matchAssign:y -> { x y }
@@ -301,10 +301,12 @@ action =
         >orInit {
             "struct " <prefix "Action" W[0] "Vars* vars" W[0] " = arena_alloc(parse_state->arena, sizeof(struct " <prefix "Action" W[0] "Vars));\n"
         }
-        "return meta_register_parse(parse_state->arena, meta_action_create(" <prefix "action_" W[0] ", (void*)vars" W[0] ", parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n"
+        "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"
+        "return meta_action_create(" <prefix "action_" W[0] ", (void*)vars" W[0] ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"
     }
     | -> {
-        "return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n"
+        "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"
+        "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"
     }
     ;
 

2025-11-22 22:02 Rickard pushed to rlworkbench

commit d520bd7a266702b6cf9e419fc46083f149b3be7a
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 22 21:33:00 2025 +0100

    Clean up

diff --git a/src/highlight.c b/src/highlight.c
index 1e506bf..e45ad7d 100644
--- a/src/highlight.c
+++ b/src/highlight.c
@@ -22,7 +22,7 @@ int main(int argc, char** argv) {
     int i;
     MetaHighlight highlight = MetaHighlight_Unset;
     MetaRuleParseInfo* rule_parse_info;
-    if (!meta_action_valid2(action)) {
+    if (!action.valid) {
         fprintf(stderr, "ERROR: parse error [pos=%d] [size=%d]", parse_state->pos, parse_state->input_buffer->size);
         exit(1);
     }
diff --git a/src/meta.c b/src/meta.c
index 5518118..b4228e0 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -24,29 +24,13 @@ typedef struct meta_action {
     unsigned int end;
 } MetaAction;
 
-MetaAction* meta_action_create_invalid() {
-    return NULL;
-}
-
-MetaAction meta_action_create_invalid2() {
+MetaAction meta_action_create_invalid() {
     MetaAction action;
     action.valid = 0;
     return action;
 }
 
-int meta_action_valid(MetaAction* action) {
-    if (action == NULL) {
-        return 0;
-    } else {
-        return 1;
-    }
-}
-
-int meta_action_valid2(MetaAction action) {
-    return action.valid;
-}
-
-MetaAction meta_action_create2(MetaActionFunction function, void* variables, String* input_buffer, unsigned int start, unsigned int end) {
+MetaAction meta_action_create(MetaActionFunction function, void* variables, String* input_buffer, unsigned int start, unsigned int end) {
     MetaAction action;
     action.valid = 1;
     action.function = function;
@@ -57,17 +41,6 @@ MetaAction meta_action_create2(MetaActionFunction function, void* variables, Str
     return action;
 }
 
-MetaAction* meta_action_create(Arena* arena, MetaActionFunction function, void* variables, String* input_buffer, unsigned int start, unsigned int end) {
-    MetaAction* action = arena_alloc(arena, sizeof(MetaAction));
-    action->valid = 1;
-    action->function = function;
-    action->variables = variables;
-    action->input_buffer = input_buffer;
-    action->start = start;
-    action->end = end;
-    return action;
-}
-
 void meta_action_run(MetaAction* action, void* runtime, StringBuilder* string_builder, Arena* arena) {
     if (action->function) {
         action->function(runtime, action->variables);
@@ -84,19 +57,11 @@ void meta_action_run(MetaAction* action, void* runtime, StringBuilder* string_bu
     }
 }
 
-unsigned int meta_action_len(MetaAction* action) {
-    return action->end-action->start;
-}
-
-unsigned int meta_action_len2(MetaAction action) {
+unsigned int meta_action_len(MetaAction action) {
     return action.end-action.start;
 }
 
-unsigned char meta_action_first_byte(MetaAction* action) {
-    return (unsigned char)action->input_buffer->buffer[action->start];
-}
-
-unsigned char meta_action_first_byte2(MetaAction action) {
+unsigned char meta_action_first_byte(MetaAction action) {
     return (unsigned char)action.input_buffer->buffer[action.start];
 }
 
@@ -117,17 +82,7 @@ typedef struct meta_parse_state {
     Arena* arena;
 } MetaParseState;
 
-MetaAction* meta_register_parse(Arena* arena, MetaAction* action, MetaParseState* parse_state, MetaHighlight highlight) {
-    MetaRuleParseInfo* rule_parse_info = arena_alloc(arena, sizeof(MetaRuleParseInfo));
-    rule_parse_info->start = action->start;
-    rule_parse_info->end = action->end;
-    rule_parse_info->highlight = highlight;
-    rule_parse_info->previous = parse_state->rule_parse_info;
-    parse_state->rule_parse_info = rule_parse_info;
-    return action;
-}
-
-MetaAction meta_register_parse2(Arena* arena, MetaAction action, MetaParseState* parse_state, MetaHighlight highlight) {
+MetaAction meta_register_parse(Arena* arena, MetaAction action, MetaParseState* parse_state, MetaHighlight highlight) {
     MetaRuleParseInfo* rule_parse_info = arena_alloc(arena, sizeof(MetaRuleParseInfo));
     rule_parse_info->start = action.start;
     rule_parse_info->end = action.end;
diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index 565c3b8..730b777 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -87,7 +87,7 @@ static char meta_symbol_44[] = "create_runtime(parse_state->arena);\n";
 static char meta_symbol_45[] = "MetaAction action = ";
 static char meta_symbol_46[] = "rule_main(parse_state);\n";
 static char meta_symbol_47[] = "ListItem* placeholder_item;\n";
-static char meta_symbol_48[] = "if (!meta_action_valid2(action)) {\n";
+static char meta_symbol_48[] = "if (!action.valid) {\n";
 static char meta_symbol_49[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
 static char meta_symbol_50[] = "exit(1);\n";
 static char meta_symbol_51[] = "}\n";
@@ -126,7 +126,7 @@ static char meta_symbol_83[] = "unsigned int action_start_pos;\n";
 static char meta_symbol_84[] = "MetaAction _;\n";
 static char meta_symbol_85[] = "MetaHighlight highlight = ";
 static char meta_symbol_86[] = ";\n";
-static char meta_symbol_87[] = "return meta_action_create_invalid2();\n";
+static char meta_symbol_87[] = "return meta_action_create_invalid();\n";
 static char meta_symbol_88[] = "}\n";
 static char meta_symbol_89[] = "\n";
 static char meta_symbol_90[] = "[";
@@ -142,24 +142,24 @@ static char meta_symbol_99[] = "};\n";
 static char meta_symbol_100[] = "parse_state->pos = or_backtrack_pos;\n";
 static char meta_symbol_101[] = "parse_state->rule_parse_info = or_backtrack_rule_parse_info;\n";
 static char meta_symbol_102[] = "action_start_pos = parse_state->pos;\n";
-static char meta_symbol_103[] = "if (meta_action_valid2(_)) {\n";
+static char meta_symbol_103[] = "if (_.valid) {\n";
 static char meta_symbol_104[] = "}\n";
 static char meta_symbol_105[] = "unsigned int nlookahead_pos;\n";
 static char meta_symbol_106[] = "unsigned int nlookahead_pos;\n";
 static char meta_symbol_107[] = "nlookahead_pos = parse_state->pos;\n";
-static char meta_symbol_108[] = "if (meta_action_valid2(_)) {\n";
-static char meta_symbol_109[] = "_ = meta_action_create_invalid2();\n";
+static char meta_symbol_108[] = "if (_.valid) {\n";
+static char meta_symbol_109[] = "_ = meta_action_create_invalid();\n";
 static char meta_symbol_110[] = "} else {\n";
-static char meta_symbol_111[] = "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char meta_symbol_111[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
 static char meta_symbol_112[] = "}\n";
 static char meta_symbol_113[] = "parse_state->pos = nlookahead_pos;\n";
 static char meta_symbol_114[] = "unsigned int lookahead_pos;\n";
 static char meta_symbol_115[] = "unsigned int lookahead_pos;\n";
 static char meta_symbol_116[] = "lookahead_pos = parse_state->pos;\n";
-static char meta_symbol_117[] = "if (meta_action_valid2(_)) {\n";
-static char meta_symbol_118[] = "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char meta_symbol_117[] = "if (_.valid) {\n";
+static char meta_symbol_118[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
 static char meta_symbol_119[] = "} else {\n";
-static char meta_symbol_120[] = "_ = meta_action_create_invalid2();\n";
+static char meta_symbol_120[] = "_ = meta_action_create_invalid();\n";
 static char meta_symbol_121[] = "}\n";
 static char meta_symbol_122[] = "parse_state->pos = lookahead_pos;\n";
 static char meta_symbol_123[] = "MetaAction ";
@@ -177,13 +177,13 @@ static char meta_symbol_134[] = "star_variables = list_create(parse_state->arena
 static char meta_symbol_135[] = "star_start_pos = parse_state->pos;\n";
 static char meta_symbol_136[] = "while (1) {\n";
 static char meta_symbol_137[] = "star_pos = parse_state->pos;\n";
-static char meta_symbol_138[] = "if (!meta_action_valid2(_)) {\n";
+static char meta_symbol_138[] = "if (!_.valid) {\n";
 static char meta_symbol_139[] = "parse_state->pos = star_pos;\n";
 static char meta_symbol_140[] = "break;\n";
 static char meta_symbol_141[] = "}\n";
 static char meta_symbol_142[] = "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n";
 static char meta_symbol_143[] = "}\n";
-static char meta_symbol_144[] = "_ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char meta_symbol_144[] = "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
 static char meta_symbol_145[] = ":";
 static char meta_symbol_146[] = "*";
 static char meta_symbol_147[] = "&";
@@ -210,15 +210,15 @@ static char meta_symbol_167[] = "bitpattern = 0;\n";
 static char meta_symbol_168[] = "bitmask = 0;\n";
 static char meta_symbol_169[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
 static char meta_symbol_170[] = "parse_state->pos += 1;\n";
-static char meta_symbol_171[] = "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char meta_symbol_171[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
 static char meta_symbol_172[] = "} else {\n";
-static char meta_symbol_173[] = "_ = meta_action_create_invalid2();\n";
+static char meta_symbol_173[] = "_ = meta_action_create_invalid();\n";
 static char meta_symbol_174[] = "}\n";
 static char meta_symbol_175[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
 static char meta_symbol_176[] = "parse_state->pos += 1;\n";
-static char meta_symbol_177[] = "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char meta_symbol_177[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
 static char meta_symbol_178[] = "} else {\n";
-static char meta_symbol_179[] = "_ = meta_action_create_invalid2();\n";
+static char meta_symbol_179[] = "_ = meta_action_create_invalid();\n";
 static char meta_symbol_180[] = "}\n";
 static char meta_symbol_181[] = "String* data;\n";
 static char meta_symbol_182[] = "String* data;\n";
@@ -226,9 +226,9 @@ static char meta_symbol_183[] = "data = ";
 static char meta_symbol_184[] = ";\n";
 static char meta_symbol_185[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
 static char meta_symbol_186[] = "parse_state->pos += data->size;\n";
-static char meta_symbol_187[] = "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char meta_symbol_187[] = "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
 static char meta_symbol_188[] = "} else {\n";
-static char meta_symbol_189[] = "_ = meta_action_create_invalid2();\n";
+static char meta_symbol_189[] = "_ = meta_action_create_invalid();\n";
 static char meta_symbol_190[] = "}\n";
 static char meta_symbol_191[] = "{";
 static char meta_symbol_192[] = "}";
@@ -243,11 +243,11 @@ static char meta_symbol_200[] = "Vars* vars";
 static char meta_symbol_201[] = " = arena_alloc(parse_state->arena, sizeof(struct ";
 static char meta_symbol_202[] = "Action";
 static char meta_symbol_203[] = "Vars));\n";
-static char meta_symbol_204[] = "return meta_register_parse2(parse_state->arena, meta_action_create2(";
+static char meta_symbol_204[] = "return meta_register_parse(parse_state->arena, meta_action_create(";
 static char meta_symbol_205[] = "action_";
 static char meta_symbol_206[] = ", (void*)vars";
 static char meta_symbol_207[] = ", parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n";
-static char meta_symbol_208[] = "return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n";
+static char meta_symbol_208[] = "return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n";
 static char meta_symbol_209[] = "((";
 static char meta_symbol_210[] = "Runtime*)runtime)";
 static char meta_symbol_211[] = "unseen(";
@@ -319,7 +319,7 @@ static char meta_symbol_276[] = "string_builder = string_builder_create(";
 static char meta_symbol_277[] = "->arena);\n";
 static char meta_symbol_278[] = "meta_placeholder_append2(";
 static char meta_symbol_279[] = "->arena, ";
-static char meta_symbol_280[] = "->placeholders, string_builder, meta_action_create2(placeholder_";
+static char meta_symbol_280[] = "->placeholders, string_builder, meta_action_create(placeholder_";
 static char meta_symbol_281[] = ", variables, NULL, 0, 0));\n";
 static char meta_symbol_282[] = "string_builder_append(";
 static char meta_symbol_283[] = "->current_string_builder, ";
@@ -390,7 +390,7 @@ static char meta_symbol_347[] = "number(";
 static char meta_symbol_348[] = ")";
 static char meta_symbol_349[] = "(0";
 static char meta_symbol_350[] = ")";
-static char meta_symbol_351[] = "+(meta_action_first_byte2(";
+static char meta_symbol_351[] = "+(meta_action_first_byte(";
 static char meta_symbol_352[] = ")";
 static char meta_symbol_353[] = ")";
 static char meta_symbol_354[] = "<<";
@@ -413,7 +413,7 @@ static char meta_symbol_370[] = "Action";
 static char meta_symbol_371[] = "Vars*)variables)->";
 static char meta_symbol_372[] = ")";
 static char meta_symbol_373[] = ".len";
-static char meta_symbol_374[] = "meta_action_len2";
+static char meta_symbol_374[] = "meta_action_len";
 static char meta_symbol_375[] = "W[";
 static char meta_symbol_376[] = "]";
 static char meta_symbol_377[] = "unsigned int W_";
@@ -1818,22 +1818,22 @@ MetaAction meta_rule_main(MetaParseState* parse_state) {
     while (1) {
         star_pos = parse_state->pos;
         _ = meta_rule_metaField(parse_state);
-        if (!meta_action_valid2(_)) {
+        if (!_.valid) {
             parse_state->pos = star_pos;
             break;
         }
         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
     }
-    _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+    _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     vars1->xs = _;
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_file(parse_state);
         vars1->y = _;
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_1, (void*)vars1, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_1, (void*)vars1, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_metaField(MetaParseState* parse_state) {
@@ -1852,18 +1852,18 @@ MetaAction meta_rule_metaField(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_1, sizeof(meta_symbol_1)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_name(parse_state);
         vars2->x = _;
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_2, (void*)vars2, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_2, (void*)vars2, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_file(MetaParseState* parse_state) {
@@ -1887,36 +1887,36 @@ MetaAction meta_rule_file(MetaParseState* parse_state) {
     while (1) {
         star_pos = parse_state->pos;
         _ = meta_rule_rule(parse_state);
-        if (!meta_action_valid2(_)) {
+        if (!_.valid) {
             parse_state->pos = star_pos;
             break;
         }
         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
     }
-    _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+    _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     vars3->xs = _;
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_space(parse_state);
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             nlookahead_pos = parse_state->pos;
             if (parse_state->pos < parse_state->input_buffer->size) {
                 parse_state->pos += 1;
-                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
+                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid2();
+                _ = meta_action_create_invalid();
             }
-            if (meta_action_valid2(_)) {
-                _ = meta_action_create_invalid2();
+            if (_.valid) {
+                _ = meta_action_create_invalid();
             } else {
-                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);
+                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
             }
             parse_state->pos = nlookahead_pos;
-            if (meta_action_valid2(_)) {
-                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_3, (void*)vars3, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (_.valid) {
+                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_3, (void*)vars3, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_rule(MetaParseState* parse_state) {
@@ -1933,39 +1933,39 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action4Vars* vars4 = arena_alloc(parse_state->arena, sizeof(struct meta_Action4Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_ruleName(parse_state);
         vars4->x = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_highlight(parse_state);
             vars4->h = _;
-            if (meta_action_valid2(_)) {
+            if (_.valid) {
                 _ = meta_rule_space(parse_state);
-                if (meta_action_valid2(_)) {
+                if (_.valid) {
                     data = string_from_cstring(parse_state->arena, meta_symbol_73, sizeof(meta_symbol_73)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
-                        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
-                        _ = meta_action_create_invalid2();
+                        _ = meta_action_create_invalid();
                     }
-                    if (meta_action_valid2(_)) {
+                    if (_.valid) {
                         _ = meta_rule_space(parse_state);
-                        if (meta_action_valid2(_)) {
+                        if (_.valid) {
                             _ = meta_rule_ors(parse_state);
                             vars4->y = _;
-                            if (meta_action_valid2(_)) {
+                            if (_.valid) {
                                 _ = meta_rule_space(parse_state);
-                                if (meta_action_valid2(_)) {
+                                if (_.valid) {
                                     data = string_from_cstring(parse_state->arena, meta_symbol_74, sizeof(meta_symbol_74)-1);
                                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                         parse_state->pos += data->size;
-                                        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                                        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                                     } else {
-                                        _ = meta_action_create_invalid2();
+                                        _ = meta_action_create_invalid();
                                     }
-                                    if (meta_action_valid2(_)) {
-                                        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_4, (void*)vars4, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                    if (_.valid) {
+                                        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_4, (void*)vars4, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                                     }
                                 }
                             }
@@ -1975,7 +1975,7 @@ MetaAction meta_rule_rule(MetaParseState* parse_state) {
             }
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_highlight(MetaParseState* parse_state) {
@@ -1994,23 +1994,23 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_90, sizeof(meta_symbol_90)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_metaName(parse_state);
         vars5->x = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             data = string_from_cstring(parse_state->arena, meta_symbol_91, sizeof(meta_symbol_91)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
-                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid2();
+                _ = meta_action_create_invalid();
             }
-            if (meta_action_valid2(_)) {
-                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_5, (void*)vars5, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (_.valid) {
+                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_5, (void*)vars5, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
@@ -2018,8 +2018,8 @@ MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action6Vars* vars6 = arena_alloc(parse_state->arena, sizeof(struct meta_Action6Vars));
-    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_6, (void*)vars6, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return meta_action_create_invalid2();
+    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_6, (void*)vars6, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_metaName(MetaParseState* parse_state) {
@@ -2034,10 +2034,10 @@ MetaAction meta_rule_metaName(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_name(parse_state);
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_ors(MetaParseState* parse_state) {
@@ -2056,29 +2056,29 @@ MetaAction meta_rule_ors(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action8Vars* vars8 = arena_alloc(parse_state->arena, sizeof(struct meta_Action8Vars));
     _ = meta_rule_maybeorbar(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_orcase(parse_state);
         vars8->x = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             star_variables = list_create(parse_state->arena);
             star_start_pos = parse_state->pos;
             while (1) {
                 star_pos = parse_state->pos;
                 _ = meta_rule_restorcase(parse_state);
-                if (!meta_action_valid2(_)) {
+                if (!_.valid) {
                     parse_state->pos = star_pos;
                     break;
                 }
                 list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
             }
-            _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+            _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
             vars8->xs = _;
-            if (meta_action_valid2(_)) {
-                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_8, (void*)vars8, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (_.valid) {
+                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_8, (void*)vars8, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_restorcase(MetaParseState* parse_state) {
@@ -2094,14 +2094,14 @@ MetaAction meta_rule_restorcase(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action9Vars* vars9 = arena_alloc(parse_state->arena, sizeof(struct meta_Action9Vars));
     _ = meta_rule_orbar(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_orcase(parse_state);
         vars9->x = _;
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_9, (void*)vars9, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_9, (void*)vars9, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_maybeorbar(MetaParseState* parse_state) {
@@ -2116,15 +2116,15 @@ MetaAction meta_rule_maybeorbar(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_orbar(parse_state);
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action11Vars* vars11 = arena_alloc(parse_state->arena, sizeof(struct meta_Action11Vars));
-    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_11, (void*)vars11, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return meta_action_create_invalid2();
+    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_11, (void*)vars11, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_orbar(MetaParseState* parse_state) {
@@ -2139,13 +2139,13 @@ MetaAction meta_rule_orbar(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_opOr(parse_state);
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_orcase(MetaParseState* parse_state) {
@@ -2162,10 +2162,10 @@ MetaAction meta_rule_orcase(MetaParseState* parse_state) {
     struct meta_Action13Vars* vars13 = arena_alloc(parse_state->arena, sizeof(struct meta_Action13Vars));
     _ = meta_rule_matchAnd(parse_state);
     vars13->x = _;
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_13, (void*)vars13, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_13, (void*)vars13, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
@@ -2181,14 +2181,14 @@ MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action14Vars* vars14 = arena_alloc(parse_state->arena, sizeof(struct meta_Action14Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_matchExpr(parse_state);
         vars14->x = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_matchAnd(parse_state);
             vars14->y = _;
-            if (meta_action_valid2(_)) {
-                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_14, (void*)vars14, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (_.valid) {
+                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_14, (void*)vars14, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
@@ -2198,10 +2198,10 @@ MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
     struct meta_Action15Vars* vars15 = arena_alloc(parse_state->arena, sizeof(struct meta_Action15Vars));
     _ = meta_rule_action(parse_state);
     vars15->y = _;
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_15, (void*)vars15, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_15, (void*)vars15, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
@@ -2217,11 +2217,11 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action16Vars* vars16 = arena_alloc(parse_state->arena, sizeof(struct meta_Action16Vars));
     _ = meta_rule_opNegativeLookahead(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_matchExprPrimitive(parse_state);
         vars16->x = _;
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_16, (void*)vars16, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_16, (void*)vars16, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2229,11 +2229,11 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action17Vars* vars17 = arena_alloc(parse_state->arena, sizeof(struct meta_Action17Vars));
     _ = meta_rule_opLookahead(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_matchExprPrimitive(parse_state);
         vars17->x = _;
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_17, (void*)vars17, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_17, (void*)vars17, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2242,14 +2242,14 @@ MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
     struct meta_Action18Vars* vars18 = arena_alloc(parse_state->arena, sizeof(struct meta_Action18Vars));
     _ = meta_rule_matchExprRepeat(parse_state);
     vars18->x = _;
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_matchAssign(parse_state);
         vars18->y = _;
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_18, (void*)vars18, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_18, (void*)vars18, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_matchAssign(MetaParseState* parse_state) {
@@ -2265,19 +2265,19 @@ MetaAction meta_rule_matchAssign(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action19Vars* vars19 = arena_alloc(parse_state->arena, sizeof(struct meta_Action19Vars));
     _ = meta_rule_opBind(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_variableName(parse_state);
         vars19->x = _;
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_19, (void*)vars19, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_19, (void*)vars19, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action20Vars* vars20 = arena_alloc(parse_state->arena, sizeof(struct meta_Action20Vars));
-    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_20, (void*)vars20, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return meta_action_create_invalid2();
+    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_20, (void*)vars20, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
@@ -2294,10 +2294,10 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     struct meta_Action21Vars* vars21 = arena_alloc(parse_state->arena, sizeof(struct meta_Action21Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
     vars21->x = _;
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_opStar(parse_state);
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_21, (void*)vars21, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_21, (void*)vars21, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2306,10 +2306,10 @@ MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     struct meta_Action22Vars* vars22 = arena_alloc(parse_state->arena, sizeof(struct meta_Action22Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
     vars22->x = _;
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_22, (void*)vars22, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_22, (void*)vars22, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opBind(MetaParseState* parse_state) {
@@ -2327,14 +2327,14 @@ MetaAction meta_rule_opBind(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_145, sizeof(meta_symbol_145)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opStar(MetaParseState* parse_state) {
@@ -2352,14 +2352,14 @@ MetaAction meta_rule_opStar(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_146, sizeof(meta_symbol_146)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
@@ -2377,14 +2377,14 @@ MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_147, sizeof(meta_symbol_147)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
@@ -2402,14 +2402,14 @@ MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_148, sizeof(meta_symbol_148)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opAny(MetaParseState* parse_state) {
@@ -2427,14 +2427,14 @@ MetaAction meta_rule_opAny(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_149, sizeof(meta_symbol_149)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opOr(MetaParseState* parse_state) {
@@ -2452,14 +2452,14 @@ MetaAction meta_rule_opOr(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_150, sizeof(meta_symbol_150)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_opAction(MetaParseState* parse_state) {
@@ -2477,14 +2477,14 @@ MetaAction meta_rule_opAction(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_151, sizeof(meta_symbol_151)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
@@ -2510,25 +2510,25 @@ MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
         data = string_from_cstring(parse_state->arena, meta_symbol_152, sizeof(meta_symbol_152)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid2();
+            _ = meta_action_create_invalid();
         }
-        if (!meta_action_valid2(_)) {
+        if (!_.valid) {
             parse_state->pos = star_pos;
             break;
         }
         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
     }
-    _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-    if (meta_action_valid2(_)) {
+    _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+    if (_.valid) {
         _ = meta_rule_maybeBit(parse_state);
         vars30->x = _;
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_30, (void*)vars30, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_30, (void*)vars30, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_maybeBit(MetaParseState* parse_state) {
@@ -2545,18 +2545,18 @@ MetaAction meta_rule_maybeBit(MetaParseState* parse_state) {
     struct meta_Action31Vars* vars31 = arena_alloc(parse_state->arena, sizeof(struct meta_Action31Vars));
     _ = meta_rule_bit(parse_state);
     vars31->x = _;
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_31, (void*)vars31, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_31, (void*)vars31, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action32Vars* vars32 = arena_alloc(parse_state->arena, sizeof(struct meta_Action32Vars));
     _ = meta_rule_lower(parse_state);
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_32, (void*)vars32, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_32, (void*)vars32, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_bit(MetaParseState* parse_state) {
@@ -2575,12 +2575,12 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_156, sizeof(meta_symbol_156)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_33, (void*)vars33, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_33, (void*)vars33, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -2589,14 +2589,14 @@ MetaAction meta_rule_bit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_157, sizeof(meta_symbol_157)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_34, (void*)vars34, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_34, (void*)vars34, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
@@ -2617,8 +2617,8 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     struct meta_Action35Vars* vars35 = arena_alloc(parse_state->arena, sizeof(struct meta_Action35Vars));
     _ = meta_rule_ruleName(parse_state);
     vars35->x = _;
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_35, (void*)vars35, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_35, (void*)vars35, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -2627,26 +2627,26 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_162, sizeof(meta_symbol_162)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_sepBit(parse_state);
-            if (!meta_action_valid2(_)) {
+            if (!_.valid) {
                 parse_state->pos = star_pos;
                 break;
             }
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars36->xs = _;
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_36, (void*)vars36, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_36, (void*)vars36, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2654,8 +2654,8 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action37Vars* vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
     _ = meta_rule_opAny(parse_state);
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_37, (void*)vars37, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_37, (void*)vars37, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -2663,10 +2663,10 @@ MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     struct meta_Action38Vars* vars38 = arena_alloc(parse_state->arena, sizeof(struct meta_Action38Vars));
     _ = meta_rule_charString(parse_state);
     vars38->x = _;
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_38, (void*)vars38, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_38, (void*)vars38, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_action(MetaParseState* parse_state) {
@@ -2686,44 +2686,44 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action39Vars* vars39 = arena_alloc(parse_state->arena, sizeof(struct meta_Action39Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_opAction(parse_state);
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_space(parse_state);
-            if (meta_action_valid2(_)) {
+            if (_.valid) {
                 data = string_from_cstring(parse_state->arena, meta_symbol_191, sizeof(meta_symbol_191)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
-                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                    _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = meta_action_create_invalid2();
+                    _ = meta_action_create_invalid();
                 }
-                if (meta_action_valid2(_)) {
+                if (_.valid) {
                     star_variables = list_create(parse_state->arena);
                     star_start_pos = parse_state->pos;
                     while (1) {
                         star_pos = parse_state->pos;
                         _ = meta_rule_actionexpr(parse_state);
-                        if (!meta_action_valid2(_)) {
+                        if (!_.valid) {
                             parse_state->pos = star_pos;
                             break;
                         }
                         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
                     }
-                    _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+                    _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
                     vars39->xs = _;
-                    if (meta_action_valid2(_)) {
+                    if (_.valid) {
                         _ = meta_rule_space(parse_state);
-                        if (meta_action_valid2(_)) {
+                        if (_.valid) {
                             data = string_from_cstring(parse_state->arena, meta_symbol_192, sizeof(meta_symbol_192)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
-                                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                             } else {
-                                _ = meta_action_create_invalid2();
+                                _ = meta_action_create_invalid();
                             }
-                            if (meta_action_valid2(_)) {
-                                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_39, (void*)vars39, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                            if (_.valid) {
+                                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_39, (void*)vars39, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                             }
                         }
                     }
@@ -2735,8 +2735,8 @@ MetaAction meta_rule_action(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action40Vars* vars40 = arena_alloc(parse_state->arena, sizeof(struct meta_Action40Vars));
-    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_40, (void*)vars40, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return meta_action_create_invalid2();
+    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_40, (void*)vars40, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
@@ -2755,20 +2755,20 @@ MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
     lookahead_pos = parse_state->pos;
     if (parse_state->pos < parse_state->input_buffer->size) {
         parse_state->pos += 1;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);
+    if (_.valid) {
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
     parse_state->pos = lookahead_pos;
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_41, (void*)vars41, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_41, (void*)vars41, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
@@ -2788,54 +2788,54 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action42Vars* vars42 = arena_alloc(parse_state->arena, sizeof(struct meta_Action42Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         data = string_from_cstring(parse_state->arena, meta_symbol_211, sizeof(meta_symbol_211)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid2();
+            _ = meta_action_create_invalid();
         }
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_nameAsActionLookup(parse_state);
             vars42->x = _;
-            if (meta_action_valid2(_)) {
+            if (_.valid) {
                 data = string_from_cstring(parse_state->arena, meta_symbol_212, sizeof(meta_symbol_212)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
-                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                    _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = meta_action_create_invalid2();
+                    _ = meta_action_create_invalid();
                 }
-                if (meta_action_valid2(_)) {
+                if (_.valid) {
                     star_variables = list_create(parse_state->arena);
                     star_start_pos = parse_state->pos;
                     while (1) {
                         star_pos = parse_state->pos;
                         _ = meta_rule_actionexpr(parse_state);
-                        if (!meta_action_valid2(_)) {
+                        if (!_.valid) {
                             parse_state->pos = star_pos;
                             break;
                         }
                         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
                     }
-                    _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+                    _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
                     vars42->ys = _;
-                    if (meta_action_valid2(_)) {
+                    if (_.valid) {
                         _ = meta_rule_space(parse_state);
-                        if (meta_action_valid2(_)) {
+                        if (_.valid) {
                             data = string_from_cstring(parse_state->arena, meta_symbol_213, sizeof(meta_symbol_213)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
-                                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                             } else {
-                                _ = meta_action_create_invalid2();
+                                _ = meta_action_create_invalid();
                             }
-                            if (meta_action_valid2(_)) {
+                            if (_.valid) {
                                 _ = meta_rule_genRuntime(parse_state);
                                 vars42->runtime = _;
-                                if (meta_action_valid2(_)) {
-                                    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_42, (void*)vars42, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                if (_.valid) {
+                                    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_42, (void*)vars42, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                                 }
                             }
                         }
@@ -2849,30 +2849,30 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action43Vars* vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         data = string_from_cstring(parse_state->arena, meta_symbol_222, sizeof(meta_symbol_222)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid2();
+            _ = meta_action_create_invalid();
         }
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_string(parse_state);
             vars43->x = _;
-            if (meta_action_valid2(_)) {
+            if (_.valid) {
                 data = string_from_cstring(parse_state->arena, meta_symbol_223, sizeof(meta_symbol_223)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
-                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                    _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = meta_action_create_invalid2();
+                    _ = meta_action_create_invalid();
                 }
-                if (meta_action_valid2(_)) {
+                if (_.valid) {
                     _ = meta_rule_genRuntime(parse_state);
                     vars43->runtime = _;
-                    if (meta_action_valid2(_)) {
-                        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_43, (void*)vars43, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                    if (_.valid) {
+                        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_43, (void*)vars43, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                     }
                 }
             }
@@ -2883,56 +2883,56 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action44Vars* vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         data = string_from_cstring(parse_state->arena, meta_symbol_232, sizeof(meta_symbol_232)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid2();
+            _ = meta_action_create_invalid();
         }
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_stringBuilderName(parse_state);
             vars44->x = _;
-            if (meta_action_valid2(_)) {
+            if (_.valid) {
                 _ = meta_rule_space(parse_state);
-                if (meta_action_valid2(_)) {
+                if (_.valid) {
                     data = string_from_cstring(parse_state->arena, meta_symbol_233, sizeof(meta_symbol_233)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
-                        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
-                        _ = meta_action_create_invalid2();
+                        _ = meta_action_create_invalid();
                     }
-                    if (meta_action_valid2(_)) {
+                    if (_.valid) {
                         star_variables = list_create(parse_state->arena);
                         star_start_pos = parse_state->pos;
                         while (1) {
                             star_pos = parse_state->pos;
                             _ = meta_rule_actionexpr(parse_state);
-                            if (!meta_action_valid2(_)) {
+                            if (!_.valid) {
                                 parse_state->pos = star_pos;
                                 break;
                             }
                             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
                         }
-                        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+                        _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
                         vars44->ys = _;
-                        if (meta_action_valid2(_)) {
+                        if (_.valid) {
                             _ = meta_rule_space(parse_state);
-                            if (meta_action_valid2(_)) {
+                            if (_.valid) {
                                 data = string_from_cstring(parse_state->arena, meta_symbol_234, sizeof(meta_symbol_234)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
-                                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                                    _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                                 } else {
-                                    _ = meta_action_create_invalid2();
+                                    _ = meta_action_create_invalid();
                                 }
-                                if (meta_action_valid2(_)) {
+                                if (_.valid) {
                                     _ = meta_rule_genRuntime(parse_state);
                                     vars44->runtime = _;
-                                    if (meta_action_valid2(_)) {
-                                        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_44, (void*)vars44, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                    if (_.valid) {
+                                        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_44, (void*)vars44, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                                     }
                                 }
                             }
@@ -2947,22 +2947,22 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action45Vars* vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         data = string_from_cstring(parse_state->arena, meta_symbol_246, sizeof(meta_symbol_246)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid2();
+            _ = meta_action_create_invalid();
         }
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_stringBuilderName(parse_state);
             vars45->x = _;
-            if (meta_action_valid2(_)) {
+            if (_.valid) {
                 _ = meta_rule_genRuntime(parse_state);
                 vars45->runtime = _;
-                if (meta_action_valid2(_)) {
-                    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_45, (void*)vars45, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                if (_.valid) {
+                    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_45, (void*)vars45, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                 }
             }
         }
@@ -2972,22 +2972,22 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action46Vars* vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         data = string_from_cstring(parse_state->arena, meta_symbol_252, sizeof(meta_symbol_252)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid2();
+            _ = meta_action_create_invalid();
         }
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_stringBuilderName(parse_state);
             vars46->x = _;
-            if (meta_action_valid2(_)) {
+            if (_.valid) {
                 _ = meta_rule_genRuntime(parse_state);
                 vars46->runtime = _;
-                if (meta_action_valid2(_)) {
-                    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_46, (void*)vars46, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                if (_.valid) {
+                    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_46, (void*)vars46, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                 }
             }
         }
@@ -2997,14 +2997,14 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action47Vars* vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_expr(parse_state);
         vars47->x = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_genRuntime(parse_state);
             vars47->runtime = _;
-            if (meta_action_valid2(_)) {
-                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_47, (void*)vars47, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (_.valid) {
+                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_47, (void*)vars47, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
@@ -3013,14 +3013,14 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action48Vars* vars48 = arena_alloc(parse_state->arena, sizeof(struct meta_Action48Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_nameAsActionLookup(parse_state);
         vars48->x = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_genRuntime(parse_state);
             vars48->runtime = _;
-            if (meta_action_valid2(_)) {
-                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_48, (void*)vars48, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (_.valid) {
+                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_48, (void*)vars48, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
@@ -3029,14 +3029,14 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action49Vars* vars49 = arena_alloc(parse_state->arena, sizeof(struct meta_Action49Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_placeholder(parse_state);
         vars49->x = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_genRuntime(parse_state);
             vars49->runtime = _;
-            if (meta_action_valid2(_)) {
-                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_49, (void*)vars49, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (_.valid) {
+                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_49, (void*)vars49, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
@@ -3045,14 +3045,14 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action50Vars* vars50 = arena_alloc(parse_state->arena, sizeof(struct meta_Action50Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_string(parse_state);
         vars50->x = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_genRuntime(parse_state);
             vars50->runtime = _;
-            if (meta_action_valid2(_)) {
-                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_50, (void*)vars50, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (_.valid) {
+                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_50, (void*)vars50, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
@@ -3061,52 +3061,52 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action51Vars* vars51 = arena_alloc(parse_state->arena, sizeof(struct meta_Action51Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         data = string_from_cstring(parse_state->arena, meta_symbol_289, sizeof(meta_symbol_289)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid2();
+            _ = meta_action_create_invalid();
         }
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_name(parse_state);
             vars51->x = _;
-            if (meta_action_valid2(_)) {
+            if (_.valid) {
                 data = string_from_cstring(parse_state->arena, meta_symbol_290, sizeof(meta_symbol_290)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
-                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                    _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = meta_action_create_invalid2();
+                    _ = meta_action_create_invalid();
                 }
-                if (meta_action_valid2(_)) {
+                if (_.valid) {
                     _ = meta_rule_wvar(parse_state);
                     vars51->y = _;
-                    if (meta_action_valid2(_)) {
+                    if (_.valid) {
                         data = string_from_cstring(parse_state->arena, meta_symbol_291, sizeof(meta_symbol_291)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
-                            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                         } else {
-                            _ = meta_action_create_invalid2();
+                            _ = meta_action_create_invalid();
                         }
-                        if (meta_action_valid2(_)) {
+                        if (_.valid) {
                             _ = meta_rule_actionPrimitiveExpression(parse_state);
                             vars51->z = _;
-                            if (meta_action_valid2(_)) {
+                            if (_.valid) {
                                 data = string_from_cstring(parse_state->arena, meta_symbol_292, sizeof(meta_symbol_292)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
-                                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                                    _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                                 } else {
-                                    _ = meta_action_create_invalid2();
+                                    _ = meta_action_create_invalid();
                                 }
-                                if (meta_action_valid2(_)) {
+                                if (_.valid) {
                                     _ = meta_rule_genRuntime(parse_state);
                                     vars51->runtime = _;
-                                    if (meta_action_valid2(_)) {
-                                        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_51, (void*)vars51, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                    if (_.valid) {
+                                        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_51, (void*)vars51, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                                     }
                                 }
                             }
@@ -3121,50 +3121,50 @@ MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action52Vars* vars52 = arena_alloc(parse_state->arena, sizeof(struct meta_Action52Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         data = string_from_cstring(parse_state->arena, meta_symbol_301, sizeof(meta_symbol_301)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid2();
+            _ = meta_action_create_invalid();
         }
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             star_variables = list_create(parse_state->arena);
             star_start_pos = parse_state->pos;
             while (1) {
                 star_pos = parse_state->pos;
                 _ = meta_rule_actionexpr(parse_state);
-                if (!meta_action_valid2(_)) {
+                if (!_.valid) {
                     parse_state->pos = star_pos;
                     break;
                 }
                 list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
             }
-            _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+            _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
             vars52->xs = _;
-            if (meta_action_valid2(_)) {
+            if (_.valid) {
                 _ = meta_rule_space(parse_state);
-                if (meta_action_valid2(_)) {
+                if (_.valid) {
                     data = string_from_cstring(parse_state->arena, meta_symbol_302, sizeof(meta_symbol_302)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
-                        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
-                        _ = meta_action_create_invalid2();
+                        _ = meta_action_create_invalid();
                     }
-                    if (meta_action_valid2(_)) {
+                    if (_.valid) {
                         _ = meta_rule_genRuntime(parse_state);
                         vars52->runtime = _;
-                        if (meta_action_valid2(_)) {
-                            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_52, (void*)vars52, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                        if (_.valid) {
+                            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_52, (void*)vars52, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                         }
                     }
                 }
             }
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state) {
@@ -3181,10 +3181,10 @@ MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state) {
     struct meta_Action53Vars* vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
     _ = meta_rule_name(parse_state);
     vars53->x = _;
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_53, (void*)vars53, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_53, (void*)vars53, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
@@ -3201,17 +3201,17 @@ MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
     struct meta_Action54Vars* vars54 = arena_alloc(parse_state->arena, sizeof(struct meta_Action54Vars));
     _ = meta_rule_dotname(parse_state);
     vars54->x = _;
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_54, (void*)vars54, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_54, (void*)vars54, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_digit(parse_state);
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_digit(MetaParseState* parse_state) {
@@ -3229,12 +3229,12 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_311, sizeof(meta_symbol_311)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3242,12 +3242,12 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_312, sizeof(meta_symbol_312)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3255,12 +3255,12 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_313, sizeof(meta_symbol_313)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3268,12 +3268,12 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_314, sizeof(meta_symbol_314)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3281,12 +3281,12 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_315, sizeof(meta_symbol_315)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3294,12 +3294,12 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_316, sizeof(meta_symbol_316)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3307,12 +3307,12 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_317, sizeof(meta_symbol_317)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3320,12 +3320,12 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_318, sizeof(meta_symbol_318)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3333,12 +3333,12 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_319, sizeof(meta_symbol_319)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3346,14 +3346,14 @@ MetaAction meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_320, sizeof(meta_symbol_320)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
@@ -3372,41 +3372,41 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_321, sizeof(meta_symbol_321)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_space(parse_state);
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_string(parse_state);
             vars66->x = _;
-            if (meta_action_valid2(_)) {
+            if (_.valid) {
                 data = string_from_cstring(parse_state->arena, meta_symbol_322, sizeof(meta_symbol_322)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
-                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                    _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = meta_action_create_invalid2();
+                    _ = meta_action_create_invalid();
                 }
-                if (meta_action_valid2(_)) {
+                if (_.valid) {
                     _ = meta_rule_expr(parse_state);
                     vars66->y = _;
-                    if (meta_action_valid2(_)) {
+                    if (_.valid) {
                         _ = meta_rule_space(parse_state);
-                        if (meta_action_valid2(_)) {
+                        if (_.valid) {
                             data = string_from_cstring(parse_state->arena, meta_symbol_323, sizeof(meta_symbol_323)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
-                                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                             } else {
-                                _ = meta_action_create_invalid2();
+                                _ = meta_action_create_invalid();
                             }
-                            if (meta_action_valid2(_)) {
+                            if (_.valid) {
                                 _ = meta_rule_genRuntime(parse_state);
                                 vars66->runtime = _;
-                                if (meta_action_valid2(_)) {
-                                    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_66, (void*)vars66, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                if (_.valid) {
+                                    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_66, (void*)vars66, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                                 }
                             }
                         }
@@ -3415,7 +3415,7 @@ MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
             }
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_expr(MetaParseState* parse_state) {
@@ -3436,11 +3436,11 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     struct meta_Action67Vars* vars67 = arena_alloc(parse_state->arena, sizeof(struct meta_Action67Vars));
     _ = meta_rule_wvar(parse_state);
     vars67->x = _;
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_genRuntime(parse_state);
         vars67->runtime = _;
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_67, (void*)vars67, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_67, (void*)vars67, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -3450,37 +3450,37 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_338, sizeof(meta_symbol_338)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_wvar(parse_state);
         vars68->x = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             data = string_from_cstring(parse_state->arena, meta_symbol_339, sizeof(meta_symbol_339)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
-                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid2();
+                _ = meta_action_create_invalid();
             }
-            if (meta_action_valid2(_)) {
+            if (_.valid) {
                 _ = meta_rule_dotname(parse_state);
                 vars68->y = _;
-                if (meta_action_valid2(_)) {
+                if (_.valid) {
                     data = string_from_cstring(parse_state->arena, meta_symbol_340, sizeof(meta_symbol_340)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
-                        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
-                        _ = meta_action_create_invalid2();
+                        _ = meta_action_create_invalid();
                     }
-                    if (meta_action_valid2(_)) {
+                    if (_.valid) {
                         _ = meta_rule_genRuntime(parse_state);
                         vars68->runtime = _;
-                        if (meta_action_valid2(_)) {
-                            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_68, (void*)vars68, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                        if (_.valid) {
+                            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_68, (void*)vars68, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                         }
                     }
                 }
@@ -3494,38 +3494,38 @@ MetaAction meta_rule_expr(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_347, sizeof(meta_symbol_347)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_numberPart(parse_state);
-            if (!meta_action_valid2(_)) {
+            if (!_.valid) {
                 parse_state->pos = star_pos;
                 break;
             }
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars69->xs = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             data = string_from_cstring(parse_state->arena, meta_symbol_348, sizeof(meta_symbol_348)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
-                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid2();
+                _ = meta_action_create_invalid();
             }
-            if (meta_action_valid2(_)) {
-                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_69, (void*)vars69, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (_.valid) {
+                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_69, (void*)vars69, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
@@ -3541,18 +3541,18 @@ MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action70Vars* vars70 = arena_alloc(parse_state->arena, sizeof(struct meta_Action70Vars));
     _ = meta_rule_space(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_nameAsActionLookup(parse_state);
         vars70->x = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             _ = meta_rule_maybeShift(parse_state);
             vars70->y = _;
-            if (meta_action_valid2(_)) {
-                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_70, (void*)vars70, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (_.valid) {
+                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_70, (void*)vars70, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
@@ -3570,22 +3570,22 @@ MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_354, sizeof(meta_symbol_354)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_number(parse_state);
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action72Vars* vars72 = arena_alloc(parse_state->arena, sizeof(struct meta_Action72Vars));
-    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_72, (void*)vars72, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return meta_action_create_invalid2();
+    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_72, (void*)vars72, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_string(MetaParseState* parse_state) {
@@ -3607,42 +3607,42 @@ MetaAction meta_rule_string(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_355, sizeof(meta_symbol_355)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_stringInner(parse_state);
-            if (!meta_action_valid2(_)) {
+            if (!_.valid) {
                 parse_state->pos = star_pos;
                 break;
             }
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars73->xs = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             data = string_from_cstring(parse_state->arena, meta_symbol_356, sizeof(meta_symbol_356)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
-                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid2();
+                _ = meta_action_create_invalid();
             }
-            if (meta_action_valid2(_)) {
+            if (_.valid) {
                 _ = meta_rule_genRuntime(parse_state);
                 vars73->runtime = _;
-                if (meta_action_valid2(_)) {
-                    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_73, (void*)vars73, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                if (_.valid) {
+                    return meta_register_parse(parse_state->arena, meta_action_create(meta_action_73, (void*)vars73, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                 }
             }
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_dotname(MetaParseState* parse_state) {
@@ -3659,14 +3659,14 @@ MetaAction meta_rule_dotname(MetaParseState* parse_state) {
     struct meta_Action74Vars* vars74 = arena_alloc(parse_state->arena, sizeof(struct meta_Action74Vars));
     _ = meta_rule_nameAsActionLookup(parse_state);
     vars74->x = _;
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         _ = meta_rule_nextname(parse_state);
         vars74->y = _;
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_74, (void*)vars74, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_74, (void*)vars74, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
@@ -3683,10 +3683,10 @@ MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
     struct meta_Action75Vars* vars75 = arena_alloc(parse_state->arena, sizeof(struct meta_Action75Vars));
     _ = meta_rule_variableName(parse_state);
     vars75->x = _;
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_75, (void*)vars75, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_75, (void*)vars75, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_nextname(MetaParseState* parse_state) {
@@ -3706,24 +3706,24 @@ MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_373, sizeof(meta_symbol_373)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         nlookahead_pos = parse_state->pos;
         _ = meta_rule_char(parse_state);
-        if (meta_action_valid2(_)) {
-            _ = meta_action_create_invalid2();
+        if (_.valid) {
+            _ = meta_action_create_invalid();
         } else {
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
         }
         parse_state->pos = nlookahead_pos;
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_76, (void*)vars76, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(meta_action_76, (void*)vars76, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_wvar(MetaParseState* parse_state) {
@@ -3742,32 +3742,32 @@ MetaAction meta_rule_wvar(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_375, sizeof(meta_symbol_375)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         if (parse_state->pos < parse_state->input_buffer->size) {
             parse_state->pos += 1;
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid2();
+            _ = meta_action_create_invalid();
         }
         vars77->x = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             data = string_from_cstring(parse_state->arena, meta_symbol_376, sizeof(meta_symbol_376)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
-                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid2();
+                _ = meta_action_create_invalid();
             }
-            if (meta_action_valid2(_)) {
-                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (_.valid) {
+                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
@@ -3784,8 +3784,8 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_stringEscape(parse_state);
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3794,28 +3794,28 @@ MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_379, sizeof(meta_symbol_379)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        _ = meta_action_create_invalid2();
+    if (_.valid) {
+        _ = meta_action_create_invalid();
     } else {
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
     }
     parse_state->pos = nlookahead_pos;
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         if (parse_state->pos < parse_state->input_buffer->size) {
             parse_state->pos += 1;
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid2();
+            _ = meta_action_create_invalid();
         }
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_charString(MetaParseState* parse_state) {
@@ -3837,38 +3837,38 @@ MetaAction meta_rule_charString(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_380, sizeof(meta_symbol_380)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_charStringInner(parse_state);
-            if (!meta_action_valid2(_)) {
+            if (!_.valid) {
                 parse_state->pos = star_pos;
                 break;
             }
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars80->xs = _;
-        if (meta_action_valid2(_)) {
+        if (_.valid) {
             data = string_from_cstring(parse_state->arena, meta_symbol_381, sizeof(meta_symbol_381)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
-                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid2();
+                _ = meta_action_create_invalid();
             }
-            if (meta_action_valid2(_)) {
-                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_80, (void*)vars80, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (_.valid) {
+                return meta_register_parse(parse_state->arena, meta_action_create(meta_action_80, (void*)vars80, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
@@ -3885,8 +3885,8 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_stringEscape(parse_state);
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3895,12 +3895,12 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_391, sizeof(meta_symbol_391)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_82, (void*)vars82, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(meta_action_82, (void*)vars82, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3909,28 +3909,28 @@ MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_393, sizeof(meta_symbol_393)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        _ = meta_action_create_invalid2();
+    if (_.valid) {
+        _ = meta_action_create_invalid();
     } else {
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);
     }
     parse_state->pos = nlookahead_pos;
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         if (parse_state->pos < parse_state->input_buffer->size) {
             parse_state->pos += 1;
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid2();
+            _ = meta_action_create_invalid();
         }
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
@@ -3948,22 +3948,22 @@ MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_394, sizeof(meta_symbol_394)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         if (parse_state->pos < parse_state->input_buffer->size) {
             parse_state->pos += 1;
-            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
+            _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid2();
+            _ = meta_action_create_invalid();
         }
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_ruleName(MetaParseState* parse_state) {
@@ -3978,10 +3978,10 @@ MetaAction meta_rule_ruleName(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_name(parse_state);
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_variableName(MetaParseState* parse_state) {
@@ -3996,10 +3996,10 @@ MetaAction meta_rule_variableName(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_name(parse_state);
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_name(MetaParseState* parse_state) {
@@ -4017,24 +4017,24 @@ MetaAction meta_rule_name(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_char(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_char(parse_state);
-            if (!meta_action_valid2(_)) {
+            if (!_.valid) {
                 parse_state->pos = star_pos;
                 break;
             }
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_char(MetaParseState* parse_state) {
@@ -4049,17 +4049,17 @@ MetaAction meta_rule_char(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_lower(parse_state);
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_upper(parse_state);
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_lower(MetaParseState* parse_state) {
@@ -4077,12 +4077,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_395, sizeof(meta_symbol_395)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4090,12 +4090,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_396, sizeof(meta_symbol_396)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4103,12 +4103,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_397, sizeof(meta_symbol_397)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4116,12 +4116,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_398, sizeof(meta_symbol_398)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4129,12 +4129,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_399, sizeof(meta_symbol_399)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4142,12 +4142,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_400, sizeof(meta_symbol_400)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4155,12 +4155,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_401, sizeof(meta_symbol_401)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4168,12 +4168,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_402, sizeof(meta_symbol_402)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4181,12 +4181,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_403, sizeof(meta_symbol_403)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4194,12 +4194,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_404, sizeof(meta_symbol_404)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4207,12 +4207,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_405, sizeof(meta_symbol_405)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4220,12 +4220,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_406, sizeof(meta_symbol_406)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4233,12 +4233,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_407, sizeof(meta_symbol_407)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4246,12 +4246,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_408, sizeof(meta_symbol_408)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4259,12 +4259,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_409, sizeof(meta_symbol_409)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4272,12 +4272,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_410, sizeof(meta_symbol_410)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4285,12 +4285,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_411, sizeof(meta_symbol_411)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4298,12 +4298,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_412, sizeof(meta_symbol_412)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4311,12 +4311,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_413, sizeof(meta_symbol_413)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4324,12 +4324,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_414, sizeof(meta_symbol_414)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4337,12 +4337,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_415, sizeof(meta_symbol_415)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4350,12 +4350,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_416, sizeof(meta_symbol_416)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4363,12 +4363,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_417, sizeof(meta_symbol_417)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4376,12 +4376,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_418, sizeof(meta_symbol_418)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4389,12 +4389,12 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_419, sizeof(meta_symbol_419)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4402,14 +4402,14 @@ MetaAction meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_420, sizeof(meta_symbol_420)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_upper(MetaParseState* parse_state) {
@@ -4427,12 +4427,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_421, sizeof(meta_symbol_421)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4440,12 +4440,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_422, sizeof(meta_symbol_422)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4453,12 +4453,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_423, sizeof(meta_symbol_423)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4466,12 +4466,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_424, sizeof(meta_symbol_424)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4479,12 +4479,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_425, sizeof(meta_symbol_425)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4492,12 +4492,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_426, sizeof(meta_symbol_426)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4505,12 +4505,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_427, sizeof(meta_symbol_427)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4518,12 +4518,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_428, sizeof(meta_symbol_428)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4531,12 +4531,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_429, sizeof(meta_symbol_429)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4544,12 +4544,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_430, sizeof(meta_symbol_430)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4557,12 +4557,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_431, sizeof(meta_symbol_431)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4570,12 +4570,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_432, sizeof(meta_symbol_432)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4583,12 +4583,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_433, sizeof(meta_symbol_433)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4596,12 +4596,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_434, sizeof(meta_symbol_434)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4609,12 +4609,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_435, sizeof(meta_symbol_435)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4622,12 +4622,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_436, sizeof(meta_symbol_436)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4635,12 +4635,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_437, sizeof(meta_symbol_437)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4648,12 +4648,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_438, sizeof(meta_symbol_438)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4661,12 +4661,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_439, sizeof(meta_symbol_439)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4674,12 +4674,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_440, sizeof(meta_symbol_440)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4687,12 +4687,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_441, sizeof(meta_symbol_441)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4700,12 +4700,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_442, sizeof(meta_symbol_442)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4713,12 +4713,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_443, sizeof(meta_symbol_443)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4726,12 +4726,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_444, sizeof(meta_symbol_444)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4739,12 +4739,12 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_445, sizeof(meta_symbol_445)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4752,14 +4752,14 @@ MetaAction meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_446, sizeof(meta_symbol_446)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_number(MetaParseState* parse_state) {
@@ -4777,24 +4777,24 @@ MetaAction meta_rule_number(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_digit(parse_state);
-    if (meta_action_valid2(_)) {
+    if (_.valid) {
         star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_digit(parse_state);
-            if (!meta_action_valid2(_)) {
+            if (!_.valid) {
                 parse_state->pos = star_pos;
                 break;
             }
             list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        if (meta_action_valid2(_)) {
-            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        if (_.valid) {
+            return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_space(MetaParseState* parse_state) {
@@ -4816,17 +4816,17 @@ MetaAction meta_rule_space(MetaParseState* parse_state) {
     while (1) {
         star_pos = parse_state->pos;
         _ = meta_rule_spacechar(parse_state);
-        if (!meta_action_valid2(_)) {
+        if (!_.valid) {
             parse_state->pos = star_pos;
             break;
         }
         list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
     }
-    _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    _ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
@@ -4844,12 +4844,12 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_447, sizeof(meta_symbol_447)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4857,14 +4857,14 @@ MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_448, sizeof(meta_symbol_448)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid2();
+        _ = meta_action_create_invalid();
     }
-    if (meta_action_valid2(_)) {
-        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (_.valid) {
+        return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid2();
+    return meta_action_create_invalid();
 }
 
 #ifndef NO_MAIN
@@ -4878,7 +4878,7 @@ int main(void) {
     meta_Runtime* runtime = meta_create_runtime(parse_state->arena);
     MetaAction action = meta_rule_main(parse_state);
     ListItem* placeholder_item;
-    if (!meta_action_valid2(action)) {
+    if (!action.valid) {
         fprintf(stderr, "ERROR: parse error [pos=%d] [size=%d]", parse_state->pos, parse_state->input_buffer->size);
         exit(1);
     }
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index b43815c..a994bc4 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -63,7 +63,7 @@ file = rule*:xs space !. -> {
         <prefix "Runtime* runtime = " <prefix "create_runtime(parse_state->arena);\n"
         "MetaAction action = " <prefix "rule_main(parse_state);\n"
         "ListItem* placeholder_item;\n"
-        "if (!meta_action_valid2(action)) {\n" >
+        "if (!action.valid) {\n" >
             "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n"
             "exit(1);\n"
         < "}\n"
@@ -103,7 +103,7 @@ rule = space ruleName:x highlight:h space '=' space ors:y space ';' -> {
         $ruleVars
         <ruleVars
         y
-        "return meta_action_create_invalid2();\n"
+        "return meta_action_create_invalid();\n"
     < "}\n"
     "\n"
 };
@@ -151,7 +151,7 @@ orcase = matchAnd:x -> {
 matchAnd =
     | space matchExpr:x matchAnd:y -> {
         x
-        "if (meta_action_valid2(_)) {\n" >
+        "if (_.valid) {\n" >
             y
         < "}\n"
     }
@@ -165,10 +165,10 @@ matchExpr =
         }
         "nlookahead_pos = parse_state->pos;\n"
         x
-        "if (meta_action_valid2(_)) {\n" >
-            "_ = meta_action_create_invalid2();\n"
+        "if (_.valid) {\n" >
+            "_ = meta_action_create_invalid();\n"
         < "} else {\n" >
-            "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);\n"
+            "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"
         < "}\n"
         "parse_state->pos = nlookahead_pos;\n"
     }
@@ -178,10 +178,10 @@ matchExpr =
         }
         "lookahead_pos = parse_state->pos;\n"
         x
-        "if (meta_action_valid2(_)) {\n" >
-            "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);\n"
+        "if (_.valid) {\n" >
+            "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"
         < "} else {\n" >
-            "_ = meta_action_create_invalid2();\n"
+            "_ = meta_action_create_invalid();\n"
         < "}\n"
         "parse_state->pos = lookahead_pos;\n"
     }
@@ -210,13 +210,13 @@ matchExprRepeat =
         "while (1) {\n" >
             "star_pos = parse_state->pos;\n"
             x
-            "if (!meta_action_valid2(_)) {\n" >
+            "if (!_.valid) {\n" >
                 "parse_state->pos = star_pos;\n"
                 "break;\n"
             < "}\n"
             "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n"
         < "}\n"
-        "_ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"
+        "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"
     }
     | matchExprPrimitive:x -> {
         x
@@ -261,17 +261,17 @@ matchExprPrimitive =
         xs
         "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n" >
             "parse_state->pos += 1;\n"
-            "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"
+            "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"
         < "} else {\n" >
-            "_ = meta_action_create_invalid2();\n"
+            "_ = meta_action_create_invalid();\n"
         < "}\n"
     }
     | opAny -> {
         "if (parse_state->pos < parse_state->input_buffer->size) {\n" >
             "parse_state->pos += 1;\n"
-            "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"
+            "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"
         < "} else {\n" >
-            "_ = meta_action_create_invalid2();\n"
+            "_ = meta_action_create_invalid();\n"
         < "}\n"
     }
     | charString:x -> {
@@ -281,9 +281,9 @@ matchExprPrimitive =
         "data = " x ";\n"
         "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n" >
             "parse_state->pos += data->size;\n"
-            "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"
+            "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"
         < "} else {\n" >
-            "_ = meta_action_create_invalid2();\n"
+            "_ = meta_action_create_invalid();\n"
         < "}\n"
     }
     ;
@@ -301,10 +301,10 @@ action =
         >orInit {
             "struct " <prefix "Action" W[0] "Vars* vars" W[0] " = arena_alloc(parse_state->arena, sizeof(struct " <prefix "Action" W[0] "Vars));\n"
         }
-        "return meta_register_parse2(parse_state->arena, meta_action_create2(" <prefix "action_" W[0] ", (void*)vars" W[0] ", parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n"
+        "return meta_register_parse(parse_state->arena, meta_action_create(" <prefix "action_" W[0] ", (void*)vars" W[0] ", parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n"
     }
     | -> {
-        "return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n"
+        "return meta_register_parse(parse_state->arena, meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n"
     }
     ;
 
@@ -369,7 +369,7 @@ actionexpr =
             unique("StringBuilder* string_builder;\n")
         }
         "string_builder = string_builder_create(" runtime "->arena);\n"
-        "meta_placeholder_append2(" runtime "->arena, " runtime "->placeholders, string_builder, meta_action_create2(placeholder_" W[1] ", variables, NULL, 0, 0));\n"
+        "meta_placeholder_append2(" runtime "->arena, " runtime "->placeholders, string_builder, meta_action_create(placeholder_" W[1] ", variables, NULL, 0, 0));\n"
         "string_builder_append(" runtime "->current_string_builder, " runtime "->arena, NULL, 0, string_builder);\n"
     }
     | space string:x genRuntime:runtime -> {
@@ -436,7 +436,7 @@ expr =
     ;
 
 numberPart = space nameAsActionLookup:x maybeShift:y -> {
-    "+(meta_action_first_byte2(" x ")" y ")"
+    "+(meta_action_first_byte(" x ")" y ")"
 };
 
 maybeShift = '<<' number | -> {};
@@ -457,7 +457,7 @@ nameAsActionLookup = variableName:x -> {
     "(((struct " <prefix "Action" W[0] "Vars*)variables)->" x ")"
 };
 
-nextname = '.len' !char -> { "meta_action_len2" };
+nextname = '.len' !char -> { "meta_action_len" };
 
 wvar = 'W[' .:x ']' -> {
     >namedWs {

commit 3ef7cedb43b6b25e80c94a07fdfe5e17c4673e15
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 22 21:26:05 2025 +0100

    Convert to passing actions by value (except for placeholders)

diff --git a/src/highlight.c b/src/highlight.c
index 511e932..1e506bf 100644
--- a/src/highlight.c
+++ b/src/highlight.c
@@ -18,11 +18,11 @@ MetaParseFunction get_parse_function(int argc, char** argv) {
 int main(int argc, char** argv) {
     Arena arena = arena_create(2<<25);
     MetaParseState* parse_state = meta_parse_state_from_stdin(&arena);
-    MetaAction* action = get_parse_function(argc, argv)(parse_state);
+    MetaAction action = get_parse_function(argc, argv)(parse_state);
     int i;
     MetaHighlight highlight = MetaHighlight_Unset;
     MetaRuleParseInfo* rule_parse_info;
-    if (action == NULL) {
+    if (!meta_action_valid2(action)) {
         fprintf(stderr, "ERROR: parse error [pos=%d] [size=%d]", parse_state->pos, parse_state->input_buffer->size);
         exit(1);
     }
diff --git a/src/meta.c b/src/meta.c
index d98e20a..5518118 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -88,10 +88,18 @@ unsigned int meta_action_len(MetaAction* action) {
     return action->end-action->start;
 }
 
+unsigned int meta_action_len2(MetaAction action) {
+    return action.end-action.start;
+}
+
 unsigned char meta_action_first_byte(MetaAction* action) {
     return (unsigned char)action->input_buffer->buffer[action->start];
 }
 
+unsigned char meta_action_first_byte2(MetaAction action) {
+    return (unsigned char)action.input_buffer->buffer[action.start];
+}
+
 typedef struct meta_rule_parse_info MetaRuleParseInfo;
 
 struct meta_rule_parse_info {
@@ -119,6 +127,16 @@ MetaAction* meta_register_parse(Arena* arena, MetaAction* action, MetaParseState
     return action;
 }
 
+MetaAction meta_register_parse2(Arena* arena, MetaAction action, MetaParseState* parse_state, MetaHighlight highlight) {
+    MetaRuleParseInfo* rule_parse_info = arena_alloc(arena, sizeof(MetaRuleParseInfo));
+    rule_parse_info->start = action.start;
+    rule_parse_info->end = action.end;
+    rule_parse_info->highlight = highlight;
+    rule_parse_info->previous = parse_state->rule_parse_info;
+    parse_state->rule_parse_info = rule_parse_info;
+    return action;
+}
+
 MetaParseState* meta_parse_state_from_stdin(Arena* arena) {
     char* pos;
     int i;
@@ -160,6 +178,13 @@ void meta_placeholder_append(Arena* arena, MetaPlaceholders* placeholders, Strin
     list_append(arena, placeholders, (void*)next_placeholder);
 }
 
+void meta_placeholder_append2(Arena* arena, MetaPlaceholders* placeholders, StringBuilder* string_builder, MetaAction action) {
+    MetaPlaceholder* next_placeholder = arena_alloc(arena, sizeof(MetaPlaceholder));
+    next_placeholder->string_builder = string_builder;
+    next_placeholder->action = arena_copy(arena, sizeof(action), (unsigned char*)&action);
+    list_append(arena, placeholders, (void*)next_placeholder);
+}
+
 unsigned int meta_inc(unsigned int value, unsigned int amount) {
     return value + amount;
 }
@@ -168,6 +193,6 @@ unsigned int meta_max(unsigned int a, unsigned int b) {
     return a > b ? a : b;
 }
 
-typedef MetaAction* (*MetaParseFunction)(MetaParseState* parse_state);
+typedef MetaAction (*MetaParseFunction)(MetaParseState* parse_state);
 
 #endif
diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index 14e61f7..565c3b8 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -84,16 +84,16 @@ static char meta_symbol_41[] = "unsigned int parse_size;\n";
 static char meta_symbol_42[] = "unsigned int codegen_size;\n";
 static char meta_symbol_43[] = "Runtime* runtime = ";
 static char meta_symbol_44[] = "create_runtime(parse_state->arena);\n";
-static char meta_symbol_45[] = "MetaAction* action = ";
+static char meta_symbol_45[] = "MetaAction action = ";
 static char meta_symbol_46[] = "rule_main(parse_state);\n";
 static char meta_symbol_47[] = "ListItem* placeholder_item;\n";
-static char meta_symbol_48[] = "if (!meta_action_valid(action)) {\n";
+static char meta_symbol_48[] = "if (!meta_action_valid2(action)) {\n";
 static char meta_symbol_49[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
 static char meta_symbol_50[] = "exit(1);\n";
 static char meta_symbol_51[] = "}\n";
 static char meta_symbol_52[] = "parse_size = arena.used - input_pos;\n";
 static char meta_symbol_53[] = "parse_pos = arena.used;\n";
-static char meta_symbol_54[] = "meta_action_run(action, runtime, runtime->current_string_builder, runtime->arena);\n";
+static char meta_symbol_54[] = "meta_action_run(&action, runtime, runtime->current_string_builder, runtime->arena);\n";
 static char meta_symbol_55[] = "placeholder_item = runtime->placeholders->pre_first->next;\n";
 static char meta_symbol_56[] = "while (placeholder_item) {\n";
 static char meta_symbol_57[] = "MetaPlaceholder* placeholder = placeholder_item->data;\n";
@@ -114,19 +114,19 @@ static char meta_symbol_71[] = "}\n";
 static char meta_symbol_72[] = "#endif\n";
 static char meta_symbol_73[] = "=";
 static char meta_symbol_74[] = ";";
-static char meta_symbol_75[] = "MetaAction* ";
+static char meta_symbol_75[] = "MetaAction ";
 static char meta_symbol_76[] = "rule_";
 static char meta_symbol_77[] = "(MetaParseState* parse_state);\n";
-static char meta_symbol_78[] = "MetaAction* ";
+static char meta_symbol_78[] = "MetaAction ";
 static char meta_symbol_79[] = "rule_";
 static char meta_symbol_80[] = "(MetaParseState* parse_state) {\n";
 static char meta_symbol_81[] = "unsigned int or_backtrack_pos;\n";
 static char meta_symbol_82[] = "MetaRuleParseInfo* or_backtrack_rule_parse_info;\n";
 static char meta_symbol_83[] = "unsigned int action_start_pos;\n";
-static char meta_symbol_84[] = "MetaAction* _;\n";
+static char meta_symbol_84[] = "MetaAction _;\n";
 static char meta_symbol_85[] = "MetaHighlight highlight = ";
 static char meta_symbol_86[] = ";\n";
-static char meta_symbol_87[] = "return meta_action_create_invalid();\n";
+static char meta_symbol_87[] = "return meta_action_create_invalid2();\n";
 static char meta_symbol_88[] = "}\n";
 static char meta_symbol_89[] = "\n";
 static char meta_symbol_90[] = "[";
@@ -142,27 +142,27 @@ static char meta_symbol_99[] = "};\n";
 static char meta_symbol_100[] = "parse_state->pos = or_backtrack_pos;\n";
 static char meta_symbol_101[] = "parse_state->rule_parse_info = or_backtrack_rule_parse_info;\n";
 static char meta_symbol_102[] = "action_start_pos = parse_state->pos;\n";
-static char meta_symbol_103[] = "if (_) {\n";
+static char meta_symbol_103[] = "if (meta_action_valid2(_)) {\n";
 static char meta_symbol_104[] = "}\n";
 static char meta_symbol_105[] = "unsigned int nlookahead_pos;\n";
 static char meta_symbol_106[] = "unsigned int nlookahead_pos;\n";
 static char meta_symbol_107[] = "nlookahead_pos = parse_state->pos;\n";
-static char meta_symbol_108[] = "if (meta_action_valid(_)) {\n";
-static char meta_symbol_109[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_108[] = "if (meta_action_valid2(_)) {\n";
+static char meta_symbol_109[] = "_ = meta_action_create_invalid2();\n";
 static char meta_symbol_110[] = "} else {\n";
-static char meta_symbol_111[] = "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char meta_symbol_111[] = "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
 static char meta_symbol_112[] = "}\n";
 static char meta_symbol_113[] = "parse_state->pos = nlookahead_pos;\n";
 static char meta_symbol_114[] = "unsigned int lookahead_pos;\n";
 static char meta_symbol_115[] = "unsigned int lookahead_pos;\n";
 static char meta_symbol_116[] = "lookahead_pos = parse_state->pos;\n";
-static char meta_symbol_117[] = "if (meta_action_valid(_)) {\n";
-static char meta_symbol_118[] = "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char meta_symbol_117[] = "if (meta_action_valid2(_)) {\n";
+static char meta_symbol_118[] = "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
 static char meta_symbol_119[] = "} else {\n";
-static char meta_symbol_120[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_120[] = "_ = meta_action_create_invalid2();\n";
 static char meta_symbol_121[] = "}\n";
 static char meta_symbol_122[] = "parse_state->pos = lookahead_pos;\n";
-static char meta_symbol_123[] = "MetaAction* ";
+static char meta_symbol_123[] = "MetaAction ";
 static char meta_symbol_124[] = ";\n";
 static char meta_symbol_125[] = "vars";
 static char meta_symbol_126[] = "->";
@@ -177,13 +177,13 @@ static char meta_symbol_134[] = "star_variables = list_create(parse_state->arena
 static char meta_symbol_135[] = "star_start_pos = parse_state->pos;\n";
 static char meta_symbol_136[] = "while (1) {\n";
 static char meta_symbol_137[] = "star_pos = parse_state->pos;\n";
-static char meta_symbol_138[] = "if (!meta_action_valid(_)) {\n";
+static char meta_symbol_138[] = "if (!meta_action_valid2(_)) {\n";
 static char meta_symbol_139[] = "parse_state->pos = star_pos;\n";
 static char meta_symbol_140[] = "break;\n";
 static char meta_symbol_141[] = "}\n";
-static char meta_symbol_142[] = "list_append(parse_state->arena, star_variables, (void*)_);\n";
+static char meta_symbol_142[] = "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n";
 static char meta_symbol_143[] = "}\n";
-static char meta_symbol_144[] = "_ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char meta_symbol_144[] = "_ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
 static char meta_symbol_145[] = ":";
 static char meta_symbol_146[] = "*";
 static char meta_symbol_147[] = "&";
@@ -210,15 +210,15 @@ static char meta_symbol_167[] = "bitpattern = 0;\n";
 static char meta_symbol_168[] = "bitmask = 0;\n";
 static char meta_symbol_169[] = "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n";
 static char meta_symbol_170[] = "parse_state->pos += 1;\n";
-static char meta_symbol_171[] = "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char meta_symbol_171[] = "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
 static char meta_symbol_172[] = "} else {\n";
-static char meta_symbol_173[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_173[] = "_ = meta_action_create_invalid2();\n";
 static char meta_symbol_174[] = "}\n";
 static char meta_symbol_175[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
 static char meta_symbol_176[] = "parse_state->pos += 1;\n";
-static char meta_symbol_177[] = "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char meta_symbol_177[] = "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
 static char meta_symbol_178[] = "} else {\n";
-static char meta_symbol_179[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_179[] = "_ = meta_action_create_invalid2();\n";
 static char meta_symbol_180[] = "}\n";
 static char meta_symbol_181[] = "String* data;\n";
 static char meta_symbol_182[] = "String* data;\n";
@@ -226,9 +226,9 @@ static char meta_symbol_183[] = "data = ";
 static char meta_symbol_184[] = ";\n";
 static char meta_symbol_185[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
 static char meta_symbol_186[] = "parse_state->pos += data->size;\n";
-static char meta_symbol_187[] = "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char meta_symbol_187[] = "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
 static char meta_symbol_188[] = "} else {\n";
-static char meta_symbol_189[] = "_ = meta_action_create_invalid();\n";
+static char meta_symbol_189[] = "_ = meta_action_create_invalid2();\n";
 static char meta_symbol_190[] = "}\n";
 static char meta_symbol_191[] = "{";
 static char meta_symbol_192[] = "}";
@@ -243,23 +243,23 @@ static char meta_symbol_200[] = "Vars* vars";
 static char meta_symbol_201[] = " = arena_alloc(parse_state->arena, sizeof(struct ";
 static char meta_symbol_202[] = "Action";
 static char meta_symbol_203[] = "Vars));\n";
-static char meta_symbol_204[] = "return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, ";
+static char meta_symbol_204[] = "return meta_register_parse2(parse_state->arena, meta_action_create2(";
 static char meta_symbol_205[] = "action_";
 static char meta_symbol_206[] = ", (void*)vars";
 static char meta_symbol_207[] = ", parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n";
-static char meta_symbol_208[] = "return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n";
+static char meta_symbol_208[] = "return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n";
 static char meta_symbol_209[] = "((";
 static char meta_symbol_210[] = "Runtime*)runtime)";
 static char meta_symbol_211[] = "unseen(";
 static char meta_symbol_212[] = ") -> {";
 static char meta_symbol_213[] = "}";
-static char meta_symbol_214[] = "MetaAction* action;\n";
-static char meta_symbol_215[] = "MetaAction* action;\n";
+static char meta_symbol_214[] = "MetaAction action;\n";
+static char meta_symbol_215[] = "MetaAction action;\n";
 static char meta_symbol_216[] = "action = ";
 static char meta_symbol_217[] = ";\n";
 static char meta_symbol_218[] = "if (!string_builder_contains(";
 static char meta_symbol_219[] = "->current_string_builder, string_slice(";
-static char meta_symbol_220[] = "->arena, action->input_buffer, action->start, action->end))) {\n";
+static char meta_symbol_220[] = "->arena, action.input_buffer, action.start, action.end))) {\n";
 static char meta_symbol_221[] = "}\n";
 static char meta_symbol_222[] = "unique(";
 static char meta_symbol_223[] = ")";
@@ -303,7 +303,7 @@ static char meta_symbol_260[] = "->current_string_builder, ";
 static char meta_symbol_261[] = "->arena, string_from_integer(";
 static char meta_symbol_262[] = "->arena, ";
 static char meta_symbol_263[] = "), 0, NULL);\n";
-static char meta_symbol_264[] = "meta_action_run(";
+static char meta_symbol_264[] = "meta_action_run(&";
 static char meta_symbol_265[] = ", runtime, ";
 static char meta_symbol_266[] = "->current_string_builder, ";
 static char meta_symbol_267[] = "->arena);\n";
@@ -317,376 +317,375 @@ static char meta_symbol_274[] = "StringBuilder* string_builder;\n";
 static char meta_symbol_275[] = "StringBuilder* string_builder;\n";
 static char meta_symbol_276[] = "string_builder = string_builder_create(";
 static char meta_symbol_277[] = "->arena);\n";
-static char meta_symbol_278[] = "meta_placeholder_append(";
+static char meta_symbol_278[] = "meta_placeholder_append2(";
 static char meta_symbol_279[] = "->arena, ";
-static char meta_symbol_280[] = "->placeholders, string_builder, meta_action_create(";
-static char meta_symbol_281[] = "->arena, placeholder_";
-static char meta_symbol_282[] = ", variables, NULL, 0, 0));\n";
-static char meta_symbol_283[] = "string_builder_append(";
-static char meta_symbol_284[] = "->current_string_builder, ";
-static char meta_symbol_285[] = "->arena, NULL, 0, string_builder);\n";
-static char meta_symbol_286[] = "string_builder_append(";
-static char meta_symbol_287[] = "->current_string_builder, ";
-static char meta_symbol_288[] = "->arena, ";
-static char meta_symbol_289[] = ", 0, NULL);\n";
-static char meta_symbol_290[] = "#";
-static char meta_symbol_291[] = "(";
-static char meta_symbol_292[] = " ";
-static char meta_symbol_293[] = ")";
-static char meta_symbol_294[] = "->W_";
-static char meta_symbol_295[] = " = meta_";
-static char meta_symbol_296[] = "(";
-static char meta_symbol_297[] = "->W_";
-static char meta_symbol_298[] = " ? ";
-static char meta_symbol_299[] = "->W_";
-static char meta_symbol_300[] = " : 0, ";
-static char meta_symbol_301[] = ");\n";
-static char meta_symbol_302[] = ">";
-static char meta_symbol_303[] = "<";
-static char meta_symbol_304[] = "string_builder_append(";
-static char meta_symbol_305[] = "->current_string_builder, ";
-static char meta_symbol_306[] = "->arena, NULL, 1, NULL);\n";
-static char meta_symbol_307[] = "string_builder_append(";
-static char meta_symbol_308[] = "->current_string_builder, ";
-static char meta_symbol_309[] = "->arena, NULL, -1, NULL);\n";
-static char meta_symbol_310[] = "StringBuilder* named_string_builder_";
-static char meta_symbol_311[] = ";\n";
-static char meta_symbol_312[] = "0";
-static char meta_symbol_313[] = "1";
-static char meta_symbol_314[] = "2";
-static char meta_symbol_315[] = "3";
-static char meta_symbol_316[] = "4";
-static char meta_symbol_317[] = "5";
-static char meta_symbol_318[] = "6";
-static char meta_symbol_319[] = "7";
-static char meta_symbol_320[] = "8";
-static char meta_symbol_321[] = "9";
-static char meta_symbol_322[] = "{";
-static char meta_symbol_323[] = "*";
-static char meta_symbol_324[] = "}";
+static char meta_symbol_280[] = "->placeholders, string_builder, meta_action_create2(placeholder_";
+static char meta_symbol_281[] = ", variables, NULL, 0, 0));\n";
+static char meta_symbol_282[] = "string_builder_append(";
+static char meta_symbol_283[] = "->current_string_builder, ";
+static char meta_symbol_284[] = "->arena, NULL, 0, string_builder);\n";
+static char meta_symbol_285[] = "string_builder_append(";
+static char meta_symbol_286[] = "->current_string_builder, ";
+static char meta_symbol_287[] = "->arena, ";
+static char meta_symbol_288[] = ", 0, NULL);\n";
+static char meta_symbol_289[] = "#";
+static char meta_symbol_290[] = "(";
+static char meta_symbol_291[] = " ";
+static char meta_symbol_292[] = ")";
+static char meta_symbol_293[] = "->W_";
+static char meta_symbol_294[] = " = meta_";
+static char meta_symbol_295[] = "(";
+static char meta_symbol_296[] = "->W_";
+static char meta_symbol_297[] = " ? ";
+static char meta_symbol_298[] = "->W_";
+static char meta_symbol_299[] = " : 0, ";
+static char meta_symbol_300[] = ");\n";
+static char meta_symbol_301[] = ">";
+static char meta_symbol_302[] = "<";
+static char meta_symbol_303[] = "string_builder_append(";
+static char meta_symbol_304[] = "->current_string_builder, ";
+static char meta_symbol_305[] = "->arena, NULL, 1, NULL);\n";
+static char meta_symbol_306[] = "string_builder_append(";
+static char meta_symbol_307[] = "->current_string_builder, ";
+static char meta_symbol_308[] = "->arena, NULL, -1, NULL);\n";
+static char meta_symbol_309[] = "StringBuilder* named_string_builder_";
+static char meta_symbol_310[] = ";\n";
+static char meta_symbol_311[] = "0";
+static char meta_symbol_312[] = "1";
+static char meta_symbol_313[] = "2";
+static char meta_symbol_314[] = "3";
+static char meta_symbol_315[] = "4";
+static char meta_symbol_316[] = "5";
+static char meta_symbol_317[] = "6";
+static char meta_symbol_318[] = "7";
+static char meta_symbol_319[] = "8";
+static char meta_symbol_320[] = "9";
+static char meta_symbol_321[] = "{";
+static char meta_symbol_322[] = "*";
+static char meta_symbol_323[] = "}";
+static char meta_symbol_324[] = "int i;\n";
 static char meta_symbol_325[] = "int i;\n";
-static char meta_symbol_326[] = "int i;\n";
-static char meta_symbol_327[] = "for (i=0; i < ";
-static char meta_symbol_328[] = "; i++) {\n";
-static char meta_symbol_329[] = "string_builder_append(";
-static char meta_symbol_330[] = "->current_string_builder, ";
-static char meta_symbol_331[] = "->arena, ";
-static char meta_symbol_332[] = ", 0, NULL);\n";
-static char meta_symbol_333[] = "}\n";
-static char meta_symbol_334[] = "(";
-static char meta_symbol_335[] = "->W_";
-static char meta_symbol_336[] = " ? ";
-static char meta_symbol_337[] = "->W_";
-static char meta_symbol_338[] = " : 0)";
-static char meta_symbol_339[] = "(";
-static char meta_symbol_340[] = "-";
-static char meta_symbol_341[] = ")";
-static char meta_symbol_342[] = "((";
-static char meta_symbol_343[] = "->W_";
-static char meta_symbol_344[] = " ? ";
-static char meta_symbol_345[] = "->W_";
-static char meta_symbol_346[] = " : 0)-";
-static char meta_symbol_347[] = ")";
-static char meta_symbol_348[] = "number(";
-static char meta_symbol_349[] = ")";
-static char meta_symbol_350[] = "(0";
-static char meta_symbol_351[] = ")";
-static char meta_symbol_352[] = "+(meta_action_first_byte(";
+static char meta_symbol_326[] = "for (i=0; i < ";
+static char meta_symbol_327[] = "; i++) {\n";
+static char meta_symbol_328[] = "string_builder_append(";
+static char meta_symbol_329[] = "->current_string_builder, ";
+static char meta_symbol_330[] = "->arena, ";
+static char meta_symbol_331[] = ", 0, NULL);\n";
+static char meta_symbol_332[] = "}\n";
+static char meta_symbol_333[] = "(";
+static char meta_symbol_334[] = "->W_";
+static char meta_symbol_335[] = " ? ";
+static char meta_symbol_336[] = "->W_";
+static char meta_symbol_337[] = " : 0)";
+static char meta_symbol_338[] = "(";
+static char meta_symbol_339[] = "-";
+static char meta_symbol_340[] = ")";
+static char meta_symbol_341[] = "((";
+static char meta_symbol_342[] = "->W_";
+static char meta_symbol_343[] = " ? ";
+static char meta_symbol_344[] = "->W_";
+static char meta_symbol_345[] = " : 0)-";
+static char meta_symbol_346[] = ")";
+static char meta_symbol_347[] = "number(";
+static char meta_symbol_348[] = ")";
+static char meta_symbol_349[] = "(0";
+static char meta_symbol_350[] = ")";
+static char meta_symbol_351[] = "+(meta_action_first_byte2(";
+static char meta_symbol_352[] = ")";
 static char meta_symbol_353[] = ")";
-static char meta_symbol_354[] = ")";
-static char meta_symbol_355[] = "<<";
+static char meta_symbol_354[] = "<<";
+static char meta_symbol_355[] = "\"";
 static char meta_symbol_356[] = "\"";
-static char meta_symbol_357[] = "\"";
-static char meta_symbol_358[] = "static char ";
-static char meta_symbol_359[] = "symbol_";
-static char meta_symbol_360[] = "[] = \"";
-static char meta_symbol_361[] = "\";\n";
-static char meta_symbol_362[] = "string_from_cstring(";
-static char meta_symbol_363[] = "->arena, ";
-static char meta_symbol_364[] = "symbol_";
-static char meta_symbol_365[] = ", sizeof(";
-static char meta_symbol_366[] = "symbol_";
-static char meta_symbol_367[] = ")-1)";
-static char meta_symbol_368[] = "(";
-static char meta_symbol_369[] = ")";
-static char meta_symbol_370[] = "(((struct ";
-static char meta_symbol_371[] = "Action";
-static char meta_symbol_372[] = "Vars*)variables)->";
-static char meta_symbol_373[] = ")";
-static char meta_symbol_374[] = ".len";
-static char meta_symbol_375[] = "meta_action_len";
-static char meta_symbol_376[] = "W[";
-static char meta_symbol_377[] = "]";
-static char meta_symbol_378[] = "unsigned int W_";
-static char meta_symbol_379[] = ";\n";
-static char meta_symbol_380[] = "\"";
+static char meta_symbol_357[] = "static char ";
+static char meta_symbol_358[] = "symbol_";
+static char meta_symbol_359[] = "[] = \"";
+static char meta_symbol_360[] = "\";\n";
+static char meta_symbol_361[] = "string_from_cstring(";
+static char meta_symbol_362[] = "->arena, ";
+static char meta_symbol_363[] = "symbol_";
+static char meta_symbol_364[] = ", sizeof(";
+static char meta_symbol_365[] = "symbol_";
+static char meta_symbol_366[] = ")-1)";
+static char meta_symbol_367[] = "(";
+static char meta_symbol_368[] = ")";
+static char meta_symbol_369[] = "(((struct ";
+static char meta_symbol_370[] = "Action";
+static char meta_symbol_371[] = "Vars*)variables)->";
+static char meta_symbol_372[] = ")";
+static char meta_symbol_373[] = ".len";
+static char meta_symbol_374[] = "meta_action_len2";
+static char meta_symbol_375[] = "W[";
+static char meta_symbol_376[] = "]";
+static char meta_symbol_377[] = "unsigned int W_";
+static char meta_symbol_378[] = ";\n";
+static char meta_symbol_379[] = "\"";
+static char meta_symbol_380[] = "\'";
 static char meta_symbol_381[] = "\'";
-static char meta_symbol_382[] = "\'";
-static char meta_symbol_383[] = "static char ";
-static char meta_symbol_384[] = "symbol_";
-static char meta_symbol_385[] = "[] = \"";
-static char meta_symbol_386[] = "\";\n";
-static char meta_symbol_387[] = "string_from_cstring(parse_state->arena, ";
-static char meta_symbol_388[] = "symbol_";
-static char meta_symbol_389[] = ", sizeof(";
-static char meta_symbol_390[] = "symbol_";
-static char meta_symbol_391[] = ")-1)";
-static char meta_symbol_392[] = "\"";
-static char meta_symbol_393[] = "\\\"";
-static char meta_symbol_394[] = "\'";
-static char meta_symbol_395[] = "\\";
-static char meta_symbol_396[] = "a";
-static char meta_symbol_397[] = "b";
-static char meta_symbol_398[] = "c";
-static char meta_symbol_399[] = "d";
-static char meta_symbol_400[] = "e";
-static char meta_symbol_401[] = "f";
-static char meta_symbol_402[] = "g";
-static char meta_symbol_403[] = "h";
-static char meta_symbol_404[] = "i";
-static char meta_symbol_405[] = "j";
-static char meta_symbol_406[] = "k";
-static char meta_symbol_407[] = "l";
-static char meta_symbol_408[] = "m";
-static char meta_symbol_409[] = "n";
-static char meta_symbol_410[] = "o";
-static char meta_symbol_411[] = "p";
-static char meta_symbol_412[] = "q";
-static char meta_symbol_413[] = "r";
-static char meta_symbol_414[] = "s";
-static char meta_symbol_415[] = "t";
-static char meta_symbol_416[] = "u";
-static char meta_symbol_417[] = "v";
-static char meta_symbol_418[] = "w";
-static char meta_symbol_419[] = "x";
-static char meta_symbol_420[] = "y";
-static char meta_symbol_421[] = "z";
-static char meta_symbol_422[] = "A";
-static char meta_symbol_423[] = "B";
-static char meta_symbol_424[] = "C";
-static char meta_symbol_425[] = "D";
-static char meta_symbol_426[] = "E";
-static char meta_symbol_427[] = "F";
-static char meta_symbol_428[] = "G";
-static char meta_symbol_429[] = "H";
-static char meta_symbol_430[] = "I";
-static char meta_symbol_431[] = "J";
-static char meta_symbol_432[] = "K";
-static char meta_symbol_433[] = "L";
-static char meta_symbol_434[] = "M";
-static char meta_symbol_435[] = "N";
-static char meta_symbol_436[] = "O";
-static char meta_symbol_437[] = "P";
-static char meta_symbol_438[] = "Q";
-static char meta_symbol_439[] = "R";
-static char meta_symbol_440[] = "S";
-static char meta_symbol_441[] = "T";
-static char meta_symbol_442[] = "U";
-static char meta_symbol_443[] = "V";
-static char meta_symbol_444[] = "W";
-static char meta_symbol_445[] = "X";
-static char meta_symbol_446[] = "Y";
-static char meta_symbol_447[] = "Z";
-static char meta_symbol_448[] = " ";
-static char meta_symbol_449[] = "\n";
-MetaAction* meta_rule_main(MetaParseState* parse_state);
+static char meta_symbol_382[] = "static char ";
+static char meta_symbol_383[] = "symbol_";
+static char meta_symbol_384[] = "[] = \"";
+static char meta_symbol_385[] = "\";\n";
+static char meta_symbol_386[] = "string_from_cstring(parse_state->arena, ";
+static char meta_symbol_387[] = "symbol_";
+static char meta_symbol_388[] = ", sizeof(";
+static char meta_symbol_389[] = "symbol_";
+static char meta_symbol_390[] = ")-1)";
+static char meta_symbol_391[] = "\"";
+static char meta_symbol_392[] = "\\\"";
+static char meta_symbol_393[] = "\'";
+static char meta_symbol_394[] = "\\";
+static char meta_symbol_395[] = "a";
+static char meta_symbol_396[] = "b";
+static char meta_symbol_397[] = "c";
+static char meta_symbol_398[] = "d";
+static char meta_symbol_399[] = "e";
+static char meta_symbol_400[] = "f";
+static char meta_symbol_401[] = "g";
+static char meta_symbol_402[] = "h";
+static char meta_symbol_403[] = "i";
+static char meta_symbol_404[] = "j";
+static char meta_symbol_405[] = "k";
+static char meta_symbol_406[] = "l";
+static char meta_symbol_407[] = "m";
+static char meta_symbol_408[] = "n";
+static char meta_symbol_409[] = "o";
+static char meta_symbol_410[] = "p";
+static char meta_symbol_411[] = "q";
+static char meta_symbol_412[] = "r";
+static char meta_symbol_413[] = "s";
+static char meta_symbol_414[] = "t";
+static char meta_symbol_415[] = "u";
+static char meta_symbol_416[] = "v";
+static char meta_symbol_417[] = "w";
+static char meta_symbol_418[] = "x";
+static char meta_symbol_419[] = "y";
+static char meta_symbol_420[] = "z";
+static char meta_symbol_421[] = "A";
+static char meta_symbol_422[] = "B";
+static char meta_symbol_423[] = "C";
+static char meta_symbol_424[] = "D";
+static char meta_symbol_425[] = "E";
+static char meta_symbol_426[] = "F";
+static char meta_symbol_427[] = "G";
+static char meta_symbol_428[] = "H";
+static char meta_symbol_429[] = "I";
+static char meta_symbol_430[] = "J";
+static char meta_symbol_431[] = "K";
+static char meta_symbol_432[] = "L";
+static char meta_symbol_433[] = "M";
+static char meta_symbol_434[] = "N";
+static char meta_symbol_435[] = "O";
+static char meta_symbol_436[] = "P";
+static char meta_symbol_437[] = "Q";
+static char meta_symbol_438[] = "R";
+static char meta_symbol_439[] = "S";
+static char meta_symbol_440[] = "T";
+static char meta_symbol_441[] = "U";
+static char meta_symbol_442[] = "V";
+static char meta_symbol_443[] = "W";
+static char meta_symbol_444[] = "X";
+static char meta_symbol_445[] = "Y";
+static char meta_symbol_446[] = "Z";
+static char meta_symbol_447[] = " ";
+static char meta_symbol_448[] = "\n";
+MetaAction meta_rule_main(MetaParseState* parse_state);
 struct meta_Action1Vars {
-    MetaAction* xs;
-    MetaAction* y;
+    MetaAction xs;
+    MetaAction y;
 };
-MetaAction* meta_rule_metaField(MetaParseState* parse_state);
+MetaAction meta_rule_metaField(MetaParseState* parse_state);
 struct meta_Action2Vars {
-    MetaAction* x;
+    MetaAction x;
 };
-MetaAction* meta_rule_file(MetaParseState* parse_state);
+MetaAction meta_rule_file(MetaParseState* parse_state);
 struct meta_Action3Vars {
-    MetaAction* xs;
+    MetaAction xs;
 };
-MetaAction* meta_rule_rule(MetaParseState* parse_state);
+MetaAction meta_rule_rule(MetaParseState* parse_state);
 struct meta_Action4Vars {
-    MetaAction* x;
-    MetaAction* h;
-    MetaAction* y;
+    MetaAction x;
+    MetaAction h;
+    MetaAction y;
 };
-MetaAction* meta_rule_highlight(MetaParseState* parse_state);
+MetaAction meta_rule_highlight(MetaParseState* parse_state);
 struct meta_Action5Vars {
-    MetaAction* x;
+    MetaAction x;
 };
 struct meta_Action6Vars {
 };
-MetaAction* meta_rule_metaName(MetaParseState* parse_state);
+MetaAction meta_rule_metaName(MetaParseState* parse_state);
 struct meta_Action7Vars {
 };
-MetaAction* meta_rule_ors(MetaParseState* parse_state);
+MetaAction meta_rule_ors(MetaParseState* parse_state);
 struct meta_Action8Vars {
-    MetaAction* x;
-    MetaAction* xs;
+    MetaAction x;
+    MetaAction xs;
 };
-MetaAction* meta_rule_restorcase(MetaParseState* parse_state);
+MetaAction meta_rule_restorcase(MetaParseState* parse_state);
 struct meta_Action9Vars {
-    MetaAction* x;
+    MetaAction x;
 };
-MetaAction* meta_rule_maybeorbar(MetaParseState* parse_state);
+MetaAction meta_rule_maybeorbar(MetaParseState* parse_state);
 struct meta_Action10Vars {
 };
 struct meta_Action11Vars {
 };
-MetaAction* meta_rule_orbar(MetaParseState* parse_state);
+MetaAction meta_rule_orbar(MetaParseState* parse_state);
 struct meta_Action12Vars {
 };
-MetaAction* meta_rule_orcase(MetaParseState* parse_state);
+MetaAction meta_rule_orcase(MetaParseState* parse_state);
 struct meta_Action13Vars {
-    MetaAction* x;
+    MetaAction x;
 };
-MetaAction* meta_rule_matchAnd(MetaParseState* parse_state);
+MetaAction meta_rule_matchAnd(MetaParseState* parse_state);
 struct meta_Action14Vars {
-    MetaAction* x;
-    MetaAction* y;
+    MetaAction x;
+    MetaAction y;
 };
 struct meta_Action15Vars {
-    MetaAction* y;
+    MetaAction y;
 };
-MetaAction* meta_rule_matchExpr(MetaParseState* parse_state);
+MetaAction meta_rule_matchExpr(MetaParseState* parse_state);
 struct meta_Action16Vars {
-    MetaAction* x;
+    MetaAction x;
 };
 struct meta_Action17Vars {
-    MetaAction* x;
+    MetaAction x;
 };
 struct meta_Action18Vars {
-    MetaAction* x;
-    MetaAction* y;
+    MetaAction x;
+    MetaAction y;
 };
-MetaAction* meta_rule_matchAssign(MetaParseState* parse_state);
+MetaAction meta_rule_matchAssign(MetaParseState* parse_state);
 struct meta_Action19Vars {
-    MetaAction* x;
+    MetaAction x;
 };
 struct meta_Action20Vars {
 };
-MetaAction* meta_rule_matchExprRepeat(MetaParseState* parse_state);
+MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state);
 struct meta_Action21Vars {
-    MetaAction* x;
+    MetaAction x;
 };
 struct meta_Action22Vars {
-    MetaAction* x;
+    MetaAction x;
 };
-MetaAction* meta_rule_opBind(MetaParseState* parse_state);
+MetaAction meta_rule_opBind(MetaParseState* parse_state);
 struct meta_Action23Vars {
 };
-MetaAction* meta_rule_opStar(MetaParseState* parse_state);
+MetaAction meta_rule_opStar(MetaParseState* parse_state);
 struct meta_Action24Vars {
 };
-MetaAction* meta_rule_opLookahead(MetaParseState* parse_state);
+MetaAction meta_rule_opLookahead(MetaParseState* parse_state);
 struct meta_Action25Vars {
 };
-MetaAction* meta_rule_opNegativeLookahead(MetaParseState* parse_state);
+MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state);
 struct meta_Action26Vars {
 };
-MetaAction* meta_rule_opAny(MetaParseState* parse_state);
+MetaAction meta_rule_opAny(MetaParseState* parse_state);
 struct meta_Action27Vars {
 };
-MetaAction* meta_rule_opOr(MetaParseState* parse_state);
+MetaAction meta_rule_opOr(MetaParseState* parse_state);
 struct meta_Action28Vars {
 };
-MetaAction* meta_rule_opAction(MetaParseState* parse_state);
+MetaAction meta_rule_opAction(MetaParseState* parse_state);
 struct meta_Action29Vars {
 };
-MetaAction* meta_rule_sepBit(MetaParseState* parse_state);
+MetaAction meta_rule_sepBit(MetaParseState* parse_state);
 struct meta_Action30Vars {
-    MetaAction* x;
+    MetaAction x;
 };
-MetaAction* meta_rule_maybeBit(MetaParseState* parse_state);
+MetaAction meta_rule_maybeBit(MetaParseState* parse_state);
 struct meta_Action31Vars {
-    MetaAction* x;
+    MetaAction x;
 };
 struct meta_Action32Vars {
 };
-MetaAction* meta_rule_bit(MetaParseState* parse_state);
+MetaAction meta_rule_bit(MetaParseState* parse_state);
 struct meta_Action33Vars {
 };
 struct meta_Action34Vars {
 };
-MetaAction* meta_rule_matchExprPrimitive(MetaParseState* parse_state);
+MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state);
 struct meta_Action35Vars {
-    MetaAction* x;
+    MetaAction x;
 };
 struct meta_Action36Vars {
-    MetaAction* xs;
+    MetaAction xs;
 };
 struct meta_Action37Vars {
 };
 struct meta_Action38Vars {
-    MetaAction* x;
+    MetaAction x;
 };
-MetaAction* meta_rule_action(MetaParseState* parse_state);
+MetaAction meta_rule_action(MetaParseState* parse_state);
 struct meta_Action39Vars {
-    MetaAction* xs;
+    MetaAction xs;
 };
 struct meta_Action40Vars {
 };
-MetaAction* meta_rule_genRuntime(MetaParseState* parse_state);
+MetaAction meta_rule_genRuntime(MetaParseState* parse_state);
 struct meta_Action41Vars {
 };
-MetaAction* meta_rule_actionexpr(MetaParseState* parse_state);
+MetaAction meta_rule_actionexpr(MetaParseState* parse_state);
 struct meta_Action42Vars {
-    MetaAction* x;
-    MetaAction* ys;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction ys;
+    MetaAction runtime;
 };
 struct meta_Action43Vars {
-    MetaAction* x;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction runtime;
 };
 struct meta_Action44Vars {
-    MetaAction* x;
-    MetaAction* ys;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction ys;
+    MetaAction runtime;
 };
 struct meta_Action45Vars {
-    MetaAction* x;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction runtime;
 };
 struct meta_Action46Vars {
-    MetaAction* x;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction runtime;
 };
 struct meta_Action47Vars {
-    MetaAction* x;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction runtime;
 };
 struct meta_Action48Vars {
-    MetaAction* x;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction runtime;
 };
 struct meta_Action49Vars {
-    MetaAction* x;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction runtime;
 };
 struct meta_Action50Vars {
-    MetaAction* x;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction runtime;
 };
 struct meta_Action51Vars {
-    MetaAction* x;
-    MetaAction* y;
-    MetaAction* z;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction y;
+    MetaAction z;
+    MetaAction runtime;
 };
 struct meta_Action52Vars {
-    MetaAction* xs;
-    MetaAction* runtime;
+    MetaAction xs;
+    MetaAction runtime;
 };
-MetaAction* meta_rule_stringBuilderName(MetaParseState* parse_state);
+MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state);
 struct meta_Action53Vars {
-    MetaAction* x;
+    MetaAction x;
 };
-MetaAction* meta_rule_actionPrimitiveExpression(MetaParseState* parse_state);
+MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state);
 struct meta_Action54Vars {
-    MetaAction* x;
+    MetaAction x;
 };
 struct meta_Action55Vars {
 };
-MetaAction* meta_rule_digit(MetaParseState* parse_state);
+MetaAction meta_rule_digit(MetaParseState* parse_state);
 struct meta_Action56Vars {
 };
 struct meta_Action57Vars {
@@ -707,90 +706,90 @@ struct meta_Action64Vars {
 };
 struct meta_Action65Vars {
 };
-MetaAction* meta_rule_placeholder(MetaParseState* parse_state);
+MetaAction meta_rule_placeholder(MetaParseState* parse_state);
 struct meta_Action66Vars {
-    MetaAction* x;
-    MetaAction* y;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction y;
+    MetaAction runtime;
 };
-MetaAction* meta_rule_expr(MetaParseState* parse_state);
+MetaAction meta_rule_expr(MetaParseState* parse_state);
 struct meta_Action67Vars {
-    MetaAction* x;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction runtime;
 };
 struct meta_Action68Vars {
-    MetaAction* x;
-    MetaAction* y;
-    MetaAction* runtime;
+    MetaAction x;
+    MetaAction y;
+    MetaAction runtime;
 };
 struct meta_Action69Vars {
-    MetaAction* xs;
+    MetaAction xs;
 };
-MetaAction* meta_rule_numberPart(MetaParseState* parse_state);
+MetaAction meta_rule_numberPart(MetaParseState* parse_state);
 struct meta_Action70Vars {
-    MetaAction* x;
-    MetaAction* y;
+    MetaAction x;
+    MetaAction y;
 };
-MetaAction* meta_rule_maybeShift(MetaParseState* parse_state);
+MetaAction meta_rule_maybeShift(MetaParseState* parse_state);
 struct meta_Action71Vars {
 };
 struct meta_Action72Vars {
 };
-MetaAction* meta_rule_string(MetaParseState* parse_state);
+MetaAction meta_rule_string(MetaParseState* parse_state);
 struct meta_Action73Vars {
-    MetaAction* xs;
-    MetaAction* runtime;
+    MetaAction xs;
+    MetaAction runtime;
 };
-MetaAction* meta_rule_dotname(MetaParseState* parse_state);
+MetaAction meta_rule_dotname(MetaParseState* parse_state);
 struct meta_Action74Vars {
-    MetaAction* x;
-    MetaAction* y;
+    MetaAction x;
+    MetaAction y;
 };
-MetaAction* meta_rule_nameAsActionLookup(MetaParseState* parse_state);
+MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state);
 struct meta_Action75Vars {
-    MetaAction* x;
+    MetaAction x;
 };
-MetaAction* meta_rule_nextname(MetaParseState* parse_state);
+MetaAction meta_rule_nextname(MetaParseState* parse_state);
 struct meta_Action76Vars {
 };
-MetaAction* meta_rule_wvar(MetaParseState* parse_state);
+MetaAction meta_rule_wvar(MetaParseState* parse_state);
 struct meta_Action77Vars {
-    MetaAction* x;
+    MetaAction x;
 };
-MetaAction* meta_rule_stringInner(MetaParseState* parse_state);
+MetaAction meta_rule_stringInner(MetaParseState* parse_state);
 struct meta_Action78Vars {
 };
 struct meta_Action79Vars {
 };
-MetaAction* meta_rule_charString(MetaParseState* parse_state);
+MetaAction meta_rule_charString(MetaParseState* parse_state);
 struct meta_Action80Vars {
-    MetaAction* xs;
+    MetaAction xs;
 };
-MetaAction* meta_rule_charStringInner(MetaParseState* parse_state);
+MetaAction meta_rule_charStringInner(MetaParseState* parse_state);
 struct meta_Action81Vars {
 };
 struct meta_Action82Vars {
 };
 struct meta_Action83Vars {
 };
-MetaAction* meta_rule_stringEscape(MetaParseState* parse_state);
+MetaAction meta_rule_stringEscape(MetaParseState* parse_state);
 struct meta_Action84Vars {
 };
-MetaAction* meta_rule_ruleName(MetaParseState* parse_state);
+MetaAction meta_rule_ruleName(MetaParseState* parse_state);
 struct meta_Action85Vars {
 };
-MetaAction* meta_rule_variableName(MetaParseState* parse_state);
+MetaAction meta_rule_variableName(MetaParseState* parse_state);
 struct meta_Action86Vars {
 };
-MetaAction* meta_rule_name(MetaParseState* parse_state);
+MetaAction meta_rule_name(MetaParseState* parse_state);
 struct meta_Action87Vars {
 };
-MetaAction* meta_rule_char(MetaParseState* parse_state);
+MetaAction meta_rule_char(MetaParseState* parse_state);
 struct meta_Action88Vars {
 };
 struct meta_Action89Vars {
 };
-MetaAction* meta_rule_lower(MetaParseState* parse_state);
+MetaAction meta_rule_lower(MetaParseState* parse_state);
 struct meta_Action90Vars {
 };
 struct meta_Action91Vars {
@@ -843,7 +842,7 @@ struct meta_Action114Vars {
 };
 struct meta_Action115Vars {
 };
-MetaAction* meta_rule_upper(MetaParseState* parse_state);
+MetaAction meta_rule_upper(MetaParseState* parse_state);
 struct meta_Action116Vars {
 };
 struct meta_Action117Vars {
@@ -896,13 +895,13 @@ struct meta_Action140Vars {
 };
 struct meta_Action141Vars {
 };
-MetaAction* meta_rule_number(MetaParseState* parse_state);
+MetaAction meta_rule_number(MetaParseState* parse_state);
 struct meta_Action142Vars {
 };
-MetaAction* meta_rule_space(MetaParseState* parse_state);
+MetaAction meta_rule_space(MetaParseState* parse_state);
 struct meta_Action143Vars {
 };
-MetaAction* meta_rule_spacechar(MetaParseState* parse_state);
+MetaAction meta_rule_spacechar(MetaParseState* parse_state);
 struct meta_Action144Vars {
 };
 struct meta_Action145Vars {
@@ -912,8 +911,8 @@ void meta_action_1(void* runtime, void* variables) {
     StringBuilder* string_builder;
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_prefix = string_builder;
-    meta_action_run((((struct meta_Action1Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    meta_action_run((((struct meta_Action1Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action1Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action1Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_2(void* runtime, void* variables) {
@@ -922,7 +921,7 @@ void meta_action_2(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_prefix;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    meta_action_run((((struct meta_Action2Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action2Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_2, sizeof(meta_symbol_2)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
 }
@@ -989,7 +988,7 @@ void meta_action_3(void* runtime, void* variables) {
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_placeholders = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_placeholders);
-    meta_action_run((((struct meta_Action3Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action3Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_35, sizeof(meta_symbol_35)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_36, sizeof(meta_symbol_36)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
@@ -1048,13 +1047,13 @@ void meta_action_4(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_75, sizeof(meta_symbol_75)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_76, sizeof(meta_symbol_76)-1), 0, NULL);
-    meta_action_run((((struct meta_Action4Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action4Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_77, sizeof(meta_symbol_77)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_78, sizeof(meta_symbol_78)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_79, sizeof(meta_symbol_79)-1), 0, NULL);
-    meta_action_run((((struct meta_Action4Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action4Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_80, sizeof(meta_symbol_80)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_81, sizeof(meta_symbol_81)-1), 0, NULL);
@@ -1062,12 +1061,12 @@ void meta_action_4(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_83, sizeof(meta_symbol_83)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_84, sizeof(meta_symbol_84)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_85, sizeof(meta_symbol_85)-1), 0, NULL);
-    meta_action_run((((struct meta_Action4Vars*)variables)->h), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action4Vars*)variables)->h), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_86, sizeof(meta_symbol_86)-1), 0, NULL);
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_ruleVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_ruleVars);
-    meta_action_run((((struct meta_Action4Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action4Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_87, sizeof(meta_symbol_87)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_88, sizeof(meta_symbol_88)-1), 0, NULL);
@@ -1076,7 +1075,7 @@ void meta_action_4(void* runtime, void* variables) {
 
 void meta_action_5(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_92, sizeof(meta_symbol_92)-1), 0, NULL);
-    meta_action_run((((struct meta_Action5Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action5Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_6(void* runtime, void* variables) {
@@ -1086,12 +1085,12 @@ void meta_action_6(void* runtime, void* variables) {
 void meta_action_8(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_94, sizeof(meta_symbol_94)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_95, sizeof(meta_symbol_95)-1), 0, NULL);
-    meta_action_run((((struct meta_Action8Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    meta_action_run((((struct meta_Action8Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action8Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action8Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_9(void* runtime, void* variables) {
-    meta_action_run((((struct meta_Action9Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action9Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_11(void* runtime, void* variables) {
@@ -1122,20 +1121,20 @@ void meta_action_13(void* runtime, void* variables) {
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_orInit = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_orInit);
-    meta_action_run((((struct meta_Action13Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action13Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_14(void* runtime, void* variables) {
-    meta_action_run((((struct meta_Action14Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action14Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_103, sizeof(meta_symbol_103)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    meta_action_run((((struct meta_Action14Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action14Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_104, sizeof(meta_symbol_104)-1), 0, NULL);
 }
 
 void meta_action_15(void* runtime, void* variables) {
-    meta_action_run((((struct meta_Action15Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action15Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_16(void* runtime, void* variables) {
@@ -1149,7 +1148,7 @@ void meta_action_16(void* runtime, void* variables) {
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_107, sizeof(meta_symbol_107)-1), 0, NULL);
-    meta_action_run((((struct meta_Action16Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action16Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_108, sizeof(meta_symbol_108)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_109, sizeof(meta_symbol_109)-1), 0, NULL);
@@ -1173,7 +1172,7 @@ void meta_action_17(void* runtime, void* variables) {
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_116, sizeof(meta_symbol_116)-1), 0, NULL);
-    meta_action_run((((struct meta_Action17Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action17Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_117, sizeof(meta_symbol_117)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_118, sizeof(meta_symbol_118)-1), 0, NULL);
@@ -1187,8 +1186,8 @@ void meta_action_17(void* runtime, void* variables) {
 }
 
 void meta_action_18(void* runtime, void* variables) {
-    meta_action_run((((struct meta_Action18Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    meta_action_run((((struct meta_Action18Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action18Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action18Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_19(void* runtime, void* variables) {
@@ -1198,13 +1197,13 @@ void meta_action_19(void* runtime, void* variables) {
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_variables;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_123, sizeof(meta_symbol_123)-1), 0, NULL);
-    meta_action_run((((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_124, sizeof(meta_symbol_124)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_125, sizeof(meta_symbol_125)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_126, sizeof(meta_symbol_126)-1), 0, NULL);
-    meta_action_run((((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action19Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_127, sizeof(meta_symbol_127)-1), 0, NULL);
 }
 
@@ -1232,7 +1231,7 @@ void meta_action_21(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_136, sizeof(meta_symbol_136)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_137, sizeof(meta_symbol_137)-1), 0, NULL);
-    meta_action_run((((struct meta_Action21Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action21Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_138, sizeof(meta_symbol_138)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_139, sizeof(meta_symbol_139)-1), 0, NULL);
@@ -1246,17 +1245,17 @@ void meta_action_21(void* runtime, void* variables) {
 }
 
 void meta_action_22(void* runtime, void* variables) {
-    meta_action_run((((struct meta_Action22Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action22Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_30(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_153, sizeof(meta_symbol_153)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_154, sizeof(meta_symbol_154)-1), 0, NULL);
-    meta_action_run((((struct meta_Action30Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action30Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_31(void* runtime, void* variables) {
-    meta_action_run((((struct meta_Action31Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action31Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_155, sizeof(meta_symbol_155)-1), 0, NULL);
 }
 
@@ -1274,7 +1273,7 @@ void meta_action_35(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_159, sizeof(meta_symbol_159)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_160, sizeof(meta_symbol_160)-1), 0, NULL);
-    meta_action_run((((struct meta_Action35Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action35Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_161, sizeof(meta_symbol_161)-1), 0, NULL);
 }
 
@@ -1293,7 +1292,7 @@ void meta_action_36(void* runtime, void* variables) {
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_167, sizeof(meta_symbol_167)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_168, sizeof(meta_symbol_168)-1), 0, NULL);
-    meta_action_run((((struct meta_Action36Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action36Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_169, sizeof(meta_symbol_169)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_170, sizeof(meta_symbol_170)-1), 0, NULL);
@@ -1330,7 +1329,7 @@ void meta_action_38(void* runtime, void* variables) {
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_183, sizeof(meta_symbol_183)-1), 0, NULL);
-    meta_action_run((((struct meta_Action38Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action38Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_184, sizeof(meta_symbol_184)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_185, sizeof(meta_symbol_185)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
@@ -1359,7 +1358,7 @@ void meta_action_39(void* runtime, void* variables) {
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_actionVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_actionVars);
-    meta_action_run((((struct meta_Action39Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action39Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_196, sizeof(meta_symbol_196)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_197, sizeof(meta_symbol_197)-1), 0, NULL);
@@ -1409,32 +1408,32 @@ void meta_action_42(void* runtime, void* variables) {
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_216, sizeof(meta_symbol_216)-1), 0, NULL);
-    meta_action_run((((struct meta_Action42Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action42Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_217, sizeof(meta_symbol_217)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_218, sizeof(meta_symbol_218)-1), 0, NULL);
-    meta_action_run((((struct meta_Action42Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action42Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_219, sizeof(meta_symbol_219)-1), 0, NULL);
-    meta_action_run((((struct meta_Action42Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action42Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_220, sizeof(meta_symbol_220)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
-    meta_action_run((((struct meta_Action42Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action42Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_221, sizeof(meta_symbol_221)-1), 0, NULL);
 }
 
 void meta_action_43(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_224, sizeof(meta_symbol_224)-1), 0, NULL);
-    meta_action_run((((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_225, sizeof(meta_symbol_225)-1), 0, NULL);
-    meta_action_run((((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_226, sizeof(meta_symbol_226)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_227, sizeof(meta_symbol_227)-1), 0, NULL);
-    meta_action_run((((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_228, sizeof(meta_symbol_228)-1), 0, NULL);
-    meta_action_run((((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action43Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_229, sizeof(meta_symbol_229)-1), 0, NULL);
-    meta_action_run((((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action43Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_230, sizeof(meta_symbol_230)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_231, sizeof(meta_symbol_231)-1), 0, NULL);
@@ -1454,29 +1453,29 @@ void meta_action_44(void* runtime, void* variables) {
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_239, sizeof(meta_symbol_239)-1), 0, NULL);
-    meta_action_run((((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_240, sizeof(meta_symbol_240)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_241, sizeof(meta_symbol_241)-1), 0, NULL);
-    meta_action_run((((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_242, sizeof(meta_symbol_242)-1), 0, NULL);
-    meta_action_run((((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action44Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_243, sizeof(meta_symbol_243)-1), 0, NULL);
-    meta_action_run((((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_244, sizeof(meta_symbol_244)-1), 0, NULL);
-    meta_action_run((((struct meta_Action44Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    meta_action_run((((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action44Vars*)variables)->ys), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action44Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_245, sizeof(meta_symbol_245)-1), 0, NULL);
 }
 
 void meta_action_45(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_247, sizeof(meta_symbol_247)-1), 0, NULL);
-    meta_action_run((((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_248, sizeof(meta_symbol_248)-1), 0, NULL);
-    meta_action_run((((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_249, sizeof(meta_symbol_249)-1), 0, NULL);
-    meta_action_run((((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_250, sizeof(meta_symbol_250)-1), 0, NULL);
-    meta_action_run((((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action45Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_251, sizeof(meta_symbol_251)-1), 0, NULL);
 }
 
@@ -1491,33 +1490,33 @@ void meta_action_46(void* runtime, void* variables) {
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_255, sizeof(meta_symbol_255)-1), 0, NULL);
-    meta_action_run((((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_256, sizeof(meta_symbol_256)-1), 0, NULL);
-    meta_action_run((((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action46Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_257, sizeof(meta_symbol_257)-1), 0, NULL);
-    meta_action_run((((struct meta_Action46Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action46Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_258, sizeof(meta_symbol_258)-1), 0, NULL);
 }
 
 void meta_action_47(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_259, sizeof(meta_symbol_259)-1), 0, NULL);
-    meta_action_run((((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_260, sizeof(meta_symbol_260)-1), 0, NULL);
-    meta_action_run((((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_261, sizeof(meta_symbol_261)-1), 0, NULL);
-    meta_action_run((((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_262, sizeof(meta_symbol_262)-1), 0, NULL);
-    meta_action_run((((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action47Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_263, sizeof(meta_symbol_263)-1), 0, NULL);
 }
 
 void meta_action_48(void* runtime, void* variables) {
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_264, sizeof(meta_symbol_264)-1), 0, NULL);
-    meta_action_run((((struct meta_Action48Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action48Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_265, sizeof(meta_symbol_265)-1), 0, NULL);
-    meta_action_run((((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_266, sizeof(meta_symbol_266)-1), 0, NULL);
-    meta_action_run((((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action48Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_267, sizeof(meta_symbol_267)-1), 0, NULL);
 }
 
@@ -1542,7 +1541,7 @@ void meta_action_49(void* runtime, void* variables) {
     string_builder = string_builder_create(((meta_Runtime*)runtime)->arena);
     ((meta_Runtime*)runtime)->named_string_builder_placeholderVars = string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_placeholderVars);
-    meta_action_run((((struct meta_Action49Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_272, sizeof(meta_symbol_272)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_273, sizeof(meta_symbol_273)-1), 0, NULL);
@@ -1555,86 +1554,84 @@ void meta_action_49(void* runtime, void* variables) {
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_276, sizeof(meta_symbol_276)-1), 0, NULL);
-    meta_action_run((((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_277, sizeof(meta_symbol_277)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_278, sizeof(meta_symbol_278)-1), 0, NULL);
-    meta_action_run((((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_279, sizeof(meta_symbol_279)-1), 0, NULL);
-    meta_action_run((((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_280, sizeof(meta_symbol_280)-1), 0, NULL);
-    meta_action_run((((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_281, sizeof(meta_symbol_281)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_1 ? ((meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_281, sizeof(meta_symbol_281)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_282, sizeof(meta_symbol_282)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_283, sizeof(meta_symbol_283)-1), 0, NULL);
-    meta_action_run((((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_284, sizeof(meta_symbol_284)-1), 0, NULL);
-    meta_action_run((((struct meta_Action49Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_285, sizeof(meta_symbol_285)-1), 0, NULL);
 }
 
 void meta_action_50(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_285, sizeof(meta_symbol_285)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_286, sizeof(meta_symbol_286)-1), 0, NULL);
-    meta_action_run((((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_287, sizeof(meta_symbol_287)-1), 0, NULL);
-    meta_action_run((((struct meta_Action50Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action50Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_288, sizeof(meta_symbol_288)-1), 0, NULL);
-    meta_action_run((((struct meta_Action50Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_289, sizeof(meta_symbol_289)-1), 0, NULL);
 }
 
 void meta_action_51(void* runtime, void* variables) {
-    meta_action_run((((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_293, sizeof(meta_symbol_293)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_294, sizeof(meta_symbol_294)-1), 0, NULL);
-    meta_action_run((((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_295, sizeof(meta_symbol_295)-1), 0, NULL);
-    meta_action_run((((struct meta_Action51Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_296, sizeof(meta_symbol_296)-1), 0, NULL);
-    meta_action_run((((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_297, sizeof(meta_symbol_297)-1), 0, NULL);
-    meta_action_run((((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_298, sizeof(meta_symbol_298)-1), 0, NULL);
-    meta_action_run((((struct meta_Action51Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_299, sizeof(meta_symbol_299)-1), 0, NULL);
-    meta_action_run((((struct meta_Action51Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action51Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_300, sizeof(meta_symbol_300)-1), 0, NULL);
-    meta_action_run((((struct meta_Action51Vars*)variables)->z), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_301, sizeof(meta_symbol_301)-1), 0, NULL);
 }
 
 void meta_action_52(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_303, sizeof(meta_symbol_303)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_304, sizeof(meta_symbol_304)-1), 0, NULL);
-    meta_action_run((((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_305, sizeof(meta_symbol_305)-1), 0, NULL);
-    meta_action_run((((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_306, sizeof(meta_symbol_306)-1), 0, NULL);
-    meta_action_run((((struct meta_Action52Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_307, sizeof(meta_symbol_307)-1), 0, NULL);
-    meta_action_run((((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_308, sizeof(meta_symbol_308)-1), 0, NULL);
-    meta_action_run((((struct meta_Action52Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_309, sizeof(meta_symbol_309)-1), 0, NULL);
 }
 
 void meta_action_53(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
-    MetaAction* action;
+    MetaAction action;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_namedStringBuilders;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     action = (((struct meta_Action53Vars*)variables)->x);
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action->input_buffer, action->start, action->end))) {
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action.input_buffer, action.start, action.end))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_309, sizeof(meta_symbol_309)-1), 0, NULL);
+        meta_action_run(&(((struct meta_Action53Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_310, sizeof(meta_symbol_310)-1), 0, NULL);
-        meta_action_run((((struct meta_Action53Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_311, sizeof(meta_symbol_311)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    meta_action_run((((struct meta_Action53Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action53Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_54(void* runtime, void* variables) {
-    meta_action_run((((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action54Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_66(void* runtime, void* variables) {
@@ -1643,63 +1640,63 @@ void meta_action_66(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_placeholderVars;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_325, sizeof(meta_symbol_325)-1))) {
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_326, sizeof(meta_symbol_326)-1), 0, NULL);
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_324, sizeof(meta_symbol_324)-1))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_325, sizeof(meta_symbol_325)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_326, sizeof(meta_symbol_326)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action66Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_327, sizeof(meta_symbol_327)-1), 0, NULL);
-    meta_action_run((((struct meta_Action66Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_328, sizeof(meta_symbol_328)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_328, sizeof(meta_symbol_328)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action66Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_329, sizeof(meta_symbol_329)-1), 0, NULL);
-    meta_action_run((((struct meta_Action66Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action66Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_330, sizeof(meta_symbol_330)-1), 0, NULL);
-    meta_action_run((((struct meta_Action66Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action66Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_331, sizeof(meta_symbol_331)-1), 0, NULL);
-    meta_action_run((((struct meta_Action66Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_332, sizeof(meta_symbol_332)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, -1, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_333, sizeof(meta_symbol_333)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_332, sizeof(meta_symbol_332)-1), 0, NULL);
 }
 
 void meta_action_67(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_333, sizeof(meta_symbol_333)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_334, sizeof(meta_symbol_334)-1), 0, NULL);
-    meta_action_run((((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_335, sizeof(meta_symbol_335)-1), 0, NULL);
-    meta_action_run((((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_336, sizeof(meta_symbol_336)-1), 0, NULL);
-    meta_action_run((((struct meta_Action67Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_337, sizeof(meta_symbol_337)-1), 0, NULL);
-    meta_action_run((((struct meta_Action67Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_338, sizeof(meta_symbol_338)-1), 0, NULL);
 }
 
 void meta_action_68(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_341, sizeof(meta_symbol_341)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_342, sizeof(meta_symbol_342)-1), 0, NULL);
-    meta_action_run((((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_343, sizeof(meta_symbol_343)-1), 0, NULL);
-    meta_action_run((((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_344, sizeof(meta_symbol_344)-1), 0, NULL);
-    meta_action_run((((struct meta_Action68Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_345, sizeof(meta_symbol_345)-1), 0, NULL);
-    meta_action_run((((struct meta_Action68Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action68Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_346, sizeof(meta_symbol_346)-1), 0, NULL);
-    meta_action_run((((struct meta_Action68Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_347, sizeof(meta_symbol_347)-1), 0, NULL);
 }
 
 void meta_action_69(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_349, sizeof(meta_symbol_349)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action69Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_350, sizeof(meta_symbol_350)-1), 0, NULL);
-    meta_action_run((((struct meta_Action69Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_351, sizeof(meta_symbol_351)-1), 0, NULL);
 }
 
 void meta_action_70(void* runtime, void* variables) {
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_351, sizeof(meta_symbol_351)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action70Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_352, sizeof(meta_symbol_352)-1), 0, NULL);
-    meta_action_run((((struct meta_Action70Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action70Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_353, sizeof(meta_symbol_353)-1), 0, NULL);
-    meta_action_run((((struct meta_Action70Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_354, sizeof(meta_symbol_354)-1), 0, NULL);
 }
 
 void meta_action_72(void* runtime, void* variables) {
@@ -1712,63 +1709,63 @@ void meta_action_73(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_358, sizeof(meta_symbol_358)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_357, sizeof(meta_symbol_357)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_359, sizeof(meta_symbol_359)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_358, sizeof(meta_symbol_358)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_359, sizeof(meta_symbol_359)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action73Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_360, sizeof(meta_symbol_360)-1), 0, NULL);
-    meta_action_run((((struct meta_Action73Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_361, sizeof(meta_symbol_361)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_361, sizeof(meta_symbol_361)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action73Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_362, sizeof(meta_symbol_362)-1), 0, NULL);
-    meta_action_run((((struct meta_Action73Vars*)variables)->runtime), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_363, sizeof(meta_symbol_363)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_364, sizeof(meta_symbol_364)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_363, sizeof(meta_symbol_363)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_365, sizeof(meta_symbol_365)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_364, sizeof(meta_symbol_364)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_366, sizeof(meta_symbol_366)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_365, sizeof(meta_symbol_365)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_367, sizeof(meta_symbol_367)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_366, sizeof(meta_symbol_366)-1), 0, NULL);
 }
 
 void meta_action_74(void* runtime, void* variables) {
-    meta_action_run((((struct meta_Action74Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action74Vars*)variables)->y), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_367, sizeof(meta_symbol_367)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action74Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_368, sizeof(meta_symbol_368)-1), 0, NULL);
-    meta_action_run((((struct meta_Action74Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_369, sizeof(meta_symbol_369)-1), 0, NULL);
 }
 
 void meta_action_75(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_370, sizeof(meta_symbol_370)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_369, sizeof(meta_symbol_369)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_371, sizeof(meta_symbol_371)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_370, sizeof(meta_symbol_370)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_0 ? ((meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_371, sizeof(meta_symbol_371)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action75Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_372, sizeof(meta_symbol_372)-1), 0, NULL);
-    meta_action_run((((struct meta_Action75Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_373, sizeof(meta_symbol_373)-1), 0, NULL);
 }
 
 void meta_action_76(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_375, sizeof(meta_symbol_375)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_374, sizeof(meta_symbol_374)-1), 0, NULL);
 }
 
 void meta_action_77(void* runtime, void* variables) {
     StringBuilder* last_string_builder;
     StringBuilder* string_builder;
-    MetaAction* action;
+    MetaAction action;
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_namedWs;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
     action = (((struct meta_Action77Vars*)variables)->x);
-    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action->input_buffer, action->start, action->end))) {
+    if (!string_builder_contains(((meta_Runtime*)runtime)->current_string_builder, string_slice(((meta_Runtime*)runtime)->arena, action.input_buffer, action.start, action.end))) {
+        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_377, sizeof(meta_symbol_377)-1), 0, NULL);
+        meta_action_run(&(((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
         string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_378, sizeof(meta_symbol_378)-1), 0, NULL);
-        meta_action_run((((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-        string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_379, sizeof(meta_symbol_379)-1), 0, NULL);
     }
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    meta_action_run((((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
+    meta_action_run(&(((struct meta_Action77Vars*)variables)->x), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
 }
 
 void meta_action_80(void* runtime, void* variables) {
@@ -1778,34 +1775,34 @@ void meta_action_80(void* runtime, void* variables) {
     last_string_builder = ((meta_Runtime*)runtime)->current_string_builder;
     string_builder = ((meta_Runtime*)runtime)->named_string_builder_symbols;
     ((meta_Runtime*)runtime)->current_string_builder = string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_383, sizeof(meta_symbol_383)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_382, sizeof(meta_symbol_382)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_384, sizeof(meta_symbol_384)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_383, sizeof(meta_symbol_383)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_384, sizeof(meta_symbol_384)-1), 0, NULL);
+    meta_action_run(&(((struct meta_Action80Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_385, sizeof(meta_symbol_385)-1), 0, NULL);
-    meta_action_run((((struct meta_Action80Vars*)variables)->xs), runtime, ((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_386, sizeof(meta_symbol_386)-1), 0, NULL);
     ((meta_Runtime*)runtime)->current_string_builder = last_string_builder;
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_387, sizeof(meta_symbol_387)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_386, sizeof(meta_symbol_386)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_388, sizeof(meta_symbol_388)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_387, sizeof(meta_symbol_387)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_389, sizeof(meta_symbol_389)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_388, sizeof(meta_symbol_388)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, NULL, 0, ((meta_Runtime*)runtime)->named_string_builder_prefix);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_390, sizeof(meta_symbol_390)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_389, sizeof(meta_symbol_389)-1), 0, NULL);
     string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_integer(((meta_Runtime*)runtime)->arena, (((meta_Runtime*)runtime)->W_2 ? ((meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_391, sizeof(meta_symbol_391)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_390, sizeof(meta_symbol_390)-1), 0, NULL);
 }
 
 void meta_action_82(void* runtime, void* variables) {
-    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_393, sizeof(meta_symbol_393)-1), 0, NULL);
+    string_builder_append(((meta_Runtime*)runtime)->current_string_builder, ((meta_Runtime*)runtime)->arena, string_from_cstring(((meta_Runtime*)runtime)->arena, meta_symbol_392, sizeof(meta_symbol_392)-1), 0, NULL);
 }
 
-MetaAction* meta_rule_main(MetaParseState* parse_state) {
+MetaAction meta_rule_main(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     List* star_variables;
     unsigned int star_pos;
@@ -1821,29 +1818,29 @@ MetaAction* meta_rule_main(MetaParseState* parse_state) {
     while (1) {
         star_pos = parse_state->pos;
         _ = meta_rule_metaField(parse_state);
-        if (!meta_action_valid(_)) {
+        if (!meta_action_valid2(_)) {
             parse_state->pos = star_pos;
             break;
         }
-        list_append(parse_state->arena, star_variables, (void*)_);
+        list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
     }
-    _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+    _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     vars1->xs = _;
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_file(parse_state);
         vars1->y = _;
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_1, (void*)vars1, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_1, (void*)vars1, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_metaField(MetaParseState* parse_state) {
+MetaAction meta_rule_metaField(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -1855,25 +1852,25 @@ MetaAction* meta_rule_metaField(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_1, sizeof(meta_symbol_1)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_name(parse_state);
         vars2->x = _;
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_2, (void*)vars2, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_2, (void*)vars2, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_file(MetaParseState* parse_state) {
+MetaAction meta_rule_file(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     List* star_variables;
     unsigned int star_pos;
@@ -1890,43 +1887,43 @@ MetaAction* meta_rule_file(MetaParseState* parse_state) {
     while (1) {
         star_pos = parse_state->pos;
         _ = meta_rule_rule(parse_state);
-        if (!meta_action_valid(_)) {
+        if (!meta_action_valid2(_)) {
             parse_state->pos = star_pos;
             break;
         }
-        list_append(parse_state->arena, star_variables, (void*)_);
+        list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
     }
-    _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+    _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     vars3->xs = _;
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_space(parse_state);
-        if (_) {
+        if (meta_action_valid2(_)) {
             nlookahead_pos = parse_state->pos;
             if (parse_state->pos < parse_state->input_buffer->size) {
                 parse_state->pos += 1;
-                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
+                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid();
+                _ = meta_action_create_invalid2();
             }
-            if (meta_action_valid(_)) {
-                _ = meta_action_create_invalid();
+            if (meta_action_valid2(_)) {
+                _ = meta_action_create_invalid2();
             } else {
-                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
+                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);
             }
             parse_state->pos = nlookahead_pos;
-            if (_) {
-                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_3, (void*)vars3, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (meta_action_valid2(_)) {
+                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_3, (void*)vars3, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_rule(MetaParseState* parse_state) {
+MetaAction meta_rule_rule(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -1936,39 +1933,39 @@ MetaAction* meta_rule_rule(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action4Vars* vars4 = arena_alloc(parse_state->arena, sizeof(struct meta_Action4Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_ruleName(parse_state);
         vars4->x = _;
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_highlight(parse_state);
             vars4->h = _;
-            if (_) {
+            if (meta_action_valid2(_)) {
                 _ = meta_rule_space(parse_state);
-                if (_) {
+                if (meta_action_valid2(_)) {
                     data = string_from_cstring(parse_state->arena, meta_symbol_73, sizeof(meta_symbol_73)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
-                        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
-                        _ = meta_action_create_invalid();
+                        _ = meta_action_create_invalid2();
                     }
-                    if (_) {
+                    if (meta_action_valid2(_)) {
                         _ = meta_rule_space(parse_state);
-                        if (_) {
+                        if (meta_action_valid2(_)) {
                             _ = meta_rule_ors(parse_state);
                             vars4->y = _;
-                            if (_) {
+                            if (meta_action_valid2(_)) {
                                 _ = meta_rule_space(parse_state);
-                                if (_) {
+                                if (meta_action_valid2(_)) {
                                     data = string_from_cstring(parse_state->arena, meta_symbol_74, sizeof(meta_symbol_74)-1);
                                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                         parse_state->pos += data->size;
-                                        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                                        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                                     } else {
-                                        _ = meta_action_create_invalid();
+                                        _ = meta_action_create_invalid2();
                                     }
-                                    if (_) {
-                                        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_4, (void*)vars4, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                    if (meta_action_valid2(_)) {
+                                        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_4, (void*)vars4, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                                     }
                                 }
                             }
@@ -1978,14 +1975,14 @@ MetaAction* meta_rule_rule(MetaParseState* parse_state) {
             }
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_highlight(MetaParseState* parse_state) {
+MetaAction meta_rule_highlight(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -1997,23 +1994,23 @@ MetaAction* meta_rule_highlight(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_90, sizeof(meta_symbol_90)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_metaName(parse_state);
         vars5->x = _;
-        if (_) {
+        if (meta_action_valid2(_)) {
             data = string_from_cstring(parse_state->arena, meta_symbol_91, sizeof(meta_symbol_91)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
-                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid();
+                _ = meta_action_create_invalid2();
             }
-            if (_) {
-                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_5, (void*)vars5, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (meta_action_valid2(_)) {
+                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_5, (void*)vars5, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
@@ -2021,15 +2018,15 @@ MetaAction* meta_rule_highlight(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action6Vars* vars6 = arena_alloc(parse_state->arena, sizeof(struct meta_Action6Vars));
-    return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_6, (void*)vars6, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return meta_action_create_invalid();
+    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_6, (void*)vars6, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_metaName(MetaParseState* parse_state) {
+MetaAction meta_rule_metaName(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Meta;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -2037,17 +2034,17 @@ MetaAction* meta_rule_metaName(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_name(parse_state);
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_ors(MetaParseState* parse_state) {
+MetaAction meta_rule_ors(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     List* star_variables;
     unsigned int star_pos;
@@ -2059,36 +2056,36 @@ MetaAction* meta_rule_ors(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action8Vars* vars8 = arena_alloc(parse_state->arena, sizeof(struct meta_Action8Vars));
     _ = meta_rule_maybeorbar(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_orcase(parse_state);
         vars8->x = _;
-        if (_) {
+        if (meta_action_valid2(_)) {
             star_variables = list_create(parse_state->arena);
             star_start_pos = parse_state->pos;
             while (1) {
                 star_pos = parse_state->pos;
                 _ = meta_rule_restorcase(parse_state);
-                if (!meta_action_valid(_)) {
+                if (!meta_action_valid2(_)) {
                     parse_state->pos = star_pos;
                     break;
                 }
-                list_append(parse_state->arena, star_variables, (void*)_);
+                list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
             }
-            _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+            _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
             vars8->xs = _;
-            if (_) {
-                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_8, (void*)vars8, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (meta_action_valid2(_)) {
+                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_8, (void*)vars8, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_restorcase(MetaParseState* parse_state) {
+MetaAction meta_rule_restorcase(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -2097,21 +2094,21 @@ MetaAction* meta_rule_restorcase(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action9Vars* vars9 = arena_alloc(parse_state->arena, sizeof(struct meta_Action9Vars));
     _ = meta_rule_orbar(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_orcase(parse_state);
         vars9->x = _;
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_9, (void*)vars9, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_9, (void*)vars9, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_maybeorbar(MetaParseState* parse_state) {
+MetaAction meta_rule_maybeorbar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -2119,22 +2116,22 @@ MetaAction* meta_rule_maybeorbar(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_orbar(parse_state);
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action11Vars* vars11 = arena_alloc(parse_state->arena, sizeof(struct meta_Action11Vars));
-    return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_11, (void*)vars11, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return meta_action_create_invalid();
+    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_11, (void*)vars11, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_orbar(MetaParseState* parse_state) {
+MetaAction meta_rule_orbar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -2142,20 +2139,20 @@ MetaAction* meta_rule_orbar(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_opOr(parse_state);
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_orcase(MetaParseState* parse_state) {
+MetaAction meta_rule_orcase(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -2165,17 +2162,17 @@ MetaAction* meta_rule_orcase(MetaParseState* parse_state) {
     struct meta_Action13Vars* vars13 = arena_alloc(parse_state->arena, sizeof(struct meta_Action13Vars));
     _ = meta_rule_matchAnd(parse_state);
     vars13->x = _;
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_13, (void*)vars13, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_13, (void*)vars13, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_matchAnd(MetaParseState* parse_state) {
+MetaAction meta_rule_matchAnd(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -2184,14 +2181,14 @@ MetaAction* meta_rule_matchAnd(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action14Vars* vars14 = arena_alloc(parse_state->arena, sizeof(struct meta_Action14Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_matchExpr(parse_state);
         vars14->x = _;
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_matchAnd(parse_state);
             vars14->y = _;
-            if (_) {
-                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_14, (void*)vars14, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (meta_action_valid2(_)) {
+                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_14, (void*)vars14, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
@@ -2201,17 +2198,17 @@ MetaAction* meta_rule_matchAnd(MetaParseState* parse_state) {
     struct meta_Action15Vars* vars15 = arena_alloc(parse_state->arena, sizeof(struct meta_Action15Vars));
     _ = meta_rule_action(parse_state);
     vars15->y = _;
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_15, (void*)vars15, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_15, (void*)vars15, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_matchExpr(MetaParseState* parse_state) {
+MetaAction meta_rule_matchExpr(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -2220,11 +2217,11 @@ MetaAction* meta_rule_matchExpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action16Vars* vars16 = arena_alloc(parse_state->arena, sizeof(struct meta_Action16Vars));
     _ = meta_rule_opNegativeLookahead(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_matchExprPrimitive(parse_state);
         vars16->x = _;
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_16, (void*)vars16, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_16, (void*)vars16, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2232,11 +2229,11 @@ MetaAction* meta_rule_matchExpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action17Vars* vars17 = arena_alloc(parse_state->arena, sizeof(struct meta_Action17Vars));
     _ = meta_rule_opLookahead(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_matchExprPrimitive(parse_state);
         vars17->x = _;
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_17, (void*)vars17, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_17, (void*)vars17, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2245,21 +2242,21 @@ MetaAction* meta_rule_matchExpr(MetaParseState* parse_state) {
     struct meta_Action18Vars* vars18 = arena_alloc(parse_state->arena, sizeof(struct meta_Action18Vars));
     _ = meta_rule_matchExprRepeat(parse_state);
     vars18->x = _;
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_matchAssign(parse_state);
         vars18->y = _;
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_18, (void*)vars18, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_18, (void*)vars18, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_matchAssign(MetaParseState* parse_state) {
+MetaAction meta_rule_matchAssign(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -2268,26 +2265,26 @@ MetaAction* meta_rule_matchAssign(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action19Vars* vars19 = arena_alloc(parse_state->arena, sizeof(struct meta_Action19Vars));
     _ = meta_rule_opBind(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_variableName(parse_state);
         vars19->x = _;
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_19, (void*)vars19, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_19, (void*)vars19, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action20Vars* vars20 = arena_alloc(parse_state->arena, sizeof(struct meta_Action20Vars));
-    return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_20, (void*)vars20, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return meta_action_create_invalid();
+    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_20, (void*)vars20, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_matchExprRepeat(MetaParseState* parse_state) {
+MetaAction meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -2297,10 +2294,10 @@ MetaAction* meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     struct meta_Action21Vars* vars21 = arena_alloc(parse_state->arena, sizeof(struct meta_Action21Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
     vars21->x = _;
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_opStar(parse_state);
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_21, (void*)vars21, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_21, (void*)vars21, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2309,17 +2306,17 @@ MetaAction* meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     struct meta_Action22Vars* vars22 = arena_alloc(parse_state->arena, sizeof(struct meta_Action22Vars));
     _ = meta_rule_matchExprPrimitive(parse_state);
     vars22->x = _;
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_22, (void*)vars22, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_22, (void*)vars22, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_opBind(MetaParseState* parse_state) {
+MetaAction meta_rule_opBind(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -2330,21 +2327,21 @@ MetaAction* meta_rule_opBind(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_145, sizeof(meta_symbol_145)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_opStar(MetaParseState* parse_state) {
+MetaAction meta_rule_opStar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -2355,21 +2352,21 @@ MetaAction* meta_rule_opStar(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_146, sizeof(meta_symbol_146)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_opLookahead(MetaParseState* parse_state) {
+MetaAction meta_rule_opLookahead(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -2380,21 +2377,21 @@ MetaAction* meta_rule_opLookahead(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_147, sizeof(meta_symbol_147)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
+MetaAction meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -2405,21 +2402,21 @@ MetaAction* meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_148, sizeof(meta_symbol_148)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_opAny(MetaParseState* parse_state) {
+MetaAction meta_rule_opAny(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -2430,21 +2427,21 @@ MetaAction* meta_rule_opAny(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_149, sizeof(meta_symbol_149)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_opOr(MetaParseState* parse_state) {
+MetaAction meta_rule_opOr(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -2455,21 +2452,21 @@ MetaAction* meta_rule_opOr(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_150, sizeof(meta_symbol_150)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_opAction(MetaParseState* parse_state) {
+MetaAction meta_rule_opAction(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Reserved;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -2480,21 +2477,21 @@ MetaAction* meta_rule_opAction(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_151, sizeof(meta_symbol_151)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_sepBit(MetaParseState* parse_state) {
+MetaAction meta_rule_sepBit(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     List* star_variables;
     unsigned int star_pos;
@@ -2513,32 +2510,32 @@ MetaAction* meta_rule_sepBit(MetaParseState* parse_state) {
         data = string_from_cstring(parse_state->arena, meta_symbol_152, sizeof(meta_symbol_152)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid();
+            _ = meta_action_create_invalid2();
         }
-        if (!meta_action_valid(_)) {
+        if (!meta_action_valid2(_)) {
             parse_state->pos = star_pos;
             break;
         }
-        list_append(parse_state->arena, star_variables, (void*)_);
+        list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
     }
-    _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-    if (_) {
+    _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+    if (meta_action_valid2(_)) {
         _ = meta_rule_maybeBit(parse_state);
         vars30->x = _;
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_30, (void*)vars30, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_30, (void*)vars30, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_maybeBit(MetaParseState* parse_state) {
+MetaAction meta_rule_maybeBit(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -2548,25 +2545,25 @@ MetaAction* meta_rule_maybeBit(MetaParseState* parse_state) {
     struct meta_Action31Vars* vars31 = arena_alloc(parse_state->arena, sizeof(struct meta_Action31Vars));
     _ = meta_rule_bit(parse_state);
     vars31->x = _;
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_31, (void*)vars31, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_31, (void*)vars31, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action32Vars* vars32 = arena_alloc(parse_state->arena, sizeof(struct meta_Action32Vars));
     _ = meta_rule_lower(parse_state);
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_32, (void*)vars32, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_32, (void*)vars32, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_bit(MetaParseState* parse_state) {
+MetaAction meta_rule_bit(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -2578,12 +2575,12 @@ MetaAction* meta_rule_bit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_156, sizeof(meta_symbol_156)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_33, (void*)vars33, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_33, (void*)vars33, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -2592,21 +2589,21 @@ MetaAction* meta_rule_bit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_157, sizeof(meta_symbol_157)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_34, (void*)vars34, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_34, (void*)vars34, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
+MetaAction meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     List* star_variables;
@@ -2620,8 +2617,8 @@ MetaAction* meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     struct meta_Action35Vars* vars35 = arena_alloc(parse_state->arena, sizeof(struct meta_Action35Vars));
     _ = meta_rule_ruleName(parse_state);
     vars35->x = _;
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_35, (void*)vars35, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_35, (void*)vars35, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -2630,26 +2627,26 @@ MetaAction* meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_162, sizeof(meta_symbol_162)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
+    if (meta_action_valid2(_)) {
         star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_sepBit(parse_state);
-            if (!meta_action_valid(_)) {
+            if (!meta_action_valid2(_)) {
                 parse_state->pos = star_pos;
                 break;
             }
-            list_append(parse_state->arena, star_variables, (void*)_);
+            list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars36->xs = _;
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_36, (void*)vars36, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_36, (void*)vars36, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2657,8 +2654,8 @@ MetaAction* meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action37Vars* vars37 = arena_alloc(parse_state->arena, sizeof(struct meta_Action37Vars));
     _ = meta_rule_opAny(parse_state);
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_37, (void*)vars37, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_37, (void*)vars37, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -2666,17 +2663,17 @@ MetaAction* meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     struct meta_Action38Vars* vars38 = arena_alloc(parse_state->arena, sizeof(struct meta_Action38Vars));
     _ = meta_rule_charString(parse_state);
     vars38->x = _;
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_38, (void*)vars38, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_38, (void*)vars38, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_action(MetaParseState* parse_state) {
+MetaAction meta_rule_action(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     List* star_variables;
@@ -2689,44 +2686,44 @@ MetaAction* meta_rule_action(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action39Vars* vars39 = arena_alloc(parse_state->arena, sizeof(struct meta_Action39Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_opAction(parse_state);
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_space(parse_state);
-            if (_) {
+            if (meta_action_valid2(_)) {
                 data = string_from_cstring(parse_state->arena, meta_symbol_191, sizeof(meta_symbol_191)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
-                    _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = meta_action_create_invalid();
+                    _ = meta_action_create_invalid2();
                 }
-                if (_) {
+                if (meta_action_valid2(_)) {
                     star_variables = list_create(parse_state->arena);
                     star_start_pos = parse_state->pos;
                     while (1) {
                         star_pos = parse_state->pos;
                         _ = meta_rule_actionexpr(parse_state);
-                        if (!meta_action_valid(_)) {
+                        if (!meta_action_valid2(_)) {
                             parse_state->pos = star_pos;
                             break;
                         }
-                        list_append(parse_state->arena, star_variables, (void*)_);
+                        list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
                     }
-                    _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+                    _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
                     vars39->xs = _;
-                    if (_) {
+                    if (meta_action_valid2(_)) {
                         _ = meta_rule_space(parse_state);
-                        if (_) {
+                        if (meta_action_valid2(_)) {
                             data = string_from_cstring(parse_state->arena, meta_symbol_192, sizeof(meta_symbol_192)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
-                                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                             } else {
-                                _ = meta_action_create_invalid();
+                                _ = meta_action_create_invalid2();
                             }
-                            if (_) {
-                                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_39, (void*)vars39, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                            if (meta_action_valid2(_)) {
+                                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_39, (void*)vars39, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                             }
                         }
                     }
@@ -2738,15 +2735,15 @@ MetaAction* meta_rule_action(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action40Vars* vars40 = arena_alloc(parse_state->arena, sizeof(struct meta_Action40Vars));
-    return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_40, (void*)vars40, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return meta_action_create_invalid();
+    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_40, (void*)vars40, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_genRuntime(MetaParseState* parse_state) {
+MetaAction meta_rule_genRuntime(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     unsigned int lookahead_pos;
     or_backtrack_pos = parse_state->pos;
@@ -2758,27 +2755,27 @@ MetaAction* meta_rule_genRuntime(MetaParseState* parse_state) {
     lookahead_pos = parse_state->pos;
     if (parse_state->pos < parse_state->input_buffer->size) {
         parse_state->pos += 1;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (meta_action_valid(_)) {
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
+    if (meta_action_valid2(_)) {
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
     parse_state->pos = lookahead_pos;
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_41, (void*)vars41, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_41, (void*)vars41, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
+MetaAction meta_rule_actionexpr(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     List* star_variables;
@@ -2791,54 +2788,54 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action42Vars* vars42 = arena_alloc(parse_state->arena, sizeof(struct meta_Action42Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         data = string_from_cstring(parse_state->arena, meta_symbol_211, sizeof(meta_symbol_211)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid();
+            _ = meta_action_create_invalid2();
         }
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_nameAsActionLookup(parse_state);
             vars42->x = _;
-            if (_) {
+            if (meta_action_valid2(_)) {
                 data = string_from_cstring(parse_state->arena, meta_symbol_212, sizeof(meta_symbol_212)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
-                    _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = meta_action_create_invalid();
+                    _ = meta_action_create_invalid2();
                 }
-                if (_) {
+                if (meta_action_valid2(_)) {
                     star_variables = list_create(parse_state->arena);
                     star_start_pos = parse_state->pos;
                     while (1) {
                         star_pos = parse_state->pos;
                         _ = meta_rule_actionexpr(parse_state);
-                        if (!meta_action_valid(_)) {
+                        if (!meta_action_valid2(_)) {
                             parse_state->pos = star_pos;
                             break;
                         }
-                        list_append(parse_state->arena, star_variables, (void*)_);
+                        list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
                     }
-                    _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+                    _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
                     vars42->ys = _;
-                    if (_) {
+                    if (meta_action_valid2(_)) {
                         _ = meta_rule_space(parse_state);
-                        if (_) {
+                        if (meta_action_valid2(_)) {
                             data = string_from_cstring(parse_state->arena, meta_symbol_213, sizeof(meta_symbol_213)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
-                                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                             } else {
-                                _ = meta_action_create_invalid();
+                                _ = meta_action_create_invalid2();
                             }
-                            if (_) {
+                            if (meta_action_valid2(_)) {
                                 _ = meta_rule_genRuntime(parse_state);
                                 vars42->runtime = _;
-                                if (_) {
-                                    return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_42, (void*)vars42, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                if (meta_action_valid2(_)) {
+                                    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_42, (void*)vars42, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                                 }
                             }
                         }
@@ -2852,30 +2849,30 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action43Vars* vars43 = arena_alloc(parse_state->arena, sizeof(struct meta_Action43Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         data = string_from_cstring(parse_state->arena, meta_symbol_222, sizeof(meta_symbol_222)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid();
+            _ = meta_action_create_invalid2();
         }
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_string(parse_state);
             vars43->x = _;
-            if (_) {
+            if (meta_action_valid2(_)) {
                 data = string_from_cstring(parse_state->arena, meta_symbol_223, sizeof(meta_symbol_223)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
-                    _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = meta_action_create_invalid();
+                    _ = meta_action_create_invalid2();
                 }
-                if (_) {
+                if (meta_action_valid2(_)) {
                     _ = meta_rule_genRuntime(parse_state);
                     vars43->runtime = _;
-                    if (_) {
-                        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_43, (void*)vars43, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                    if (meta_action_valid2(_)) {
+                        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_43, (void*)vars43, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                     }
                 }
             }
@@ -2886,56 +2883,56 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action44Vars* vars44 = arena_alloc(parse_state->arena, sizeof(struct meta_Action44Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         data = string_from_cstring(parse_state->arena, meta_symbol_232, sizeof(meta_symbol_232)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid();
+            _ = meta_action_create_invalid2();
         }
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_stringBuilderName(parse_state);
             vars44->x = _;
-            if (_) {
+            if (meta_action_valid2(_)) {
                 _ = meta_rule_space(parse_state);
-                if (_) {
+                if (meta_action_valid2(_)) {
                     data = string_from_cstring(parse_state->arena, meta_symbol_233, sizeof(meta_symbol_233)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
-                        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
-                        _ = meta_action_create_invalid();
+                        _ = meta_action_create_invalid2();
                     }
-                    if (_) {
+                    if (meta_action_valid2(_)) {
                         star_variables = list_create(parse_state->arena);
                         star_start_pos = parse_state->pos;
                         while (1) {
                             star_pos = parse_state->pos;
                             _ = meta_rule_actionexpr(parse_state);
-                            if (!meta_action_valid(_)) {
+                            if (!meta_action_valid2(_)) {
                                 parse_state->pos = star_pos;
                                 break;
                             }
-                            list_append(parse_state->arena, star_variables, (void*)_);
+                            list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
                         }
-                        _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+                        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
                         vars44->ys = _;
-                        if (_) {
+                        if (meta_action_valid2(_)) {
                             _ = meta_rule_space(parse_state);
-                            if (_) {
+                            if (meta_action_valid2(_)) {
                                 data = string_from_cstring(parse_state->arena, meta_symbol_234, sizeof(meta_symbol_234)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
-                                    _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                                 } else {
-                                    _ = meta_action_create_invalid();
+                                    _ = meta_action_create_invalid2();
                                 }
-                                if (_) {
+                                if (meta_action_valid2(_)) {
                                     _ = meta_rule_genRuntime(parse_state);
                                     vars44->runtime = _;
-                                    if (_) {
-                                        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_44, (void*)vars44, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                    if (meta_action_valid2(_)) {
+                                        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_44, (void*)vars44, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                                     }
                                 }
                             }
@@ -2950,22 +2947,22 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action45Vars* vars45 = arena_alloc(parse_state->arena, sizeof(struct meta_Action45Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         data = string_from_cstring(parse_state->arena, meta_symbol_246, sizeof(meta_symbol_246)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid();
+            _ = meta_action_create_invalid2();
         }
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_stringBuilderName(parse_state);
             vars45->x = _;
-            if (_) {
+            if (meta_action_valid2(_)) {
                 _ = meta_rule_genRuntime(parse_state);
                 vars45->runtime = _;
-                if (_) {
-                    return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_45, (void*)vars45, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                if (meta_action_valid2(_)) {
+                    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_45, (void*)vars45, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                 }
             }
         }
@@ -2975,22 +2972,22 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action46Vars* vars46 = arena_alloc(parse_state->arena, sizeof(struct meta_Action46Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         data = string_from_cstring(parse_state->arena, meta_symbol_252, sizeof(meta_symbol_252)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid();
+            _ = meta_action_create_invalid2();
         }
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_stringBuilderName(parse_state);
             vars46->x = _;
-            if (_) {
+            if (meta_action_valid2(_)) {
                 _ = meta_rule_genRuntime(parse_state);
                 vars46->runtime = _;
-                if (_) {
-                    return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_46, (void*)vars46, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                if (meta_action_valid2(_)) {
+                    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_46, (void*)vars46, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                 }
             }
         }
@@ -3000,14 +2997,14 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action47Vars* vars47 = arena_alloc(parse_state->arena, sizeof(struct meta_Action47Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_expr(parse_state);
         vars47->x = _;
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_genRuntime(parse_state);
             vars47->runtime = _;
-            if (_) {
-                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_47, (void*)vars47, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (meta_action_valid2(_)) {
+                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_47, (void*)vars47, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
@@ -3016,14 +3013,14 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action48Vars* vars48 = arena_alloc(parse_state->arena, sizeof(struct meta_Action48Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_nameAsActionLookup(parse_state);
         vars48->x = _;
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_genRuntime(parse_state);
             vars48->runtime = _;
-            if (_) {
-                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_48, (void*)vars48, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (meta_action_valid2(_)) {
+                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_48, (void*)vars48, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
@@ -3032,14 +3029,14 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action49Vars* vars49 = arena_alloc(parse_state->arena, sizeof(struct meta_Action49Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_placeholder(parse_state);
         vars49->x = _;
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_genRuntime(parse_state);
             vars49->runtime = _;
-            if (_) {
-                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_49, (void*)vars49, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (meta_action_valid2(_)) {
+                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_49, (void*)vars49, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
@@ -3048,14 +3045,14 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action50Vars* vars50 = arena_alloc(parse_state->arena, sizeof(struct meta_Action50Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_string(parse_state);
         vars50->x = _;
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_genRuntime(parse_state);
             vars50->runtime = _;
-            if (_) {
-                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_50, (void*)vars50, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (meta_action_valid2(_)) {
+                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_50, (void*)vars50, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
@@ -3064,52 +3061,52 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action51Vars* vars51 = arena_alloc(parse_state->arena, sizeof(struct meta_Action51Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_290, sizeof(meta_symbol_290)-1);
+    if (meta_action_valid2(_)) {
+        data = string_from_cstring(parse_state->arena, meta_symbol_289, sizeof(meta_symbol_289)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid();
+            _ = meta_action_create_invalid2();
         }
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_name(parse_state);
             vars51->x = _;
-            if (_) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_291, sizeof(meta_symbol_291)-1);
+            if (meta_action_valid2(_)) {
+                data = string_from_cstring(parse_state->arena, meta_symbol_290, sizeof(meta_symbol_290)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
-                    _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = meta_action_create_invalid();
+                    _ = meta_action_create_invalid2();
                 }
-                if (_) {
+                if (meta_action_valid2(_)) {
                     _ = meta_rule_wvar(parse_state);
                     vars51->y = _;
-                    if (_) {
-                        data = string_from_cstring(parse_state->arena, meta_symbol_292, sizeof(meta_symbol_292)-1);
+                    if (meta_action_valid2(_)) {
+                        data = string_from_cstring(parse_state->arena, meta_symbol_291, sizeof(meta_symbol_291)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
-                            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                         } else {
-                            _ = meta_action_create_invalid();
+                            _ = meta_action_create_invalid2();
                         }
-                        if (_) {
+                        if (meta_action_valid2(_)) {
                             _ = meta_rule_actionPrimitiveExpression(parse_state);
                             vars51->z = _;
-                            if (_) {
-                                data = string_from_cstring(parse_state->arena, meta_symbol_293, sizeof(meta_symbol_293)-1);
+                            if (meta_action_valid2(_)) {
+                                data = string_from_cstring(parse_state->arena, meta_symbol_292, sizeof(meta_symbol_292)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
-                                    _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                                 } else {
-                                    _ = meta_action_create_invalid();
+                                    _ = meta_action_create_invalid2();
                                 }
-                                if (_) {
+                                if (meta_action_valid2(_)) {
                                     _ = meta_rule_genRuntime(parse_state);
                                     vars51->runtime = _;
-                                    if (_) {
-                                        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_51, (void*)vars51, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                    if (meta_action_valid2(_)) {
+                                        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_51, (void*)vars51, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                                     }
                                 }
                             }
@@ -3124,57 +3121,57 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action52Vars* vars52 = arena_alloc(parse_state->arena, sizeof(struct meta_Action52Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
-        data = string_from_cstring(parse_state->arena, meta_symbol_302, sizeof(meta_symbol_302)-1);
+    if (meta_action_valid2(_)) {
+        data = string_from_cstring(parse_state->arena, meta_symbol_301, sizeof(meta_symbol_301)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid();
+            _ = meta_action_create_invalid2();
         }
-        if (_) {
+        if (meta_action_valid2(_)) {
             star_variables = list_create(parse_state->arena);
             star_start_pos = parse_state->pos;
             while (1) {
                 star_pos = parse_state->pos;
                 _ = meta_rule_actionexpr(parse_state);
-                if (!meta_action_valid(_)) {
+                if (!meta_action_valid2(_)) {
                     parse_state->pos = star_pos;
                     break;
                 }
-                list_append(parse_state->arena, star_variables, (void*)_);
+                list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
             }
-            _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+            _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
             vars52->xs = _;
-            if (_) {
+            if (meta_action_valid2(_)) {
                 _ = meta_rule_space(parse_state);
-                if (_) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_303, sizeof(meta_symbol_303)-1);
+                if (meta_action_valid2(_)) {
+                    data = string_from_cstring(parse_state->arena, meta_symbol_302, sizeof(meta_symbol_302)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
-                        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
-                        _ = meta_action_create_invalid();
+                        _ = meta_action_create_invalid2();
                     }
-                    if (_) {
+                    if (meta_action_valid2(_)) {
                         _ = meta_rule_genRuntime(parse_state);
                         vars52->runtime = _;
-                        if (_) {
-                            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_52, (void*)vars52, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                        if (meta_action_valid2(_)) {
+                            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_52, (void*)vars52, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                         }
                     }
                 }
             }
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_stringBuilderName(MetaParseState* parse_state) {
+MetaAction meta_rule_stringBuilderName(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -3184,17 +3181,17 @@ MetaAction* meta_rule_stringBuilderName(MetaParseState* parse_state) {
     struct meta_Action53Vars* vars53 = arena_alloc(parse_state->arena, sizeof(struct meta_Action53Vars));
     _ = meta_rule_name(parse_state);
     vars53->x = _;
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_53, (void*)vars53, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_53, (void*)vars53, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
+MetaAction meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -3204,24 +3201,24 @@ MetaAction* meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
     struct meta_Action54Vars* vars54 = arena_alloc(parse_state->arena, sizeof(struct meta_Action54Vars));
     _ = meta_rule_dotname(parse_state);
     vars54->x = _;
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_54, (void*)vars54, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_54, (void*)vars54, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_digit(parse_state);
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_digit(MetaParseState* parse_state) {
+MetaAction meta_rule_digit(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -3229,15 +3226,28 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
+    data = string_from_cstring(parse_state->arena, meta_symbol_311, sizeof(meta_symbol_311)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = meta_action_create_invalid2();
+    }
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    }
+    parse_state->pos = or_backtrack_pos;
+    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
+    action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_312, sizeof(meta_symbol_312)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3245,12 +3255,12 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_313, sizeof(meta_symbol_313)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3258,12 +3268,12 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_314, sizeof(meta_symbol_314)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3271,12 +3281,12 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_315, sizeof(meta_symbol_315)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3284,12 +3294,12 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_316, sizeof(meta_symbol_316)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3297,12 +3307,12 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_317, sizeof(meta_symbol_317)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3310,12 +3320,12 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_318, sizeof(meta_symbol_318)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3323,12 +3333,12 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_319, sizeof(meta_symbol_319)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -3336,34 +3346,21 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_320, sizeof(meta_symbol_320)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
-    action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_321, sizeof(meta_symbol_321)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = meta_action_create_invalid();
-    }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_placeholder(MetaParseState* parse_state) {
+MetaAction meta_rule_placeholder(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -3372,44 +3369,44 @@ MetaAction* meta_rule_placeholder(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action66Vars* vars66 = arena_alloc(parse_state->arena, sizeof(struct meta_Action66Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_322, sizeof(meta_symbol_322)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_321, sizeof(meta_symbol_321)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_space(parse_state);
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_string(parse_state);
             vars66->x = _;
-            if (_) {
-                data = string_from_cstring(parse_state->arena, meta_symbol_323, sizeof(meta_symbol_323)-1);
+            if (meta_action_valid2(_)) {
+                data = string_from_cstring(parse_state->arena, meta_symbol_322, sizeof(meta_symbol_322)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
-                    _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                    _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = meta_action_create_invalid();
+                    _ = meta_action_create_invalid2();
                 }
-                if (_) {
+                if (meta_action_valid2(_)) {
                     _ = meta_rule_expr(parse_state);
                     vars66->y = _;
-                    if (_) {
+                    if (meta_action_valid2(_)) {
                         _ = meta_rule_space(parse_state);
-                        if (_) {
-                            data = string_from_cstring(parse_state->arena, meta_symbol_324, sizeof(meta_symbol_324)-1);
+                        if (meta_action_valid2(_)) {
+                            data = string_from_cstring(parse_state->arena, meta_symbol_323, sizeof(meta_symbol_323)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
-                                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                             } else {
-                                _ = meta_action_create_invalid();
+                                _ = meta_action_create_invalid2();
                             }
-                            if (_) {
+                            if (meta_action_valid2(_)) {
                                 _ = meta_rule_genRuntime(parse_state);
                                 vars66->runtime = _;
-                                if (_) {
-                                    return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_66, (void*)vars66, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                                if (meta_action_valid2(_)) {
+                                    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_66, (void*)vars66, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                                 }
                             }
                         }
@@ -3418,14 +3415,14 @@ MetaAction* meta_rule_placeholder(MetaParseState* parse_state) {
             }
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_expr(MetaParseState* parse_state) {
+MetaAction meta_rule_expr(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     List* star_variables;
@@ -3439,51 +3436,51 @@ MetaAction* meta_rule_expr(MetaParseState* parse_state) {
     struct meta_Action67Vars* vars67 = arena_alloc(parse_state->arena, sizeof(struct meta_Action67Vars));
     _ = meta_rule_wvar(parse_state);
     vars67->x = _;
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_genRuntime(parse_state);
         vars67->runtime = _;
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_67, (void*)vars67, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_67, (void*)vars67, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action68Vars* vars68 = arena_alloc(parse_state->arena, sizeof(struct meta_Action68Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_339, sizeof(meta_symbol_339)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_338, sizeof(meta_symbol_338)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_wvar(parse_state);
         vars68->x = _;
-        if (_) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_340, sizeof(meta_symbol_340)-1);
+        if (meta_action_valid2(_)) {
+            data = string_from_cstring(parse_state->arena, meta_symbol_339, sizeof(meta_symbol_339)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
-                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid();
+                _ = meta_action_create_invalid2();
             }
-            if (_) {
+            if (meta_action_valid2(_)) {
                 _ = meta_rule_dotname(parse_state);
                 vars68->y = _;
-                if (_) {
-                    data = string_from_cstring(parse_state->arena, meta_symbol_341, sizeof(meta_symbol_341)-1);
+                if (meta_action_valid2(_)) {
+                    data = string_from_cstring(parse_state->arena, meta_symbol_340, sizeof(meta_symbol_340)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
-                        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
-                        _ = meta_action_create_invalid();
+                        _ = meta_action_create_invalid2();
                     }
-                    if (_) {
+                    if (meta_action_valid2(_)) {
                         _ = meta_rule_genRuntime(parse_state);
                         vars68->runtime = _;
-                        if (_) {
-                            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_68, (void*)vars68, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                        if (meta_action_valid2(_)) {
+                            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_68, (void*)vars68, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                         }
                     }
                 }
@@ -3494,48 +3491,48 @@ MetaAction* meta_rule_expr(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action69Vars* vars69 = arena_alloc(parse_state->arena, sizeof(struct meta_Action69Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_348, sizeof(meta_symbol_348)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_347, sizeof(meta_symbol_347)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
+    if (meta_action_valid2(_)) {
         star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_numberPart(parse_state);
-            if (!meta_action_valid(_)) {
+            if (!meta_action_valid2(_)) {
                 parse_state->pos = star_pos;
                 break;
             }
-            list_append(parse_state->arena, star_variables, (void*)_);
+            list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars69->xs = _;
-        if (_) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_349, sizeof(meta_symbol_349)-1);
+        if (meta_action_valid2(_)) {
+            data = string_from_cstring(parse_state->arena, meta_symbol_348, sizeof(meta_symbol_348)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
-                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid();
+                _ = meta_action_create_invalid2();
             }
-            if (_) {
-                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_69, (void*)vars69, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (meta_action_valid2(_)) {
+                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_69, (void*)vars69, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_numberPart(MetaParseState* parse_state) {
+MetaAction meta_rule_numberPart(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -3544,25 +3541,25 @@ MetaAction* meta_rule_numberPart(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action70Vars* vars70 = arena_alloc(parse_state->arena, sizeof(struct meta_Action70Vars));
     _ = meta_rule_space(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_nameAsActionLookup(parse_state);
         vars70->x = _;
-        if (_) {
+        if (meta_action_valid2(_)) {
             _ = meta_rule_maybeShift(parse_state);
             vars70->y = _;
-            if (_) {
-                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_70, (void*)vars70, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (meta_action_valid2(_)) {
+                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_70, (void*)vars70, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_maybeShift(MetaParseState* parse_state) {
+MetaAction meta_rule_maybeShift(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -3570,32 +3567,32 @@ MetaAction* meta_rule_maybeShift(MetaParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_355, sizeof(meta_symbol_355)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_354, sizeof(meta_symbol_354)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_number(parse_state);
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action72Vars* vars72 = arena_alloc(parse_state->arena, sizeof(struct meta_Action72Vars));
-    return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_72, (void*)vars72, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return meta_action_create_invalid();
+    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_72, (void*)vars72, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_string(MetaParseState* parse_state) {
+MetaAction meta_rule_string(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_String;
     String* data;
     List* star_variables;
@@ -3607,52 +3604,52 @@ MetaAction* meta_rule_string(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action73Vars* vars73 = arena_alloc(parse_state->arena, sizeof(struct meta_Action73Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_356, sizeof(meta_symbol_356)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_355, sizeof(meta_symbol_355)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
+    if (meta_action_valid2(_)) {
         star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_stringInner(parse_state);
-            if (!meta_action_valid(_)) {
+            if (!meta_action_valid2(_)) {
                 parse_state->pos = star_pos;
                 break;
             }
-            list_append(parse_state->arena, star_variables, (void*)_);
+            list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars73->xs = _;
-        if (_) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_357, sizeof(meta_symbol_357)-1);
+        if (meta_action_valid2(_)) {
+            data = string_from_cstring(parse_state->arena, meta_symbol_356, sizeof(meta_symbol_356)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
-                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid();
+                _ = meta_action_create_invalid2();
             }
-            if (_) {
+            if (meta_action_valid2(_)) {
                 _ = meta_rule_genRuntime(parse_state);
                 vars73->runtime = _;
-                if (_) {
-                    return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_73, (void*)vars73, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+                if (meta_action_valid2(_)) {
+                    return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_73, (void*)vars73, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
                 }
             }
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_dotname(MetaParseState* parse_state) {
+MetaAction meta_rule_dotname(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -3662,21 +3659,21 @@ MetaAction* meta_rule_dotname(MetaParseState* parse_state) {
     struct meta_Action74Vars* vars74 = arena_alloc(parse_state->arena, sizeof(struct meta_Action74Vars));
     _ = meta_rule_nameAsActionLookup(parse_state);
     vars74->x = _;
-    if (_) {
+    if (meta_action_valid2(_)) {
         _ = meta_rule_nextname(parse_state);
         vars74->y = _;
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_74, (void*)vars74, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_74, (void*)vars74, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
+MetaAction meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -3686,17 +3683,17 @@ MetaAction* meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
     struct meta_Action75Vars* vars75 = arena_alloc(parse_state->arena, sizeof(struct meta_Action75Vars));
     _ = meta_rule_variableName(parse_state);
     vars75->x = _;
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_75, (void*)vars75, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_75, (void*)vars75, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_nextname(MetaParseState* parse_state) {
+MetaAction meta_rule_nextname(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     unsigned int nlookahead_pos;
@@ -3706,34 +3703,34 @@ MetaAction* meta_rule_nextname(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action76Vars* vars76 = arena_alloc(parse_state->arena, sizeof(struct meta_Action76Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_374, sizeof(meta_symbol_374)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_373, sizeof(meta_symbol_373)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
+    if (meta_action_valid2(_)) {
         nlookahead_pos = parse_state->pos;
         _ = meta_rule_char(parse_state);
-        if (meta_action_valid(_)) {
-            _ = meta_action_create_invalid();
+        if (meta_action_valid2(_)) {
+            _ = meta_action_create_invalid2();
         } else {
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);
         }
         parse_state->pos = nlookahead_pos;
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_76, (void*)vars76, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_76, (void*)vars76, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_wvar(MetaParseState* parse_state) {
+MetaAction meta_rule_wvar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -3742,42 +3739,42 @@ MetaAction* meta_rule_wvar(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action77Vars* vars77 = arena_alloc(parse_state->arena, sizeof(struct meta_Action77Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_376, sizeof(meta_symbol_376)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_375, sizeof(meta_symbol_375)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
+    if (meta_action_valid2(_)) {
         if (parse_state->pos < parse_state->input_buffer->size) {
             parse_state->pos += 1;
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid();
+            _ = meta_action_create_invalid2();
         }
         vars77->x = _;
-        if (_) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_377, sizeof(meta_symbol_377)-1);
+        if (meta_action_valid2(_)) {
+            data = string_from_cstring(parse_state->arena, meta_symbol_376, sizeof(meta_symbol_376)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
-                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid();
+                _ = meta_action_create_invalid2();
             }
-            if (_) {
-                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (meta_action_valid2(_)) {
+                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_stringInner(MetaParseState* parse_state) {
+MetaAction meta_rule_stringInner(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     unsigned int nlookahead_pos;
     String* data;
@@ -3787,45 +3784,45 @@ MetaAction* meta_rule_stringInner(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_stringEscape(parse_state);
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_380, sizeof(meta_symbol_380)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_379, sizeof(meta_symbol_379)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (meta_action_valid(_)) {
-        _ = meta_action_create_invalid();
+    if (meta_action_valid2(_)) {
+        _ = meta_action_create_invalid2();
     } else {
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);
     }
     parse_state->pos = nlookahead_pos;
-    if (_) {
+    if (meta_action_valid2(_)) {
         if (parse_state->pos < parse_state->input_buffer->size) {
             parse_state->pos += 1;
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid();
+            _ = meta_action_create_invalid2();
         }
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_charString(MetaParseState* parse_state) {
+MetaAction meta_rule_charString(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_CharString;
     String* data;
     List* star_variables;
@@ -3837,48 +3834,48 @@ MetaAction* meta_rule_charString(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action80Vars* vars80 = arena_alloc(parse_state->arena, sizeof(struct meta_Action80Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_381, sizeof(meta_symbol_381)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_380, sizeof(meta_symbol_380)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
+    if (meta_action_valid2(_)) {
         star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_charStringInner(parse_state);
-            if (!meta_action_valid(_)) {
+            if (!meta_action_valid2(_)) {
                 parse_state->pos = star_pos;
                 break;
             }
-            list_append(parse_state->arena, star_variables, (void*)_);
+            list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
         vars80->xs = _;
-        if (_) {
-            data = string_from_cstring(parse_state->arena, meta_symbol_382, sizeof(meta_symbol_382)-1);
+        if (meta_action_valid2(_)) {
+            data = string_from_cstring(parse_state->arena, meta_symbol_381, sizeof(meta_symbol_381)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
-                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = meta_action_create_invalid();
+                _ = meta_action_create_invalid2();
             }
-            if (_) {
-                return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_80, (void*)vars80, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+            if (meta_action_valid2(_)) {
+                return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_80, (void*)vars80, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_charStringInner(MetaParseState* parse_state) {
+MetaAction meta_rule_charStringInner(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     unsigned int nlookahead_pos;
@@ -3888,59 +3885,59 @@ MetaAction* meta_rule_charStringInner(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_stringEscape(parse_state);
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     struct meta_Action82Vars* vars82 = arena_alloc(parse_state->arena, sizeof(struct meta_Action82Vars));
-    data = string_from_cstring(parse_state->arena, meta_symbol_392, sizeof(meta_symbol_392)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_391, sizeof(meta_symbol_391)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_82, (void*)vars82, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(meta_action_82, (void*)vars82, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_394, sizeof(meta_symbol_394)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_393, sizeof(meta_symbol_393)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (meta_action_valid(_)) {
-        _ = meta_action_create_invalid();
+    if (meta_action_valid2(_)) {
+        _ = meta_action_create_invalid2();
     } else {
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);
     }
     parse_state->pos = nlookahead_pos;
-    if (_) {
+    if (meta_action_valid2(_)) {
         if (parse_state->pos < parse_state->input_buffer->size) {
             parse_state->pos += 1;
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid();
+            _ = meta_action_create_invalid2();
         }
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_stringEscape(MetaParseState* parse_state) {
+MetaAction meta_rule_stringEscape(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_Escape;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -3948,32 +3945,32 @@ MetaAction* meta_rule_stringEscape(MetaParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_395, sizeof(meta_symbol_395)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_394, sizeof(meta_symbol_394)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
+    if (meta_action_valid2(_)) {
         if (parse_state->pos < parse_state->input_buffer->size) {
             parse_state->pos += 1;
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
+            _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
         } else {
-            _ = meta_action_create_invalid();
+            _ = meta_action_create_invalid2();
         }
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_ruleName(MetaParseState* parse_state) {
+MetaAction meta_rule_ruleName(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_RuleName;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -3981,17 +3978,17 @@ MetaAction* meta_rule_ruleName(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_name(parse_state);
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_variableName(MetaParseState* parse_state) {
+MetaAction meta_rule_variableName(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_VariableName;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -3999,17 +3996,17 @@ MetaAction* meta_rule_variableName(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_name(parse_state);
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_name(MetaParseState* parse_state) {
+MetaAction meta_rule_name(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     List* star_variables;
     unsigned int star_pos;
@@ -4020,31 +4017,31 @@ MetaAction* meta_rule_name(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_char(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_char(parse_state);
-            if (!meta_action_valid(_)) {
+            if (!meta_action_valid2(_)) {
                 parse_state->pos = star_pos;
                 break;
             }
-            list_append(parse_state->arena, star_variables, (void*)_);
+            list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_char(MetaParseState* parse_state) {
+MetaAction meta_rule_char(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     or_backtrack_pos = parse_state->pos;
     or_backtrack_rule_parse_info = parse_state->rule_parse_info;
@@ -4052,24 +4049,24 @@ MetaAction* meta_rule_char(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_lower(parse_state);
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_upper(parse_state);
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_lower(MetaParseState* parse_state) {
+MetaAction meta_rule_lower(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -4077,15 +4074,28 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
+    data = string_from_cstring(parse_state->arena, meta_symbol_395, sizeof(meta_symbol_395)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = meta_action_create_invalid2();
+    }
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    }
+    parse_state->pos = or_backtrack_pos;
+    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
+    action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_396, sizeof(meta_symbol_396)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4093,12 +4103,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_397, sizeof(meta_symbol_397)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4106,12 +4116,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_398, sizeof(meta_symbol_398)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4119,12 +4129,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_399, sizeof(meta_symbol_399)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4132,12 +4142,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_400, sizeof(meta_symbol_400)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4145,12 +4155,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_401, sizeof(meta_symbol_401)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4158,12 +4168,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_402, sizeof(meta_symbol_402)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4171,12 +4181,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_403, sizeof(meta_symbol_403)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4184,12 +4194,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_404, sizeof(meta_symbol_404)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4197,12 +4207,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_405, sizeof(meta_symbol_405)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4210,12 +4220,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_406, sizeof(meta_symbol_406)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4223,12 +4233,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_407, sizeof(meta_symbol_407)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4236,12 +4246,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_408, sizeof(meta_symbol_408)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4249,12 +4259,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_409, sizeof(meta_symbol_409)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4262,12 +4272,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_410, sizeof(meta_symbol_410)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4275,12 +4285,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_411, sizeof(meta_symbol_411)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4288,12 +4298,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_412, sizeof(meta_symbol_412)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4301,12 +4311,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_413, sizeof(meta_symbol_413)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4314,12 +4324,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_414, sizeof(meta_symbol_414)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4327,12 +4337,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_415, sizeof(meta_symbol_415)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4340,12 +4350,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_416, sizeof(meta_symbol_416)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4353,12 +4363,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_417, sizeof(meta_symbol_417)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4366,12 +4376,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_418, sizeof(meta_symbol_418)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4379,12 +4389,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_419, sizeof(meta_symbol_419)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4392,34 +4402,21 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_420, sizeof(meta_symbol_420)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = meta_action_create_invalid();
-    }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    }
-    parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
-    action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_421, sizeof(meta_symbol_421)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_upper(MetaParseState* parse_state) {
+MetaAction meta_rule_upper(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -4427,15 +4424,28 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
+    data = string_from_cstring(parse_state->arena, meta_symbol_421, sizeof(meta_symbol_421)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = meta_action_create_invalid2();
+    }
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    }
+    parse_state->pos = or_backtrack_pos;
+    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
+    action_start_pos = parse_state->pos;
     data = string_from_cstring(parse_state->arena, meta_symbol_422, sizeof(meta_symbol_422)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4443,12 +4453,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_423, sizeof(meta_symbol_423)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4456,12 +4466,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_424, sizeof(meta_symbol_424)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4469,12 +4479,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_425, sizeof(meta_symbol_425)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4482,12 +4492,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_426, sizeof(meta_symbol_426)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4495,12 +4505,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_427, sizeof(meta_symbol_427)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4508,12 +4518,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_428, sizeof(meta_symbol_428)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4521,12 +4531,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_429, sizeof(meta_symbol_429)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4534,12 +4544,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_430, sizeof(meta_symbol_430)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4547,12 +4557,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_431, sizeof(meta_symbol_431)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4560,12 +4570,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_432, sizeof(meta_symbol_432)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4573,12 +4583,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_433, sizeof(meta_symbol_433)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4586,12 +4596,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_434, sizeof(meta_symbol_434)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4599,12 +4609,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_435, sizeof(meta_symbol_435)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4612,12 +4622,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_436, sizeof(meta_symbol_436)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4625,12 +4635,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_437, sizeof(meta_symbol_437)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4638,12 +4648,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_438, sizeof(meta_symbol_438)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4651,12 +4661,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_439, sizeof(meta_symbol_439)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4664,12 +4674,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_440, sizeof(meta_symbol_440)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4677,12 +4687,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_441, sizeof(meta_symbol_441)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4690,12 +4700,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_442, sizeof(meta_symbol_442)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4703,12 +4713,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_443, sizeof(meta_symbol_443)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4716,12 +4726,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_444, sizeof(meta_symbol_444)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4729,12 +4739,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_445, sizeof(meta_symbol_445)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
@@ -4742,34 +4752,21 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
     data = string_from_cstring(parse_state->arena, meta_symbol_446, sizeof(meta_symbol_446)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = meta_action_create_invalid();
-    }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    }
-    parse_state->pos = or_backtrack_pos;
-    parse_state->rule_parse_info = or_backtrack_rule_parse_info;
-    action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_447, sizeof(meta_symbol_447)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_number(MetaParseState* parse_state) {
+MetaAction meta_rule_number(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     List* star_variables;
     unsigned int star_pos;
@@ -4780,31 +4777,31 @@ MetaAction* meta_rule_number(MetaParseState* parse_state) {
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
     _ = meta_rule_digit(parse_state);
-    if (_) {
+    if (meta_action_valid2(_)) {
         star_variables = list_create(parse_state->arena);
         star_start_pos = parse_state->pos;
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_digit(parse_state);
-            if (!meta_action_valid(_)) {
+            if (!meta_action_valid2(_)) {
                 parse_state->pos = star_pos;
                 break;
             }
-            list_append(parse_state->arena, star_variables, (void*)_);
+            list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
         }
-        _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        if (_) {
-            return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+        _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+        if (meta_action_valid2(_)) {
+            return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_space(MetaParseState* parse_state) {
+MetaAction meta_rule_space(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     List* star_variables;
     unsigned int star_pos;
@@ -4819,24 +4816,24 @@ MetaAction* meta_rule_space(MetaParseState* parse_state) {
     while (1) {
         star_pos = parse_state->pos;
         _ = meta_rule_spacechar(parse_state);
-        if (!meta_action_valid(_)) {
+        if (!meta_action_valid2(_)) {
             parse_state->pos = star_pos;
             break;
         }
-        list_append(parse_state->arena, star_variables, (void*)_);
+        list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));
     }
-    _ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    _ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
-MetaAction* meta_rule_spacechar(MetaParseState* parse_state) {
+MetaAction meta_rule_spacechar(MetaParseState* parse_state) {
     unsigned int or_backtrack_pos;
     MetaRuleParseInfo* or_backtrack_rule_parse_info;
     unsigned int action_start_pos;
-    MetaAction* _;
+    MetaAction _;
     MetaHighlight highlight = MetaHighlight_None;
     String* data;
     or_backtrack_pos = parse_state->pos;
@@ -4844,30 +4841,30 @@ MetaAction* meta_rule_spacechar(MetaParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_448, sizeof(meta_symbol_448)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_447, sizeof(meta_symbol_447)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
     parse_state->pos = or_backtrack_pos;
     parse_state->rule_parse_info = or_backtrack_rule_parse_info;
     action_start_pos = parse_state->pos;
-    data = string_from_cstring(parse_state->arena, meta_symbol_449, sizeof(meta_symbol_449)-1);
+    data = string_from_cstring(parse_state->arena, meta_symbol_448, sizeof(meta_symbol_448)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        _ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = meta_action_create_invalid();
+        _ = meta_action_create_invalid2();
     }
-    if (_) {
-        return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
+    if (meta_action_valid2(_)) {
+        return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return meta_action_create_invalid();
+    return meta_action_create_invalid2();
 }
 
 #ifndef NO_MAIN
@@ -4879,15 +4876,15 @@ int main(void) {
     unsigned int parse_size;
     unsigned int codegen_size;
     meta_Runtime* runtime = meta_create_runtime(parse_state->arena);
-    MetaAction* action = meta_rule_main(parse_state);
+    MetaAction action = meta_rule_main(parse_state);
     ListItem* placeholder_item;
-    if (!meta_action_valid(action)) {
+    if (!meta_action_valid2(action)) {
         fprintf(stderr, "ERROR: parse error [pos=%d] [size=%d]", parse_state->pos, parse_state->input_buffer->size);
         exit(1);
     }
     parse_size = arena.used - input_pos;
     parse_pos = arena.used;
-    meta_action_run(action, runtime, runtime->current_string_builder, runtime->arena);
+    meta_action_run(&action, runtime, runtime->current_string_builder, runtime->arena);
     placeholder_item = runtime->placeholders->pre_first->next;
     while (placeholder_item) {
         MetaPlaceholder* placeholder = placeholder_item->data;
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 1714a68..b43815c 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -61,15 +61,15 @@ file = rule*:xs space !. -> {
         "unsigned int parse_size;\n"
         "unsigned int codegen_size;\n"
         <prefix "Runtime* runtime = " <prefix "create_runtime(parse_state->arena);\n"
-        "MetaAction* action = " <prefix "rule_main(parse_state);\n"
+        "MetaAction action = " <prefix "rule_main(parse_state);\n"
         "ListItem* placeholder_item;\n"
-        "if (!meta_action_valid(action)) {\n" >
+        "if (!meta_action_valid2(action)) {\n" >
             "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n"
             "exit(1);\n"
         < "}\n"
         "parse_size = arena.used - input_pos;\n"
         "parse_pos = arena.used;\n"
-        "meta_action_run(action, runtime, runtime->current_string_builder, runtime->arena);\n"
+        "meta_action_run(&action, runtime, runtime->current_string_builder, runtime->arena);\n"
         "placeholder_item = runtime->placeholders->pre_first->next;\n"
         "while (placeholder_item) {\n" >
             "MetaPlaceholder* placeholder = placeholder_item->data;\n"
@@ -92,18 +92,18 @@ file = rule*:xs space !. -> {
 
 rule = space ruleName:x highlight:h space '=' space ors:y space ';' -> {
     >definitions {
-        "MetaAction* " <prefix "rule_" x "(MetaParseState* parse_state);\n"
+        "MetaAction " <prefix "rule_" x "(MetaParseState* parse_state);\n"
     }
-    "MetaAction* " <prefix "rule_" x "(MetaParseState* parse_state) {\n" >
+    "MetaAction " <prefix "rule_" x "(MetaParseState* parse_state) {\n" >
         "unsigned int or_backtrack_pos;\n"
         "MetaRuleParseInfo* or_backtrack_rule_parse_info;\n"
         "unsigned int action_start_pos;\n"
-        "MetaAction* _;\n"
+        "MetaAction _;\n"
         "MetaHighlight highlight = " h ";\n"
         $ruleVars
         <ruleVars
         y
-        "return meta_action_create_invalid();\n"
+        "return meta_action_create_invalid2();\n"
     < "}\n"
     "\n"
 };
@@ -151,7 +151,7 @@ orcase = matchAnd:x -> {
 matchAnd =
     | space matchExpr:x matchAnd:y -> {
         x
-        "if (_) {\n" >
+        "if (meta_action_valid2(_)) {\n" >
             y
         < "}\n"
     }
@@ -165,10 +165,10 @@ matchExpr =
         }
         "nlookahead_pos = parse_state->pos;\n"
         x
-        "if (meta_action_valid(_)) {\n" >
-            "_ = meta_action_create_invalid();\n"
+        "if (meta_action_valid2(_)) {\n" >
+            "_ = meta_action_create_invalid2();\n"
         < "} else {\n" >
-            "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);\n"
+            "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);\n"
         < "}\n"
         "parse_state->pos = nlookahead_pos;\n"
     }
@@ -178,10 +178,10 @@ matchExpr =
         }
         "lookahead_pos = parse_state->pos;\n"
         x
-        "if (meta_action_valid(_)) {\n" >
-            "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);\n"
+        "if (meta_action_valid2(_)) {\n" >
+            "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, 0, 0);\n"
         < "} else {\n" >
-            "_ = meta_action_create_invalid();\n"
+            "_ = meta_action_create_invalid2();\n"
         < "}\n"
         "parse_state->pos = lookahead_pos;\n"
     }
@@ -191,7 +191,7 @@ matchExpr =
 matchAssign =
     | opBind variableName:x -> {
         >variables {
-            "MetaAction* " x ";\n"
+            "MetaAction " x ";\n"
         }
         "vars" W[0] "->" x " = _;\n"
     }
@@ -210,13 +210,13 @@ matchExprRepeat =
         "while (1) {\n" >
             "star_pos = parse_state->pos;\n"
             x
-            "if (!meta_action_valid(_)) {\n" >
+            "if (!meta_action_valid2(_)) {\n" >
                 "parse_state->pos = star_pos;\n"
                 "break;\n"
             < "}\n"
-            "list_append(parse_state->arena, star_variables, (void*)_);\n"
+            "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n"
         < "}\n"
-        "_ = meta_action_create(parse_state->arena, NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"
+        "_ = meta_action_create2(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"
     }
     | matchExprPrimitive:x -> {
         x
@@ -261,17 +261,17 @@ matchExprPrimitive =
         xs
         "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n" >
             "parse_state->pos += 1;\n"
-            "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"
+            "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"
         < "} else {\n" >
-            "_ = meta_action_create_invalid();\n"
+            "_ = meta_action_create_invalid2();\n"
         < "}\n"
     }
     | opAny -> {
         "if (parse_state->pos < parse_state->input_buffer->size) {\n" >
             "parse_state->pos += 1;\n"
-            "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"
+            "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"
         < "} else {\n" >
-            "_ = meta_action_create_invalid();\n"
+            "_ = meta_action_create_invalid2();\n"
         < "}\n"
     }
     | charString:x -> {
@@ -281,9 +281,9 @@ matchExprPrimitive =
         "data = " x ";\n"
         "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, string_slice(parse_state->arena, parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n" >
             "parse_state->pos += data->size;\n"
-            "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"
+            "_ = meta_action_create2(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"
         < "} else {\n" >
-            "_ = meta_action_create_invalid();\n"
+            "_ = meta_action_create_invalid2();\n"
         < "}\n"
     }
     ;
@@ -301,10 +301,10 @@ action =
         >orInit {
             "struct " <prefix "Action" W[0] "Vars* vars" W[0] " = arena_alloc(parse_state->arena, sizeof(struct " <prefix "Action" W[0] "Vars));\n"
         }
-        "return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, " <prefix "action_" W[0] ", (void*)vars" W[0] ", parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n"
+        "return meta_register_parse2(parse_state->arena, meta_action_create2(" <prefix "action_" W[0] ", (void*)vars" W[0] ", parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n"
     }
     | -> {
-        "return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n"
+        "return meta_register_parse2(parse_state->arena, meta_action_create2(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);\n"
     }
     ;
 
@@ -313,10 +313,10 @@ genRuntime = &. -> { "((" <prefix "Runtime*)runtime)" };
 actionexpr =
     | space 'unseen(' nameAsActionLookup:x ') -> {' actionexpr*:ys space '}' genRuntime:runtime -> {
         >actionVars {
-            unique("MetaAction* action;\n")
+            unique("MetaAction action;\n")
         }
         "action = " x ";\n"
-        "if (!string_builder_contains(" runtime "->current_string_builder, string_slice(" runtime "->arena, action->input_buffer, action->start, action->end))) {\n" >
+        "if (!string_builder_contains(" runtime "->current_string_builder, string_slice(" runtime "->arena, action.input_buffer, action.start, action.end))) {\n" >
             ys
         < "}\n"
     }
@@ -350,7 +350,7 @@ actionexpr =
         "string_builder_append(" runtime "->current_string_builder, " runtime "->arena, string_from_integer(" runtime "->arena, " x "), 0, NULL);\n"
     }
     | space nameAsActionLookup:x genRuntime:runtime -> {
-        "meta_action_run(" x ", runtime, " runtime "->current_string_builder, " runtime "->arena);\n"
+        "meta_action_run(&" x ", runtime, " runtime "->current_string_builder, " runtime "->arena);\n"
     }
     | space placeholder:x genRuntime:runtime -> {
         #inc(W[1] 1)
@@ -369,7 +369,7 @@ actionexpr =
             unique("StringBuilder* string_builder;\n")
         }
         "string_builder = string_builder_create(" runtime "->arena);\n"
-        "meta_placeholder_append(" runtime "->arena, " runtime "->placeholders, string_builder, meta_action_create(" runtime "->arena, placeholder_" W[1] ", variables, NULL, 0, 0));\n"
+        "meta_placeholder_append2(" runtime "->arena, " runtime "->placeholders, string_builder, meta_action_create2(placeholder_" W[1] ", variables, NULL, 0, 0));\n"
         "string_builder_append(" runtime "->current_string_builder, " runtime "->arena, NULL, 0, string_builder);\n"
     }
     | space string:x genRuntime:runtime -> {
@@ -436,7 +436,7 @@ expr =
     ;
 
 numberPart = space nameAsActionLookup:x maybeShift:y -> {
-    "+(meta_action_first_byte(" x ")" y ")"
+    "+(meta_action_first_byte2(" x ")" y ")"
 };
 
 maybeShift = '<<' number | -> {};
@@ -457,7 +457,7 @@ nameAsActionLookup = variableName:x -> {
     "(((struct " <prefix "Action" W[0] "Vars*)variables)->" x ")"
 };
 
-nextname = '.len' !char -> { "meta_action_len" };
+nextname = '.len' !char -> { "meta_action_len2" };
 
 wvar = 'W[' .:x ']' -> {
     >namedWs {

commit 8e797f4bcbcfdc54d6658a356b04d30dd67408c4
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 22 21:08:41 2025 +0100

    Add arena_copy

diff --git a/src/arena.c b/src/arena.c
index f620aa5..6777527 100644
--- a/src/arena.c
+++ b/src/arena.c
@@ -32,4 +32,14 @@ void* arena_alloc(Arena* arena, unsigned int size) {
     return pointer;
 }
 
+void* arena_copy(Arena* arena, unsigned int size, unsigned char* data) {
+    void* pointer = arena_alloc(arena, size);
+    unsigned char* char_pointer = pointer;
+    int i;
+    for (i=0; i<size; i++) {
+        char_pointer[i] = data[i];
+    }
+    return pointer;
+}
+
 #endif

commit 96d9b9d9af7dc1c65dd659fc986127752f7e6c06
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 22 21:03:02 2025 +0100

    Add helpers to create actions on the stack

diff --git a/src/meta.c b/src/meta.c
index 194ad3a..d98e20a 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -16,6 +16,7 @@ typedef enum meta_highlight {
 typedef void (*MetaActionFunction)(void* runtime, void* variables);
 
 typedef struct meta_action {
+    int valid;
     MetaActionFunction function;
     void* variables;
     String* input_buffer;
@@ -27,6 +28,12 @@ MetaAction* meta_action_create_invalid() {
     return NULL;
 }
 
+MetaAction meta_action_create_invalid2() {
+    MetaAction action;
+    action.valid = 0;
+    return action;
+}
+
 int meta_action_valid(MetaAction* action) {
     if (action == NULL) {
         return 0;
@@ -35,8 +42,24 @@ int meta_action_valid(MetaAction* action) {
     }
 }
 
+int meta_action_valid2(MetaAction action) {
+    return action.valid;
+}
+
+MetaAction meta_action_create2(MetaActionFunction function, void* variables, String* input_buffer, unsigned int start, unsigned int end) {
+    MetaAction action;
+    action.valid = 1;
+    action.function = function;
+    action.variables = variables;
+    action.input_buffer = input_buffer;
+    action.start = start;
+    action.end = end;
+    return action;
+}
+
 MetaAction* meta_action_create(Arena* arena, MetaActionFunction function, void* variables, String* input_buffer, unsigned int start, unsigned int end) {
     MetaAction* action = arena_alloc(arena, sizeof(MetaAction));
+    action->valid = 1;
     action->function = function;
     action->variables = variables;
     action->input_buffer = input_buffer;

commit c196585e245605a7d257ff378ad0abec337bd505
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 22 20:40:27 2025 +0100

    Extract meta_action_create_invalid and meta_action_valid

diff --git a/src/meta.c b/src/meta.c
index 8ece203..194ad3a 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -23,6 +23,18 @@ typedef struct meta_action {
     unsigned int end;
 } MetaAction;
 
+MetaAction* meta_action_create_invalid() {
+    return NULL;
+}
+
+int meta_action_valid(MetaAction* action) {
+    if (action == NULL) {
+        return 0;
+    } else {
+        return 1;
+    }
+}
+
 MetaAction* meta_action_create(Arena* arena, MetaActionFunction function, void* variables, String* input_buffer, unsigned int start, unsigned int end) {
     MetaAction* action = arena_alloc(arena, sizeof(MetaAction));
     action->function = function;
diff --git a/src/meta/language_meta.c b/src/meta/language_meta.c
index 3fc3d94..14e61f7 100644
--- a/src/meta/language_meta.c
+++ b/src/meta/language_meta.c
@@ -87,7 +87,7 @@ static char meta_symbol_44[] = "create_runtime(parse_state->arena);\n";
 static char meta_symbol_45[] = "MetaAction* action = ";
 static char meta_symbol_46[] = "rule_main(parse_state);\n";
 static char meta_symbol_47[] = "ListItem* placeholder_item;\n";
-static char meta_symbol_48[] = "if (action == NULL) {\n";
+static char meta_symbol_48[] = "if (!meta_action_valid(action)) {\n";
 static char meta_symbol_49[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
 static char meta_symbol_50[] = "exit(1);\n";
 static char meta_symbol_51[] = "}\n";
@@ -126,7 +126,7 @@ static char meta_symbol_83[] = "unsigned int action_start_pos;\n";
 static char meta_symbol_84[] = "MetaAction* _;\n";
 static char meta_symbol_85[] = "MetaHighlight highlight = ";
 static char meta_symbol_86[] = ";\n";
-static char meta_symbol_87[] = "return NULL;\n";
+static char meta_symbol_87[] = "return meta_action_create_invalid();\n";
 static char meta_symbol_88[] = "}\n";
 static char meta_symbol_89[] = "\n";
 static char meta_symbol_90[] = "[";
@@ -147,19 +147,19 @@ static char meta_symbol_104[] = "}\n";
 static char meta_symbol_105[] = "unsigned int nlookahead_pos;\n";
 static char meta_symbol_106[] = "unsigned int nlookahead_pos;\n";
 static char meta_symbol_107[] = "nlookahead_pos = parse_state->pos;\n";
-static char meta_symbol_108[] = "if (_ == NULL) {\n";
-static char meta_symbol_109[] = "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char meta_symbol_108[] = "if (meta_action_valid(_)) {\n";
+static char meta_symbol_109[] = "_ = meta_action_create_invalid();\n";
 static char meta_symbol_110[] = "} else {\n";
-static char meta_symbol_111[] = "_ = NULL;\n";
+static char meta_symbol_111[] = "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);\n";
 static char meta_symbol_112[] = "}\n";
 static char meta_symbol_113[] = "parse_state->pos = nlookahead_pos;\n";
 static char meta_symbol_114[] = "unsigned int lookahead_pos;\n";
 static char meta_symbol_115[] = "unsigned int lookahead_pos;\n";
 static char meta_symbol_116[] = "lookahead_pos = parse_state->pos;\n";
-static char meta_symbol_117[] = "if (_ == NULL) {\n";
-static char meta_symbol_118[] = "_ = NULL;\n";
+static char meta_symbol_117[] = "if (meta_action_valid(_)) {\n";
+static char meta_symbol_118[] = "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);\n";
 static char meta_symbol_119[] = "} else {\n";
-static char meta_symbol_120[] = "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char meta_symbol_120[] = "_ = meta_action_create_invalid();\n";
 static char meta_symbol_121[] = "}\n";
 static char meta_symbol_122[] = "parse_state->pos = lookahead_pos;\n";
 static char meta_symbol_123[] = "MetaAction* ";
@@ -177,7 +177,7 @@ static char meta_symbol_134[] = "star_variables = list_create(parse_state->arena
 static char meta_symbol_135[] = "star_start_pos = parse_state->pos;\n";
 static char meta_symbol_136[] = "while (1) {\n";
 static char meta_symbol_137[] = "star_pos = parse_state->pos;\n";
-static char meta_symbol_138[] = "if (_ == NULL) {\n";
+static char meta_symbol_138[] = "if (!meta_action_valid(_)) {\n";
 static char meta_symbol_139[] = "parse_state->pos = star_pos;\n";
 static char meta_symbol_140[] = "break;\n";
 static char meta_symbol_141[] = "}\n";
@@ -212,13 +212,13 @@ static char meta_symbol_169[] = "if (parse_state->pos < parse_state->input_buffe
 static char meta_symbol_170[] = "parse_state->pos += 1;\n";
 static char meta_symbol_171[] = "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
 static char meta_symbol_172[] = "} else {\n";
-static char meta_symbol_173[] = "_ = NULL;\n";
+static char meta_symbol_173[] = "_ = meta_action_create_invalid();\n";
 static char meta_symbol_174[] = "}\n";
 static char meta_symbol_175[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
 static char meta_symbol_176[] = "parse_state->pos += 1;\n";
 static char meta_symbol_177[] = "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
 static char meta_symbol_178[] = "} else {\n";
-static char meta_symbol_179[] = "_ = NULL;\n";
+static char meta_symbol_179[] = "_ = meta_action_create_invalid();\n";
 static char meta_symbol_180[] = "}\n";
 static char meta_symbol_181[] = "String* data;\n";
 static char meta_symbol_182[] = "String* data;\n";
@@ -228,7 +228,7 @@ static char meta_symbol_185[] = "if (parse_state->input_buffer->size-parse_state
 static char meta_symbol_186[] = "parse_state->pos += data->size;\n";
 static char meta_symbol_187[] = "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
 static char meta_symbol_188[] = "} else {\n";
-static char meta_symbol_189[] = "_ = NULL;\n";
+static char meta_symbol_189[] = "_ = meta_action_create_invalid();\n";
 static char meta_symbol_190[] = "}\n";
 static char meta_symbol_191[] = "{";
 static char meta_symbol_192[] = "}";
@@ -1821,7 +1821,7 @@ MetaAction* meta_rule_main(MetaParseState* parse_state) {
     while (1) {
         star_pos = parse_state->pos;
         _ = meta_rule_metaField(parse_state);
-        if (_ == NULL) {
+        if (!meta_action_valid(_)) {
             parse_state->pos = star_pos;
             break;
         }
@@ -1836,7 +1836,7 @@ MetaAction* meta_rule_main(MetaParseState* parse_state) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_1, (void*)vars1, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_metaField(MetaParseState* parse_state) {
@@ -1857,7 +1857,7 @@ MetaAction* meta_rule_metaField(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         _ = meta_rule_name(parse_state);
@@ -1866,7 +1866,7 @@ MetaAction* meta_rule_metaField(MetaParseState* parse_state) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_2, (void*)vars2, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_file(MetaParseState* parse_state) {
@@ -1890,7 +1890,7 @@ MetaAction* meta_rule_file(MetaParseState* parse_state) {
     while (1) {
         star_pos = parse_state->pos;
         _ = meta_rule_rule(parse_state);
-        if (_ == NULL) {
+        if (!meta_action_valid(_)) {
             parse_state->pos = star_pos;
             break;
         }
@@ -1906,12 +1906,12 @@ MetaAction* meta_rule_file(MetaParseState* parse_state) {
                 parse_state->pos += 1;
                 _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
             } else {
-                _ = NULL;
+                _ = meta_action_create_invalid();
             }
-            if (_ == NULL) {
-                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
+            if (meta_action_valid(_)) {
+                _ = meta_action_create_invalid();
             } else {
-                _ = NULL;
+                _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
             }
             parse_state->pos = nlookahead_pos;
             if (_) {
@@ -1919,7 +1919,7 @@ MetaAction* meta_rule_file(MetaParseState* parse_state) {
             }
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_rule(MetaParseState* parse_state) {
@@ -1950,7 +1950,7 @@ MetaAction* meta_rule_rule(MetaParseState* parse_state) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
-                        _ = NULL;
+                        _ = meta_action_create_invalid();
                     }
                     if (_) {
                         _ = meta_rule_space(parse_state);
@@ -1965,7 +1965,7 @@ MetaAction* meta_rule_rule(MetaParseState* parse_state) {
                                         parse_state->pos += data->size;
                                         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                                     } else {
-                                        _ = NULL;
+                                        _ = meta_action_create_invalid();
                                     }
                                     if (_) {
                                         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_4, (void*)vars4, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -1978,7 +1978,7 @@ MetaAction* meta_rule_rule(MetaParseState* parse_state) {
             }
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_highlight(MetaParseState* parse_state) {
@@ -1999,7 +1999,7 @@ MetaAction* meta_rule_highlight(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         _ = meta_rule_metaName(parse_state);
@@ -2010,7 +2010,7 @@ MetaAction* meta_rule_highlight(MetaParseState* parse_state) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = NULL;
+                _ = meta_action_create_invalid();
             }
             if (_) {
                 return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_5, (void*)vars5, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -2022,7 +2022,7 @@ MetaAction* meta_rule_highlight(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action6Vars* vars6 = arena_alloc(parse_state->arena, sizeof(struct meta_Action6Vars));
     return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_6, (void*)vars6, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_metaName(MetaParseState* parse_state) {
@@ -2040,7 +2040,7 @@ MetaAction* meta_rule_metaName(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_ors(MetaParseState* parse_state) {
@@ -2068,7 +2068,7 @@ MetaAction* meta_rule_ors(MetaParseState* parse_state) {
             while (1) {
                 star_pos = parse_state->pos;
                 _ = meta_rule_restorcase(parse_state);
-                if (_ == NULL) {
+                if (!meta_action_valid(_)) {
                     parse_state->pos = star_pos;
                     break;
                 }
@@ -2081,7 +2081,7 @@ MetaAction* meta_rule_ors(MetaParseState* parse_state) {
             }
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_restorcase(MetaParseState* parse_state) {
@@ -2104,7 +2104,7 @@ MetaAction* meta_rule_restorcase(MetaParseState* parse_state) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_9, (void*)vars9, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_maybeorbar(MetaParseState* parse_state) {
@@ -2127,7 +2127,7 @@ MetaAction* meta_rule_maybeorbar(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action11Vars* vars11 = arena_alloc(parse_state->arena, sizeof(struct meta_Action11Vars));
     return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_11, (void*)vars11, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_orbar(MetaParseState* parse_state) {
@@ -2148,7 +2148,7 @@ MetaAction* meta_rule_orbar(MetaParseState* parse_state) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_orcase(MetaParseState* parse_state) {
@@ -2168,7 +2168,7 @@ MetaAction* meta_rule_orcase(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_13, (void*)vars13, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_matchAnd(MetaParseState* parse_state) {
@@ -2204,7 +2204,7 @@ MetaAction* meta_rule_matchAnd(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_15, (void*)vars15, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_matchExpr(MetaParseState* parse_state) {
@@ -2252,7 +2252,7 @@ MetaAction* meta_rule_matchExpr(MetaParseState* parse_state) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_18, (void*)vars18, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_matchAssign(MetaParseState* parse_state) {
@@ -2280,7 +2280,7 @@ MetaAction* meta_rule_matchAssign(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action20Vars* vars20 = arena_alloc(parse_state->arena, sizeof(struct meta_Action20Vars));
     return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_20, (void*)vars20, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_matchExprRepeat(MetaParseState* parse_state) {
@@ -2312,7 +2312,7 @@ MetaAction* meta_rule_matchExprRepeat(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_22, (void*)vars22, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_opBind(MetaParseState* parse_state) {
@@ -2332,12 +2332,12 @@ MetaAction* meta_rule_opBind(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_opStar(MetaParseState* parse_state) {
@@ -2357,12 +2357,12 @@ MetaAction* meta_rule_opStar(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_opLookahead(MetaParseState* parse_state) {
@@ -2382,12 +2382,12 @@ MetaAction* meta_rule_opLookahead(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
@@ -2407,12 +2407,12 @@ MetaAction* meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_opAny(MetaParseState* parse_state) {
@@ -2432,12 +2432,12 @@ MetaAction* meta_rule_opAny(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_opOr(MetaParseState* parse_state) {
@@ -2457,12 +2457,12 @@ MetaAction* meta_rule_opOr(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_opAction(MetaParseState* parse_state) {
@@ -2482,12 +2482,12 @@ MetaAction* meta_rule_opAction(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_sepBit(MetaParseState* parse_state) {
@@ -2515,9 +2515,9 @@ MetaAction* meta_rule_sepBit(MetaParseState* parse_state) {
             parse_state->pos += data->size;
             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = NULL;
+            _ = meta_action_create_invalid();
         }
-        if (_ == NULL) {
+        if (!meta_action_valid(_)) {
             parse_state->pos = star_pos;
             break;
         }
@@ -2531,7 +2531,7 @@ MetaAction* meta_rule_sepBit(MetaParseState* parse_state) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_30, (void*)vars30, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_maybeBit(MetaParseState* parse_state) {
@@ -2559,7 +2559,7 @@ MetaAction* meta_rule_maybeBit(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_32, (void*)vars32, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_bit(MetaParseState* parse_state) {
@@ -2580,7 +2580,7 @@ MetaAction* meta_rule_bit(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_33, (void*)vars33, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -2594,12 +2594,12 @@ MetaAction* meta_rule_bit(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_34, (void*)vars34, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
@@ -2632,7 +2632,7 @@ MetaAction* meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         star_variables = list_create(parse_state->arena);
@@ -2640,7 +2640,7 @@ MetaAction* meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_sepBit(parse_state);
-            if (_ == NULL) {
+            if (!meta_action_valid(_)) {
                 parse_state->pos = star_pos;
                 break;
             }
@@ -2669,7 +2669,7 @@ MetaAction* meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_38, (void*)vars38, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_action(MetaParseState* parse_state) {
@@ -2699,7 +2699,7 @@ MetaAction* meta_rule_action(MetaParseState* parse_state) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = NULL;
+                    _ = meta_action_create_invalid();
                 }
                 if (_) {
                     star_variables = list_create(parse_state->arena);
@@ -2707,7 +2707,7 @@ MetaAction* meta_rule_action(MetaParseState* parse_state) {
                     while (1) {
                         star_pos = parse_state->pos;
                         _ = meta_rule_actionexpr(parse_state);
-                        if (_ == NULL) {
+                        if (!meta_action_valid(_)) {
                             parse_state->pos = star_pos;
                             break;
                         }
@@ -2723,7 +2723,7 @@ MetaAction* meta_rule_action(MetaParseState* parse_state) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                             } else {
-                                _ = NULL;
+                                _ = meta_action_create_invalid();
                             }
                             if (_) {
                                 return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_39, (void*)vars39, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -2739,7 +2739,7 @@ MetaAction* meta_rule_action(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action40Vars* vars40 = arena_alloc(parse_state->arena, sizeof(struct meta_Action40Vars));
     return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_40, (void*)vars40, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_genRuntime(MetaParseState* parse_state) {
@@ -2760,18 +2760,18 @@ MetaAction* meta_rule_genRuntime(MetaParseState* parse_state) {
         parse_state->pos += 1;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
-    if (_ == NULL) {
-        _ = NULL;
-    } else {
+    if (meta_action_valid(_)) {
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
+    } else {
+        _ = meta_action_create_invalid();
     }
     parse_state->pos = lookahead_pos;
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_41, (void*)vars41, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
@@ -2797,7 +2797,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
             parse_state->pos += data->size;
             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = NULL;
+            _ = meta_action_create_invalid();
         }
         if (_) {
             _ = meta_rule_nameAsActionLookup(parse_state);
@@ -2808,7 +2808,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = NULL;
+                    _ = meta_action_create_invalid();
                 }
                 if (_) {
                     star_variables = list_create(parse_state->arena);
@@ -2816,7 +2816,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
                     while (1) {
                         star_pos = parse_state->pos;
                         _ = meta_rule_actionexpr(parse_state);
-                        if (_ == NULL) {
+                        if (!meta_action_valid(_)) {
                             parse_state->pos = star_pos;
                             break;
                         }
@@ -2832,7 +2832,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                             } else {
-                                _ = NULL;
+                                _ = meta_action_create_invalid();
                             }
                             if (_) {
                                 _ = meta_rule_genRuntime(parse_state);
@@ -2858,7 +2858,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
             parse_state->pos += data->size;
             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = NULL;
+            _ = meta_action_create_invalid();
         }
         if (_) {
             _ = meta_rule_string(parse_state);
@@ -2869,7 +2869,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = NULL;
+                    _ = meta_action_create_invalid();
                 }
                 if (_) {
                     _ = meta_rule_genRuntime(parse_state);
@@ -2892,7 +2892,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
             parse_state->pos += data->size;
             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = NULL;
+            _ = meta_action_create_invalid();
         }
         if (_) {
             _ = meta_rule_stringBuilderName(parse_state);
@@ -2905,7 +2905,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
-                        _ = NULL;
+                        _ = meta_action_create_invalid();
                     }
                     if (_) {
                         star_variables = list_create(parse_state->arena);
@@ -2913,7 +2913,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
                         while (1) {
                             star_pos = parse_state->pos;
                             _ = meta_rule_actionexpr(parse_state);
-                            if (_ == NULL) {
+                            if (!meta_action_valid(_)) {
                                 parse_state->pos = star_pos;
                                 break;
                             }
@@ -2929,7 +2929,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
                                     parse_state->pos += data->size;
                                     _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                                 } else {
-                                    _ = NULL;
+                                    _ = meta_action_create_invalid();
                                 }
                                 if (_) {
                                     _ = meta_rule_genRuntime(parse_state);
@@ -2956,7 +2956,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
             parse_state->pos += data->size;
             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = NULL;
+            _ = meta_action_create_invalid();
         }
         if (_) {
             _ = meta_rule_stringBuilderName(parse_state);
@@ -2981,7 +2981,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
             parse_state->pos += data->size;
             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = NULL;
+            _ = meta_action_create_invalid();
         }
         if (_) {
             _ = meta_rule_stringBuilderName(parse_state);
@@ -3070,7 +3070,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
             parse_state->pos += data->size;
             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = NULL;
+            _ = meta_action_create_invalid();
         }
         if (_) {
             _ = meta_rule_name(parse_state);
@@ -3081,7 +3081,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = NULL;
+                    _ = meta_action_create_invalid();
                 }
                 if (_) {
                     _ = meta_rule_wvar(parse_state);
@@ -3092,7 +3092,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
                             parse_state->pos += data->size;
                             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                         } else {
-                            _ = NULL;
+                            _ = meta_action_create_invalid();
                         }
                         if (_) {
                             _ = meta_rule_actionPrimitiveExpression(parse_state);
@@ -3103,7 +3103,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
                                     parse_state->pos += data->size;
                                     _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                                 } else {
-                                    _ = NULL;
+                                    _ = meta_action_create_invalid();
                                 }
                                 if (_) {
                                     _ = meta_rule_genRuntime(parse_state);
@@ -3130,7 +3130,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
             parse_state->pos += data->size;
             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
         } else {
-            _ = NULL;
+            _ = meta_action_create_invalid();
         }
         if (_) {
             star_variables = list_create(parse_state->arena);
@@ -3138,7 +3138,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
             while (1) {
                 star_pos = parse_state->pos;
                 _ = meta_rule_actionexpr(parse_state);
-                if (_ == NULL) {
+                if (!meta_action_valid(_)) {
                     parse_state->pos = star_pos;
                     break;
                 }
@@ -3154,7 +3154,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
-                        _ = NULL;
+                        _ = meta_action_create_invalid();
                     }
                     if (_) {
                         _ = meta_rule_genRuntime(parse_state);
@@ -3167,7 +3167,7 @@ MetaAction* meta_rule_actionexpr(MetaParseState* parse_state) {
             }
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_stringBuilderName(MetaParseState* parse_state) {
@@ -3187,7 +3187,7 @@ MetaAction* meta_rule_stringBuilderName(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_53, (void*)vars53, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
@@ -3214,7 +3214,7 @@ MetaAction* meta_rule_actionPrimitiveExpression(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_digit(MetaParseState* parse_state) {
@@ -3234,7 +3234,7 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -3247,7 +3247,7 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -3260,7 +3260,7 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -3273,7 +3273,7 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -3286,7 +3286,7 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -3299,7 +3299,7 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -3312,7 +3312,7 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -3325,7 +3325,7 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -3338,7 +3338,7 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -3351,12 +3351,12 @@ MetaAction* meta_rule_digit(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_placeholder(MetaParseState* parse_state) {
@@ -3377,7 +3377,7 @@ MetaAction* meta_rule_placeholder(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         _ = meta_rule_space(parse_state);
@@ -3390,7 +3390,7 @@ MetaAction* meta_rule_placeholder(MetaParseState* parse_state) {
                     parse_state->pos += data->size;
                     _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                 } else {
-                    _ = NULL;
+                    _ = meta_action_create_invalid();
                 }
                 if (_) {
                     _ = meta_rule_expr(parse_state);
@@ -3403,7 +3403,7 @@ MetaAction* meta_rule_placeholder(MetaParseState* parse_state) {
                                 parse_state->pos += data->size;
                                 _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                             } else {
-                                _ = NULL;
+                                _ = meta_action_create_invalid();
                             }
                             if (_) {
                                 _ = meta_rule_genRuntime(parse_state);
@@ -3418,7 +3418,7 @@ MetaAction* meta_rule_placeholder(MetaParseState* parse_state) {
             }
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_expr(MetaParseState* parse_state) {
@@ -3455,7 +3455,7 @@ MetaAction* meta_rule_expr(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         _ = meta_rule_wvar(parse_state);
@@ -3466,7 +3466,7 @@ MetaAction* meta_rule_expr(MetaParseState* parse_state) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = NULL;
+                _ = meta_action_create_invalid();
             }
             if (_) {
                 _ = meta_rule_dotname(parse_state);
@@ -3477,7 +3477,7 @@ MetaAction* meta_rule_expr(MetaParseState* parse_state) {
                         parse_state->pos += data->size;
                         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
                     } else {
-                        _ = NULL;
+                        _ = meta_action_create_invalid();
                     }
                     if (_) {
                         _ = meta_rule_genRuntime(parse_state);
@@ -3499,7 +3499,7 @@ MetaAction* meta_rule_expr(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         star_variables = list_create(parse_state->arena);
@@ -3507,7 +3507,7 @@ MetaAction* meta_rule_expr(MetaParseState* parse_state) {
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_numberPart(parse_state);
-            if (_ == NULL) {
+            if (!meta_action_valid(_)) {
                 parse_state->pos = star_pos;
                 break;
             }
@@ -3521,14 +3521,14 @@ MetaAction* meta_rule_expr(MetaParseState* parse_state) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = NULL;
+                _ = meta_action_create_invalid();
             }
             if (_) {
                 return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_69, (void*)vars69, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_numberPart(MetaParseState* parse_state) {
@@ -3555,7 +3555,7 @@ MetaAction* meta_rule_numberPart(MetaParseState* parse_state) {
             }
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_maybeShift(MetaParseState* parse_state) {
@@ -3575,7 +3575,7 @@ MetaAction* meta_rule_maybeShift(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         _ = meta_rule_number(parse_state);
@@ -3588,7 +3588,7 @@ MetaAction* meta_rule_maybeShift(MetaParseState* parse_state) {
     action_start_pos = parse_state->pos;
     struct meta_Action72Vars* vars72 = arena_alloc(parse_state->arena, sizeof(struct meta_Action72Vars));
     return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_72, (void*)vars72, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_string(MetaParseState* parse_state) {
@@ -3612,7 +3612,7 @@ MetaAction* meta_rule_string(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         star_variables = list_create(parse_state->arena);
@@ -3620,7 +3620,7 @@ MetaAction* meta_rule_string(MetaParseState* parse_state) {
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_stringInner(parse_state);
-            if (_ == NULL) {
+            if (!meta_action_valid(_)) {
                 parse_state->pos = star_pos;
                 break;
             }
@@ -3634,7 +3634,7 @@ MetaAction* meta_rule_string(MetaParseState* parse_state) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = NULL;
+                _ = meta_action_create_invalid();
             }
             if (_) {
                 _ = meta_rule_genRuntime(parse_state);
@@ -3645,7 +3645,7 @@ MetaAction* meta_rule_string(MetaParseState* parse_state) {
             }
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_dotname(MetaParseState* parse_state) {
@@ -3669,7 +3669,7 @@ MetaAction* meta_rule_dotname(MetaParseState* parse_state) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_74, (void*)vars74, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
@@ -3689,7 +3689,7 @@ MetaAction* meta_rule_nameAsActionLookup(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_75, (void*)vars75, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_nextname(MetaParseState* parse_state) {
@@ -3711,22 +3711,22 @@ MetaAction* meta_rule_nextname(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         nlookahead_pos = parse_state->pos;
         _ = meta_rule_char(parse_state);
-        if (_ == NULL) {
-            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
+        if (meta_action_valid(_)) {
+            _ = meta_action_create_invalid();
         } else {
-            _ = NULL;
+            _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
         }
         parse_state->pos = nlookahead_pos;
         if (_) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_76, (void*)vars76, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_wvar(MetaParseState* parse_state) {
@@ -3747,14 +3747,14 @@ MetaAction* meta_rule_wvar(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         if (parse_state->pos < parse_state->input_buffer->size) {
             parse_state->pos += 1;
             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
         } else {
-            _ = NULL;
+            _ = meta_action_create_invalid();
         }
         vars77->x = _;
         if (_) {
@@ -3763,14 +3763,14 @@ MetaAction* meta_rule_wvar(MetaParseState* parse_state) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = NULL;
+                _ = meta_action_create_invalid();
             }
             if (_) {
                 return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_77, (void*)vars77, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_stringInner(MetaParseState* parse_state) {
@@ -3799,12 +3799,12 @@ MetaAction* meta_rule_stringInner(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
-    if (_ == NULL) {
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
+    if (meta_action_valid(_)) {
+        _ = meta_action_create_invalid();
     } else {
-        _ = NULL;
+        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
     }
     parse_state->pos = nlookahead_pos;
     if (_) {
@@ -3812,13 +3812,13 @@ MetaAction* meta_rule_stringInner(MetaParseState* parse_state) {
             parse_state->pos += 1;
             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
         } else {
-            _ = NULL;
+            _ = meta_action_create_invalid();
         }
         if (_) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_charString(MetaParseState* parse_state) {
@@ -3842,7 +3842,7 @@ MetaAction* meta_rule_charString(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         star_variables = list_create(parse_state->arena);
@@ -3850,7 +3850,7 @@ MetaAction* meta_rule_charString(MetaParseState* parse_state) {
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_charStringInner(parse_state);
-            if (_ == NULL) {
+            if (!meta_action_valid(_)) {
                 parse_state->pos = star_pos;
                 break;
             }
@@ -3864,14 +3864,14 @@ MetaAction* meta_rule_charString(MetaParseState* parse_state) {
                 parse_state->pos += data->size;
                 _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
             } else {
-                _ = NULL;
+                _ = meta_action_create_invalid();
             }
             if (_) {
                 return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_80, (void*)vars80, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
             }
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_charStringInner(MetaParseState* parse_state) {
@@ -3900,7 +3900,7 @@ MetaAction* meta_rule_charStringInner(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, meta_action_82, (void*)vars82, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -3914,12 +3914,12 @@ MetaAction* meta_rule_charStringInner(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
-    if (_ == NULL) {
-        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
+    if (meta_action_valid(_)) {
+        _ = meta_action_create_invalid();
     } else {
-        _ = NULL;
+        _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);
     }
     parse_state->pos = nlookahead_pos;
     if (_) {
@@ -3927,13 +3927,13 @@ MetaAction* meta_rule_charStringInner(MetaParseState* parse_state) {
             parse_state->pos += 1;
             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
         } else {
-            _ = NULL;
+            _ = meta_action_create_invalid();
         }
         if (_) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_stringEscape(MetaParseState* parse_state) {
@@ -3953,20 +3953,20 @@ MetaAction* meta_rule_stringEscape(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         if (parse_state->pos < parse_state->input_buffer->size) {
             parse_state->pos += 1;
             _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);
         } else {
-            _ = NULL;
+            _ = meta_action_create_invalid();
         }
         if (_) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_ruleName(MetaParseState* parse_state) {
@@ -3984,7 +3984,7 @@ MetaAction* meta_rule_ruleName(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_variableName(MetaParseState* parse_state) {
@@ -4002,7 +4002,7 @@ MetaAction* meta_rule_variableName(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_name(MetaParseState* parse_state) {
@@ -4026,7 +4026,7 @@ MetaAction* meta_rule_name(MetaParseState* parse_state) {
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_char(parse_state);
-            if (_ == NULL) {
+            if (!meta_action_valid(_)) {
                 parse_state->pos = star_pos;
                 break;
             }
@@ -4037,7 +4037,7 @@ MetaAction* meta_rule_name(MetaParseState* parse_state) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_char(MetaParseState* parse_state) {
@@ -4062,7 +4062,7 @@ MetaAction* meta_rule_char(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_lower(MetaParseState* parse_state) {
@@ -4082,7 +4082,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4095,7 +4095,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4108,7 +4108,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4121,7 +4121,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4134,7 +4134,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4147,7 +4147,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4160,7 +4160,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4173,7 +4173,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4186,7 +4186,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4199,7 +4199,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4212,7 +4212,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4225,7 +4225,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4238,7 +4238,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4251,7 +4251,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4264,7 +4264,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4277,7 +4277,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4290,7 +4290,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4303,7 +4303,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4316,7 +4316,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4329,7 +4329,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4342,7 +4342,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4355,7 +4355,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4368,7 +4368,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4381,7 +4381,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4394,7 +4394,7 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4407,12 +4407,12 @@ MetaAction* meta_rule_lower(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_upper(MetaParseState* parse_state) {
@@ -4432,7 +4432,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4445,7 +4445,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4458,7 +4458,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4471,7 +4471,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4484,7 +4484,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4497,7 +4497,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4510,7 +4510,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4523,7 +4523,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4536,7 +4536,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4549,7 +4549,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4562,7 +4562,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4575,7 +4575,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4588,7 +4588,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4601,7 +4601,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4614,7 +4614,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4627,7 +4627,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4640,7 +4640,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4653,7 +4653,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4666,7 +4666,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4679,7 +4679,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4692,7 +4692,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4705,7 +4705,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4718,7 +4718,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4731,7 +4731,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4744,7 +4744,7 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4757,12 +4757,12 @@ MetaAction* meta_rule_upper(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_number(MetaParseState* parse_state) {
@@ -4786,7 +4786,7 @@ MetaAction* meta_rule_number(MetaParseState* parse_state) {
         while (1) {
             star_pos = parse_state->pos;
             _ = meta_rule_digit(parse_state);
-            if (_ == NULL) {
+            if (!meta_action_valid(_)) {
                 parse_state->pos = star_pos;
                 break;
             }
@@ -4797,7 +4797,7 @@ MetaAction* meta_rule_number(MetaParseState* parse_state) {
             return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
         }
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_space(MetaParseState* parse_state) {
@@ -4819,7 +4819,7 @@ MetaAction* meta_rule_space(MetaParseState* parse_state) {
     while (1) {
         star_pos = parse_state->pos;
         _ = meta_rule_spacechar(parse_state);
-        if (_ == NULL) {
+        if (!meta_action_valid(_)) {
             parse_state->pos = star_pos;
             break;
         }
@@ -4829,7 +4829,7 @@ MetaAction* meta_rule_space(MetaParseState* parse_state) {
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 MetaAction* meta_rule_spacechar(MetaParseState* parse_state) {
@@ -4849,7 +4849,7 @@ MetaAction* meta_rule_spacechar(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
@@ -4862,12 +4862,12 @@ MetaAction* meta_rule_spacechar(MetaParseState* parse_state) {
         parse_state->pos += data->size;
         _ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
     } else {
-        _ = NULL;
+        _ = meta_action_create_invalid();
     }
     if (_) {
         return meta_register_parse(parse_state->arena, meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos), parse_state, highlight);
     }
-    return NULL;
+    return meta_action_create_invalid();
 }
 
 #ifndef NO_MAIN
@@ -4881,7 +4881,7 @@ int main(void) {
     meta_Runtime* runtime = meta_create_runtime(parse_state->arena);
     MetaAction* action = meta_rule_main(parse_state);
     ListItem* placeholder_item;
-    if (action == NULL) {
+    if (!meta_action_valid(action)) {
         fprintf(stderr, "ERROR: parse error [pos=%d] [size=%d]", parse_state->pos, parse_state->input_buffer->size);
         exit(1);
     }
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index f9c84a2..1714a68 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -63,7 +63,7 @@ file = rule*:xs space !. -> {
         <prefix "Runtime* runtime = " <prefix "create_runtime(parse_state->arena);\n"
         "MetaAction* action = " <prefix "rule_main(parse_state);\n"
         "ListItem* placeholder_item;\n"
-        "if (action == NULL) {\n" >
+        "if (!meta_action_valid(action)) {\n" >
             "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n"
             "exit(1);\n"
         < "}\n"
@@ -103,7 +103,7 @@ rule = space ruleName:x highlight:h space '=' space ors:y space ';' -> {
         $ruleVars
         <ruleVars
         y
-        "return NULL;\n"
+        "return meta_action_create_invalid();\n"
     < "}\n"
     "\n"
 };
@@ -165,10 +165,10 @@ matchExpr =
         }
         "nlookahead_pos = parse_state->pos;\n"
         x
-        "if (_ == NULL) {\n" >
-            "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);\n"
+        "if (meta_action_valid(_)) {\n" >
+            "_ = meta_action_create_invalid();\n"
         < "} else {\n" >
-            "_ = NULL;\n"
+            "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);\n"
         < "}\n"
         "parse_state->pos = nlookahead_pos;\n"
     }
@@ -178,10 +178,10 @@ matchExpr =
         }
         "lookahead_pos = parse_state->pos;\n"
         x
-        "if (_ == NULL) {\n" >
-            "_ = NULL;\n"
-        < "} else {\n" >
+        "if (meta_action_valid(_)) {\n" >
             "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, 0, 0);\n"
+        < "} else {\n" >
+            "_ = meta_action_create_invalid();\n"
         < "}\n"
         "parse_state->pos = lookahead_pos;\n"
     }
@@ -210,7 +210,7 @@ matchExprRepeat =
         "while (1) {\n" >
             "star_pos = parse_state->pos;\n"
             x
-            "if (_ == NULL) {\n" >
+            "if (!meta_action_valid(_)) {\n" >
                 "parse_state->pos = star_pos;\n"
                 "break;\n"
             < "}\n"
@@ -263,7 +263,7 @@ matchExprPrimitive =
             "parse_state->pos += 1;\n"
             "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"
         < "} else {\n" >
-            "_ = NULL;\n"
+            "_ = meta_action_create_invalid();\n"
         < "}\n"
     }
     | opAny -> {
@@ -271,7 +271,7 @@ matchExprPrimitive =
             "parse_state->pos += 1;\n"
             "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"
         < "} else {\n" >
-            "_ = NULL;\n"
+            "_ = meta_action_create_invalid();\n"
         < "}\n"
     }
     | charString:x -> {
@@ -283,7 +283,7 @@ matchExprPrimitive =
             "parse_state->pos += data->size;\n"
             "_ = meta_action_create(parse_state->arena, NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"
         < "} else {\n" >
-            "_ = NULL;\n"
+            "_ = meta_action_create_invalid();\n"
         < "}\n"
     }
     ;

commit 7926a4eda14fb24b45877f7620a220e436d7ebc7
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 22 17:00:13 2025 +0100

    Add dotall to experiment with memory

diff --git a/make.sh b/make.sh
index d75ec51..b16739f 100755
--- a/make.sh
+++ b/make.sh
@@ -10,6 +10,14 @@ main() {
     experiments
     examples
     highlight
+    dotall
+}
+
+dotall() {
+    banner "dotall"
+    meta_compile src/dotall.meta out/dotall.c
+    c_compile out/dotall.c out/dotall
+    echo 12345 | ./out/dotall
 }
 
 experiments() {
diff --git a/src/dotall.meta b/src/dotall.meta
new file mode 100644
index 0000000..591d7f0
--- /dev/null
+++ b/src/dotall.meta
@@ -0,0 +1,3 @@
+main = any*;
+
+any = .;