Rickard's Projects

This site hosts my projects.

Projects

Recent events

2025-11-08 07:58 Rickard pushed to rlworkbench

commit 82876793e1a7ff5936c36bfddb18c6f87d465fde
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Sat Nov 8 07:57:10 2025 +0100

    Print memory usage

diff --git a/src/meta/meta.c b/src/meta/meta.c
index 592270a..7b0d430 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -581,417 +581,420 @@ static char symbol_296[] = "run_action(placeholder->action, runtime);\n";
 static char symbol_297[] = "placeholder = placeholder->next;\n";
 static char symbol_298[] = "}\n";
 static char symbol_299[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
-static char symbol_300[] = "return 0;\n";
-static char symbol_301[] = "}\n";
-static char symbol_302[] = "x";
-static char symbol_303[] = "=";
-static char symbol_304[] = "y";
-static char symbol_305[] = ";";
-static char symbol_306[] = "struct Action* rule_";
-static char symbol_307[] = "x";
-static char symbol_308[] = "(struct ParseState* parse_state);\n";
+static char symbol_300[] = "fprintf(stderr, \"Input size        = %d\\n\", parse_state->input_buffer->size);\n";
+static char symbol_301[] = "fprintf(stderr, \"Total memory size = %d\\n\", arena_pos);\n";
+static char symbol_302[] = "fprintf(stderr, \"Ratio             = %d\\n\", arena_pos/parse_state->input_buffer->size);\n";
+static char symbol_303[] = "return 0;\n";
+static char symbol_304[] = "}\n";
+static char symbol_305[] = "x";
+static char symbol_306[] = "=";
+static char symbol_307[] = "y";
+static char symbol_308[] = ";";
 static char symbol_309[] = "struct Action* rule_";
 static char symbol_310[] = "x";
-static char symbol_311[] = "(struct ParseState* parse_state) {\n";
-static char symbol_312[] = "unsigned int or_backtrack_pos;\n";
-static char symbol_313[] = "unsigned int action_start_pos;\n";
-static char symbol_314[] = "struct Action* _;\n";
-static char symbol_315[] = "y";
-static char symbol_316[] = "return NULL;\n";
-static char symbol_317[] = "}\n";
-static char symbol_318[] = "\n";
-static char symbol_319[] = "x";
-static char symbol_320[] = "xs";
-static char symbol_321[] = "or_backtrack_pos = parse_state->pos;\n";
+static char symbol_311[] = "(struct ParseState* parse_state);\n";
+static char symbol_312[] = "struct Action* rule_";
+static char symbol_313[] = "x";
+static char symbol_314[] = "(struct ParseState* parse_state) {\n";
+static char symbol_315[] = "unsigned int or_backtrack_pos;\n";
+static char symbol_316[] = "unsigned int action_start_pos;\n";
+static char symbol_317[] = "struct Action* _;\n";
+static char symbol_318[] = "y";
+static char symbol_319[] = "return NULL;\n";
+static char symbol_320[] = "}\n";
+static char symbol_321[] = "\n";
 static char symbol_322[] = "x";
 static char symbol_323[] = "xs";
-static char symbol_324[] = "x";
+static char symbol_324[] = "or_backtrack_pos = parse_state->pos;\n";
 static char symbol_325[] = "x";
-static char symbol_326[] = "|";
+static char symbol_326[] = "xs";
 static char symbol_327[] = "x";
-static char symbol_328[] = "parse_state->pos = or_backtrack_pos;\n";
-static char symbol_329[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_328[] = "x";
+static char symbol_329[] = "|";
 static char symbol_330[] = "x";
-static char symbol_331[] = "x";
-static char symbol_332[] = "y";
+static char symbol_331[] = "parse_state->pos = or_backtrack_pos;\n";
+static char symbol_332[] = "action_start_pos = parse_state->pos;\n";
 static char symbol_333[] = "x";
-static char symbol_334[] = "if (_) {\n";
+static char symbol_334[] = "x";
 static char symbol_335[] = "y";
-static char symbol_336[] = "}\n";
-static char symbol_337[] = "y";
+static char symbol_336[] = "x";
+static char symbol_337[] = "if (_) {\n";
 static char symbol_338[] = "y";
-static char symbol_339[] = "!";
-static char symbol_340[] = "x";
-static char symbol_341[] = "unsigned int nlookahead_pos;\n";
-static char symbol_342[] = "unsigned int nlookahead_pos;\n";
-static char symbol_343[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_344[] = "x";
-static char symbol_345[] = "if (_ == NULL) {\n";
-static char symbol_346[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_347[] = "} else {\n";
-static char symbol_348[] = "_ = NULL;\n";
-static char symbol_349[] = "}\n";
-static char symbol_350[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_351[] = "&";
-static char symbol_352[] = "x";
-static char symbol_353[] = "unsigned int lookahead_pos;\n";
-static char symbol_354[] = "unsigned int lookahead_pos;\n";
-static char symbol_355[] = "lookahead_pos = parse_state->pos;\n";
-static char symbol_356[] = "x";
-static char symbol_357[] = "if (_ == NULL) {\n";
-static char symbol_358[] = "_ = NULL;\n";
-static char symbol_359[] = "} else {\n";
-static char symbol_360[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_361[] = "}\n";
-static char symbol_362[] = "parse_state->pos = lookahead_pos;\n";
-static char symbol_363[] = "x";
-static char symbol_364[] = "y";
-static char symbol_365[] = "x";
-static char symbol_366[] = "y";
-static char symbol_367[] = ":";
+static char symbol_339[] = "}\n";
+static char symbol_340[] = "y";
+static char symbol_341[] = "y";
+static char symbol_342[] = "!";
+static char symbol_343[] = "x";
+static char symbol_344[] = "unsigned int nlookahead_pos;\n";
+static char symbol_345[] = "unsigned int nlookahead_pos;\n";
+static char symbol_346[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_347[] = "x";
+static char symbol_348[] = "if (_ == NULL) {\n";
+static char symbol_349[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_350[] = "} else {\n";
+static char symbol_351[] = "_ = NULL;\n";
+static char symbol_352[] = "}\n";
+static char symbol_353[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_354[] = "&";
+static char symbol_355[] = "x";
+static char symbol_356[] = "unsigned int lookahead_pos;\n";
+static char symbol_357[] = "unsigned int lookahead_pos;\n";
+static char symbol_358[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_359[] = "x";
+static char symbol_360[] = "if (_ == NULL) {\n";
+static char symbol_361[] = "_ = NULL;\n";
+static char symbol_362[] = "} else {\n";
+static char symbol_363[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_364[] = "}\n";
+static char symbol_365[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_366[] = "x";
+static char symbol_367[] = "y";
 static char symbol_368[] = "x";
-static char symbol_369[] = "append_named_action(variables, ";
-static char symbol_370[] = "x";
-static char symbol_371[] = ", _);\n";
-static char symbol_372[] = "x";
-static char symbol_373[] = "*";
-static char symbol_374[] = "struct Variables* star_variables;\n";
-static char symbol_375[] = "struct Variables* star_variables;\n";
-static char symbol_376[] = "unsigned int star_pos;\n";
-static char symbol_377[] = "unsigned int star_pos;\n";
-static char symbol_378[] = "unsigned int star_start_pos;\n";
-static char symbol_379[] = "unsigned int star_start_pos;\n";
-static char symbol_380[] = "star_variables = create_variables();\n";
-static char symbol_381[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_382[] = "while (1) {\n";
-static char symbol_383[] = "star_pos = parse_state->pos;\n";
-static char symbol_384[] = "x";
-static char symbol_385[] = "if (_ == NULL) {\n";
-static char symbol_386[] = "parse_state->pos = star_pos;\n";
-static char symbol_387[] = "break;\n";
-static char symbol_388[] = "}\n";
-static char symbol_389[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_390[] = "}\n";
-static char symbol_391[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char symbol_392[] = "x";
-static char symbol_393[] = "x";
-static char symbol_394[] = "_";
+static char symbol_369[] = "y";
+static char symbol_370[] = ":";
+static char symbol_371[] = "x";
+static char symbol_372[] = "append_named_action(variables, ";
+static char symbol_373[] = "x";
+static char symbol_374[] = ", _);\n";
+static char symbol_375[] = "x";
+static char symbol_376[] = "*";
+static char symbol_377[] = "struct Variables* star_variables;\n";
+static char symbol_378[] = "struct Variables* star_variables;\n";
+static char symbol_379[] = "unsigned int star_pos;\n";
+static char symbol_380[] = "unsigned int star_pos;\n";
+static char symbol_381[] = "unsigned int star_start_pos;\n";
+static char symbol_382[] = "unsigned int star_start_pos;\n";
+static char symbol_383[] = "star_variables = create_variables();\n";
+static char symbol_384[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_385[] = "while (1) {\n";
+static char symbol_386[] = "star_pos = parse_state->pos;\n";
+static char symbol_387[] = "x";
+static char symbol_388[] = "if (_ == NULL) {\n";
+static char symbol_389[] = "parse_state->pos = star_pos;\n";
+static char symbol_390[] = "break;\n";
+static char symbol_391[] = "}\n";
+static char symbol_392[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_393[] = "}\n";
+static char symbol_394[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
 static char symbol_395[] = "x";
-static char symbol_396[] = "bitpattern <<= 1;\n";
-static char symbol_397[] = "bitmask <<= 1;\n";
+static char symbol_396[] = "x";
+static char symbol_397[] = "_";
 static char symbol_398[] = "x";
-static char symbol_399[] = "x";
-static char symbol_400[] = "x";
-static char symbol_401[] = "bitmask |= 1;\n";
-static char symbol_402[] = "0";
-static char symbol_403[] = "1";
-static char symbol_404[] = "bitpattern |= 1;\n";
-static char symbol_405[] = "x";
-static char symbol_406[] = "_ = rule_";
-static char symbol_407[] = "x";
-static char symbol_408[] = "(parse_state);\n";
-static char symbol_409[] = "0b";
-static char symbol_410[] = "xs";
-static char symbol_411[] = "unsigned char bitpattern;\n";
-static char symbol_412[] = "unsigned char bitpattern;\n";
-static char symbol_413[] = "unsigned char bitmask;\n";
-static char symbol_414[] = "unsigned char bitmask;\n";
-static char symbol_415[] = "bitpattern = 0;\n";
-static char symbol_416[] = "bitmask = 0;\n";
-static char symbol_417[] = "xs";
-static char symbol_418[] = "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 symbol_419[] = "parse_state->pos += 1;\n";
-static char symbol_420[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_421[] = "} else {\n";
-static char symbol_422[] = "_ = NULL;\n";
-static char symbol_423[] = "}\n";
-static char symbol_424[] = ".";
-static char symbol_425[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_426[] = "parse_state->pos += 1;\n";
-static char symbol_427[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_428[] = "} else {\n";
-static char symbol_429[] = "_ = NULL;\n";
-static char symbol_430[] = "}\n";
-static char symbol_431[] = "x";
-static char symbol_432[] = "struct Buffer* data;\n";
-static char symbol_433[] = "struct Buffer* data;\n";
-static char symbol_434[] = "data = ";
-static char symbol_435[] = "x";
-static char symbol_436[] = ";\n";
-static char symbol_437[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_438[] = "parse_state->pos += data->size;\n";
-static char symbol_439[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_440[] = "} else {\n";
-static char symbol_441[] = "_ = NULL;\n";
-static char symbol_442[] = "}\n";
-static char symbol_443[] = "->";
-static char symbol_444[] = "{";
-static char symbol_445[] = "xs";
-static char symbol_446[] = "}";
-static char symbol_447[] = "void action_";
-static char symbol_448[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_449[] = "xs";
-static char symbol_450[] = "}\n";
-static char symbol_451[] = "\n";
-static char symbol_452[] = "struct Variables* variables;\n";
-static char symbol_453[] = "struct Variables* variables;\n";
-static char symbol_454[] = "variables = create_variables();\n";
-static char symbol_455[] = "variables = create_variables();\n";
-static char symbol_456[] = "return create_action(action_";
-static char symbol_457[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_458[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_459[] = "unseen(";
-static char symbol_460[] = "x";
-static char symbol_461[] = ") -> {";
-static char symbol_462[] = "ys";
-static char symbol_463[] = "}";
-static char symbol_464[] = "struct Action* action;\n";
-static char symbol_465[] = "struct Action* action;\n";
-static char symbol_466[] = "action = lookup_action(variables, ";
-static char symbol_467[] = "x";
-static char symbol_468[] = ");\n";
-static char symbol_469[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_470[] = "ys";
-static char symbol_471[] = "}\n";
-static char symbol_472[] = "unique(";
-static char symbol_473[] = "x";
-static char symbol_474[] = ")";
-static char symbol_475[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_399[] = "bitpattern <<= 1;\n";
+static char symbol_400[] = "bitmask <<= 1;\n";
+static char symbol_401[] = "x";
+static char symbol_402[] = "x";
+static char symbol_403[] = "x";
+static char symbol_404[] = "bitmask |= 1;\n";
+static char symbol_405[] = "0";
+static char symbol_406[] = "1";
+static char symbol_407[] = "bitpattern |= 1;\n";
+static char symbol_408[] = "x";
+static char symbol_409[] = "_ = rule_";
+static char symbol_410[] = "x";
+static char symbol_411[] = "(parse_state);\n";
+static char symbol_412[] = "0b";
+static char symbol_413[] = "xs";
+static char symbol_414[] = "unsigned char bitpattern;\n";
+static char symbol_415[] = "unsigned char bitpattern;\n";
+static char symbol_416[] = "unsigned char bitmask;\n";
+static char symbol_417[] = "unsigned char bitmask;\n";
+static char symbol_418[] = "bitpattern = 0;\n";
+static char symbol_419[] = "bitmask = 0;\n";
+static char symbol_420[] = "xs";
+static char symbol_421[] = "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 symbol_422[] = "parse_state->pos += 1;\n";
+static char symbol_423[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_424[] = "} else {\n";
+static char symbol_425[] = "_ = NULL;\n";
+static char symbol_426[] = "}\n";
+static char symbol_427[] = ".";
+static char symbol_428[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_429[] = "parse_state->pos += 1;\n";
+static char symbol_430[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_431[] = "} else {\n";
+static char symbol_432[] = "_ = NULL;\n";
+static char symbol_433[] = "}\n";
+static char symbol_434[] = "x";
+static char symbol_435[] = "struct Buffer* data;\n";
+static char symbol_436[] = "struct Buffer* data;\n";
+static char symbol_437[] = "data = ";
+static char symbol_438[] = "x";
+static char symbol_439[] = ";\n";
+static char symbol_440[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_441[] = "parse_state->pos += data->size;\n";
+static char symbol_442[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_443[] = "} else {\n";
+static char symbol_444[] = "_ = NULL;\n";
+static char symbol_445[] = "}\n";
+static char symbol_446[] = "->";
+static char symbol_447[] = "{";
+static char symbol_448[] = "xs";
+static char symbol_449[] = "}";
+static char symbol_450[] = "void action_";
+static char symbol_451[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_452[] = "xs";
+static char symbol_453[] = "}\n";
+static char symbol_454[] = "\n";
+static char symbol_455[] = "struct Variables* variables;\n";
+static char symbol_456[] = "struct Variables* variables;\n";
+static char symbol_457[] = "variables = create_variables();\n";
+static char symbol_458[] = "variables = create_variables();\n";
+static char symbol_459[] = "return create_action(action_";
+static char symbol_460[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_461[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_462[] = "unseen(";
+static char symbol_463[] = "x";
+static char symbol_464[] = ") -> {";
+static char symbol_465[] = "ys";
+static char symbol_466[] = "}";
+static char symbol_467[] = "struct Action* action;\n";
+static char symbol_468[] = "struct Action* action;\n";
+static char symbol_469[] = "action = lookup_action(variables, ";
+static char symbol_470[] = "x";
+static char symbol_471[] = ");\n";
+static char symbol_472[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_473[] = "ys";
+static char symbol_474[] = "}\n";
+static char symbol_475[] = "unique(";
 static char symbol_476[] = "x";
-static char symbol_477[] = ")) {\n";
-static char symbol_478[] = "append_data(runtime->current_chunks, ";
+static char symbol_477[] = ")";
+static char symbol_478[] = "if (!seen(runtime->current_chunks, ";
 static char symbol_479[] = "x";
-static char symbol_480[] = ", 0, NULL);\n";
-static char symbol_481[] = "}\n";
-static char symbol_482[] = ">";
-static char symbol_483[] = "x";
-static char symbol_484[] = "{";
-static char symbol_485[] = "ys";
-static char symbol_486[] = "}";
-static char symbol_487[] = "struct Chunks* last_chunks;\n";
-static char symbol_488[] = "struct Chunks* last_chunks;\n";
-static char symbol_489[] = "struct Chunks* chunks;\n";
-static char symbol_490[] = "struct Chunks* chunks;\n";
-static char symbol_491[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_492[] = "chunks = runtime->named_chunks_";
-static char symbol_493[] = "x";
-static char symbol_494[] = ";\n";
-static char symbol_495[] = "runtime->current_chunks = chunks;\n";
-static char symbol_496[] = "ys";
-static char symbol_497[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_498[] = "<";
-static char symbol_499[] = "x";
-static char symbol_500[] = "struct Chunks* chunks;\n";
-static char symbol_501[] = "struct Chunks* chunks;\n";
-static char symbol_502[] = "chunks = create_chunks();\n";
-static char symbol_503[] = "runtime->named_chunks_";
-static char symbol_504[] = "x";
-static char symbol_505[] = " = chunks;\n";
-static char symbol_506[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_480[] = ")) {\n";
+static char symbol_481[] = "append_data(runtime->current_chunks, ";
+static char symbol_482[] = "x";
+static char symbol_483[] = ", 0, NULL);\n";
+static char symbol_484[] = "}\n";
+static char symbol_485[] = ">";
+static char symbol_486[] = "x";
+static char symbol_487[] = "{";
+static char symbol_488[] = "ys";
+static char symbol_489[] = "}";
+static char symbol_490[] = "struct Chunks* last_chunks;\n";
+static char symbol_491[] = "struct Chunks* last_chunks;\n";
+static char symbol_492[] = "struct Chunks* chunks;\n";
+static char symbol_493[] = "struct Chunks* chunks;\n";
+static char symbol_494[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_495[] = "chunks = runtime->named_chunks_";
+static char symbol_496[] = "x";
+static char symbol_497[] = ";\n";
+static char symbol_498[] = "runtime->current_chunks = chunks;\n";
+static char symbol_499[] = "ys";
+static char symbol_500[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_501[] = "<";
+static char symbol_502[] = "x";
+static char symbol_503[] = "struct Chunks* chunks;\n";
+static char symbol_504[] = "struct Chunks* chunks;\n";
+static char symbol_505[] = "chunks = create_chunks();\n";
+static char symbol_506[] = "runtime->named_chunks_";
 static char symbol_507[] = "x";
-static char symbol_508[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_509[] = "x";
-static char symbol_510[] = "), 0, NULL);\n";
-static char symbol_511[] = "x";
-static char symbol_512[] = "run_action(lookup_action(variables, ";
-static char symbol_513[] = "x";
-static char symbol_514[] = "), runtime);\n";
-static char symbol_515[] = "x";
-static char symbol_516[] = "void placeholder_";
-static char symbol_517[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_518[] = "void placeholder_";
-static char symbol_519[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_520[] = "x";
-static char symbol_521[] = "}\n";
-static char symbol_522[] = "\n";
-static char symbol_523[] = "struct Chunks* chunks;\n";
-static char symbol_524[] = "struct Chunks* chunks;\n";
-static char symbol_525[] = "chunks = create_chunks();\n";
-static char symbol_526[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_527[] = ", variables, NULL, 0, 0));\n";
-static char symbol_528[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_529[] = "x";
-static char symbol_530[] = "append_data(runtime->current_chunks, ";
-static char symbol_531[] = "x";
-static char symbol_532[] = ", 0, NULL);\n";
-static char symbol_533[] = "#";
+static char symbol_508[] = " = chunks;\n";
+static char symbol_509[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_510[] = "x";
+static char symbol_511[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_512[] = "x";
+static char symbol_513[] = "), 0, NULL);\n";
+static char symbol_514[] = "x";
+static char symbol_515[] = "run_action(lookup_action(variables, ";
+static char symbol_516[] = "x";
+static char symbol_517[] = "), runtime);\n";
+static char symbol_518[] = "x";
+static char symbol_519[] = "void placeholder_";
+static char symbol_520[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_521[] = "void placeholder_";
+static char symbol_522[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_523[] = "x";
+static char symbol_524[] = "}\n";
+static char symbol_525[] = "\n";
+static char symbol_526[] = "struct Chunks* chunks;\n";
+static char symbol_527[] = "struct Chunks* chunks;\n";
+static char symbol_528[] = "chunks = create_chunks();\n";
+static char symbol_529[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_530[] = ", variables, NULL, 0, 0));\n";
+static char symbol_531[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_532[] = "x";
+static char symbol_533[] = "append_data(runtime->current_chunks, ";
 static char symbol_534[] = "x";
-static char symbol_535[] = "(";
-static char symbol_536[] = "y";
-static char symbol_537[] = " ";
-static char symbol_538[] = "z";
-static char symbol_539[] = ")";
-static char symbol_540[] = "runtime->W_";
-static char symbol_541[] = "y";
-static char symbol_542[] = " = ";
-static char symbol_543[] = "x";
-static char symbol_544[] = "(runtime->W_";
-static char symbol_545[] = "y";
-static char symbol_546[] = " ? runtime->W_";
-static char symbol_547[] = "y";
-static char symbol_548[] = " : 0, ";
-static char symbol_549[] = "z";
-static char symbol_550[] = ");\n";
-static char symbol_551[] = ">";
-static char symbol_552[] = "xs";
-static char symbol_553[] = "<";
-static char symbol_554[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_535[] = ", 0, NULL);\n";
+static char symbol_536[] = "#";
+static char symbol_537[] = "x";
+static char symbol_538[] = "(";
+static char symbol_539[] = "y";
+static char symbol_540[] = " ";
+static char symbol_541[] = "z";
+static char symbol_542[] = ")";
+static char symbol_543[] = "runtime->W_";
+static char symbol_544[] = "y";
+static char symbol_545[] = " = ";
+static char symbol_546[] = "x";
+static char symbol_547[] = "(runtime->W_";
+static char symbol_548[] = "y";
+static char symbol_549[] = " ? runtime->W_";
+static char symbol_550[] = "y";
+static char symbol_551[] = " : 0, ";
+static char symbol_552[] = "z";
+static char symbol_553[] = ");\n";
+static char symbol_554[] = ">";
 static char symbol_555[] = "xs";
-static char symbol_556[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_557[] = "x";
-static char symbol_558[] = "x";
-static char symbol_559[] = "struct Chunks* named_chunks_";
+static char symbol_556[] = "<";
+static char symbol_557[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_558[] = "xs";
+static char symbol_559[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
 static char symbol_560[] = "x";
-static char symbol_561[] = ";\n";
-static char symbol_562[] = "x";
+static char symbol_561[] = "x";
+static char symbol_562[] = "struct Chunks* named_chunks_";
 static char symbol_563[] = "x";
-static char symbol_564[] = "x";
-static char symbol_565[] = "0";
-static char symbol_566[] = "1";
-static char symbol_567[] = "2";
-static char symbol_568[] = "3";
-static char symbol_569[] = "4";
-static char symbol_570[] = "5";
-static char symbol_571[] = "6";
-static char symbol_572[] = "7";
-static char symbol_573[] = "8";
-static char symbol_574[] = "9";
-static char symbol_575[] = "{";
-static char symbol_576[] = "x";
-static char symbol_577[] = "*";
-static char symbol_578[] = "y";
-static char symbol_579[] = "}";
-static char symbol_580[] = "int i;\n";
-static char symbol_581[] = "int i;\n";
-static char symbol_582[] = "for (i=0; i < ";
-static char symbol_583[] = "y";
-static char symbol_584[] = "; i++) {\n";
-static char symbol_585[] = "append_data(runtime->current_chunks, ";
-static char symbol_586[] = "x";
-static char symbol_587[] = ", 0, NULL);\n";
-static char symbol_588[] = "}\n";
+static char symbol_564[] = ";\n";
+static char symbol_565[] = "x";
+static char symbol_566[] = "x";
+static char symbol_567[] = "x";
+static char symbol_568[] = "0";
+static char symbol_569[] = "1";
+static char symbol_570[] = "2";
+static char symbol_571[] = "3";
+static char symbol_572[] = "4";
+static char symbol_573[] = "5";
+static char symbol_574[] = "6";
+static char symbol_575[] = "7";
+static char symbol_576[] = "8";
+static char symbol_577[] = "9";
+static char symbol_578[] = "{";
+static char symbol_579[] = "x";
+static char symbol_580[] = "*";
+static char symbol_581[] = "y";
+static char symbol_582[] = "}";
+static char symbol_583[] = "int i;\n";
+static char symbol_584[] = "int i;\n";
+static char symbol_585[] = "for (i=0; i < ";
+static char symbol_586[] = "y";
+static char symbol_587[] = "; i++) {\n";
+static char symbol_588[] = "append_data(runtime->current_chunks, ";
 static char symbol_589[] = "x";
-static char symbol_590[] = "(runtime->W_";
-static char symbol_591[] = "x";
-static char symbol_592[] = " ? runtime->W_";
-static char symbol_593[] = "x";
-static char symbol_594[] = " : 0)";
-static char symbol_595[] = "(";
+static char symbol_590[] = ", 0, NULL);\n";
+static char symbol_591[] = "}\n";
+static char symbol_592[] = "x";
+static char symbol_593[] = "(runtime->W_";
+static char symbol_594[] = "x";
+static char symbol_595[] = " ? runtime->W_";
 static char symbol_596[] = "x";
-static char symbol_597[] = "-";
-static char symbol_598[] = "y";
-static char symbol_599[] = ")";
-static char symbol_600[] = "((runtime->W_";
-static char symbol_601[] = "x";
-static char symbol_602[] = " ? runtime->W_";
-static char symbol_603[] = "x";
-static char symbol_604[] = " : 0)-";
-static char symbol_605[] = "y";
-static char symbol_606[] = ")";
-static char symbol_607[] = "\"";
-static char symbol_608[] = "xs";
-static char symbol_609[] = "\"";
-static char symbol_610[] = "static char symbol_";
-static char symbol_611[] = "[] = \"";
-static char symbol_612[] = "xs";
-static char symbol_613[] = "\";\n";
-static char symbol_614[] = "buffer_from_cstring(symbol_";
-static char symbol_615[] = ", sizeof(symbol_";
-static char symbol_616[] = ")-1)";
-static char symbol_617[] = "x";
-static char symbol_618[] = "xs";
-static char symbol_619[] = "lookup_action(variables, ";
+static char symbol_597[] = " : 0)";
+static char symbol_598[] = "(";
+static char symbol_599[] = "x";
+static char symbol_600[] = "-";
+static char symbol_601[] = "y";
+static char symbol_602[] = ")";
+static char symbol_603[] = "((runtime->W_";
+static char symbol_604[] = "x";
+static char symbol_605[] = " ? runtime->W_";
+static char symbol_606[] = "x";
+static char symbol_607[] = " : 0)-";
+static char symbol_608[] = "y";
+static char symbol_609[] = ")";
+static char symbol_610[] = "\"";
+static char symbol_611[] = "xs";
+static char symbol_612[] = "\"";
+static char symbol_613[] = "static char symbol_";
+static char symbol_614[] = "[] = \"";
+static char symbol_615[] = "xs";
+static char symbol_616[] = "\";\n";
+static char symbol_617[] = "buffer_from_cstring(symbol_";
+static char symbol_618[] = ", sizeof(symbol_";
+static char symbol_619[] = ")-1)";
 static char symbol_620[] = "x";
-static char symbol_621[] = ")";
-static char symbol_622[] = "xs";
-static char symbol_623[] = ".";
-static char symbol_624[] = "x";
-static char symbol_625[] = "->";
-static char symbol_626[] = "x";
-static char symbol_627[] = "W[";
-static char symbol_628[] = "x";
-static char symbol_629[] = "]";
-static char symbol_630[] = "x";
-static char symbol_631[] = "unsigned int W_";
-static char symbol_632[] = "x";
-static char symbol_633[] = ";\n";
-static char symbol_634[] = "x";
-static char symbol_635[] = "\\\"";
-static char symbol_636[] = "\"";
-static char symbol_637[] = "xs";
-static char symbol_638[] = "static char symbol_";
-static char symbol_639[] = "[] = \"";
+static char symbol_621[] = "xs";
+static char symbol_622[] = "lookup_action(variables, ";
+static char symbol_623[] = "x";
+static char symbol_624[] = ")";
+static char symbol_625[] = "xs";
+static char symbol_626[] = ".";
+static char symbol_627[] = "x";
+static char symbol_628[] = "->";
+static char symbol_629[] = "x";
+static char symbol_630[] = "W[";
+static char symbol_631[] = "x";
+static char symbol_632[] = "]";
+static char symbol_633[] = "x";
+static char symbol_634[] = "unsigned int W_";
+static char symbol_635[] = "x";
+static char symbol_636[] = ";\n";
+static char symbol_637[] = "x";
+static char symbol_638[] = "\\\"";
+static char symbol_639[] = "\"";
 static char symbol_640[] = "xs";
-static char symbol_641[] = "\";\n";
-static char symbol_642[] = "buffer_from_cstring(symbol_";
-static char symbol_643[] = ", sizeof(symbol_";
-static char symbol_644[] = ")-1)";
-static char symbol_645[] = "\'";
-static char symbol_646[] = "\\\'";
-static char symbol_647[] = "\"";
-static char symbol_648[] = "\\\"";
-static char symbol_649[] = "x";
-static char symbol_650[] = "static char symbol_";
-static char symbol_651[] = "[] = \"";
+static char symbol_641[] = "static char symbol_";
+static char symbol_642[] = "[] = \"";
+static char symbol_643[] = "xs";
+static char symbol_644[] = "\";\n";
+static char symbol_645[] = "buffer_from_cstring(symbol_";
+static char symbol_646[] = ", sizeof(symbol_";
+static char symbol_647[] = ")-1)";
+static char symbol_648[] = "\'";
+static char symbol_649[] = "\\\'";
+static char symbol_650[] = "\"";
+static char symbol_651[] = "\\\"";
 static char symbol_652[] = "x";
-static char symbol_653[] = "\";\n";
-static char symbol_654[] = "buffer_from_cstring(symbol_";
-static char symbol_655[] = ", sizeof(symbol_";
-static char symbol_656[] = ")-1)";
-static char symbol_657[] = "a";
-static char symbol_658[] = "b";
-static char symbol_659[] = "c";
-static char symbol_660[] = "d";
-static char symbol_661[] = "e";
-static char symbol_662[] = "f";
-static char symbol_663[] = "g";
-static char symbol_664[] = "h";
-static char symbol_665[] = "i";
-static char symbol_666[] = "j";
-static char symbol_667[] = "k";
-static char symbol_668[] = "l";
-static char symbol_669[] = "m";
-static char symbol_670[] = "n";
-static char symbol_671[] = "o";
-static char symbol_672[] = "p";
-static char symbol_673[] = "q";
-static char symbol_674[] = "r";
-static char symbol_675[] = "s";
-static char symbol_676[] = "t";
-static char symbol_677[] = "u";
-static char symbol_678[] = "v";
-static char symbol_679[] = "w";
-static char symbol_680[] = "x";
-static char symbol_681[] = "y";
-static char symbol_682[] = "z";
-static char symbol_683[] = "A";
-static char symbol_684[] = "B";
-static char symbol_685[] = "C";
-static char symbol_686[] = "D";
-static char symbol_687[] = "E";
-static char symbol_688[] = "F";
-static char symbol_689[] = "G";
-static char symbol_690[] = "H";
-static char symbol_691[] = "I";
-static char symbol_692[] = "J";
-static char symbol_693[] = "K";
-static char symbol_694[] = "L";
-static char symbol_695[] = "M";
-static char symbol_696[] = "N";
-static char symbol_697[] = "O";
-static char symbol_698[] = "P";
-static char symbol_699[] = "Q";
-static char symbol_700[] = "R";
-static char symbol_701[] = "S";
-static char symbol_702[] = "T";
-static char symbol_703[] = "U";
-static char symbol_704[] = "V";
-static char symbol_705[] = "W";
-static char symbol_706[] = "X";
-static char symbol_707[] = "Y";
-static char symbol_708[] = "Z";
-static char symbol_709[] = " ";
-static char symbol_710[] = "\n";
+static char symbol_653[] = "static char symbol_";
+static char symbol_654[] = "[] = \"";
+static char symbol_655[] = "x";
+static char symbol_656[] = "\";\n";
+static char symbol_657[] = "buffer_from_cstring(symbol_";
+static char symbol_658[] = ", sizeof(symbol_";
+static char symbol_659[] = ")-1)";
+static char symbol_660[] = "a";
+static char symbol_661[] = "b";
+static char symbol_662[] = "c";
+static char symbol_663[] = "d";
+static char symbol_664[] = "e";
+static char symbol_665[] = "f";
+static char symbol_666[] = "g";
+static char symbol_667[] = "h";
+static char symbol_668[] = "i";
+static char symbol_669[] = "j";
+static char symbol_670[] = "k";
+static char symbol_671[] = "l";
+static char symbol_672[] = "m";
+static char symbol_673[] = "n";
+static char symbol_674[] = "o";
+static char symbol_675[] = "p";
+static char symbol_676[] = "q";
+static char symbol_677[] = "r";
+static char symbol_678[] = "s";
+static char symbol_679[] = "t";
+static char symbol_680[] = "u";
+static char symbol_681[] = "v";
+static char symbol_682[] = "w";
+static char symbol_683[] = "x";
+static char symbol_684[] = "y";
+static char symbol_685[] = "z";
+static char symbol_686[] = "A";
+static char symbol_687[] = "B";
+static char symbol_688[] = "C";
+static char symbol_689[] = "D";
+static char symbol_690[] = "E";
+static char symbol_691[] = "F";
+static char symbol_692[] = "G";
+static char symbol_693[] = "H";
+static char symbol_694[] = "I";
+static char symbol_695[] = "J";
+static char symbol_696[] = "K";
+static char symbol_697[] = "L";
+static char symbol_698[] = "M";
+static char symbol_699[] = "N";
+static char symbol_700[] = "O";
+static char symbol_701[] = "P";
+static char symbol_702[] = "Q";
+static char symbol_703[] = "R";
+static char symbol_704[] = "S";
+static char symbol_705[] = "T";
+static char symbol_706[] = "U";
+static char symbol_707[] = "V";
+static char symbol_708[] = "W";
+static char symbol_709[] = "X";
+static char symbol_710[] = "Y";
+static char symbol_711[] = "Z";
+static char symbol_712[] = " ";
+static char symbol_713[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1459,8 +1462,11 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_298, sizeof(symbol_298)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_300, sizeof(symbol_300)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_301, sizeof(symbol_301)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_302, sizeof(symbol_302)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_303, sizeof(symbol_303)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1), 0, NULL);
 }
 
 void action_3(struct Runtime* runtime, struct Variables* variables) {
@@ -1469,35 +1475,35 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_306, sizeof(symbol_306)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_308, sizeof(symbol_308)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_309, sizeof(symbol_309)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_310, sizeof(symbol_310)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_311, sizeof(symbol_311)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_ruleVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), 0, NULL);
 }
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1)), runtime);
 }
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
@@ -1505,25 +1511,25 @@ void action_6(struct Runtime* runtime, struct Variables* variables) {
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_orInit = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), 0, NULL);
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
@@ -1532,22 +1538,22 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1556,33 +1562,33 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1594,51 +1600,51 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1648,13 +1654,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1663,39 +1669,39 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1704,23 +1710,23 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1730,39 +1736,39 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_orInit;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1771,30 +1777,30 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1)), runtime);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1)), runtime);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
@@ -1803,20 +1809,20 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1825,27 +1831,27 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
@@ -1855,63 +1861,63 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_placeholderVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1921,18 +1927,18 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
@@ -1941,37 +1947,37 @@ void action_40(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholderVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -1981,29 +1987,29 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -2013,14 +2019,14 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
@@ -2030,21 +2036,21 @@ void action_47(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
@@ -2054,17 +2060,17 @@ void action_49(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_658, sizeof(symbol_658)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2147,11 +2153,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_302, sizeof(symbol_302)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_305, sizeof(symbol_305)-1), _);
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_303, sizeof(symbol_303)-1);
+                data = buffer_from_cstring(symbol_306, sizeof(symbol_306)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2162,11 +2168,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
                     _ = rule_space(parse_state);
                     if (_) {
                         _ = rule_ors(parse_state);
-                        append_named_action(variables, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_305, sizeof(symbol_305)-1);
+                                data = buffer_from_cstring(symbol_308, sizeof(symbol_308)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2201,7 +2207,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
     _ = rule_maybeorbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1), _);
         if (_) {
             star_variables = create_variables();
             star_start_pos = parse_state->pos;
@@ -2215,7 +2221,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1), _);
             if (_) {
                 return create_action(action_4, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2236,7 +2242,7 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
     _ = rule_orbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), _);
         if (_) {
             return create_action(action_5, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2273,7 +2279,7 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_326, sizeof(symbol_326)-1);
+        data = buffer_from_cstring(symbol_329, sizeof(symbol_329)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2297,7 +2303,7 @@ struct Action* rule_orcase(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchAnd(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1), _);
     if (_) {
         return create_action(action_7, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2316,10 +2322,10 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_matchExpr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), _);
         if (_) {
             _ = rule_matchAnd(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), _);
             if (_) {
                 return create_action(action_8, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2329,7 +2335,7 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_action(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
     if (_) {
         return create_action(action_9, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2346,7 +2352,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_339, sizeof(symbol_339)-1);
+    data = buffer_from_cstring(symbol_342, sizeof(symbol_342)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2355,7 +2361,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), _);
         if (_) {
             return create_action(action_10, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2363,7 +2369,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_351, sizeof(symbol_351)-1);
+    data = buffer_from_cstring(symbol_354, sizeof(symbol_354)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2372,7 +2378,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2381,10 +2387,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2402,7 +2408,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_367, sizeof(symbol_367)-1);
+    data = buffer_from_cstring(symbol_370, sizeof(symbol_370)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2411,7 +2417,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2434,9 +2440,9 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_373, sizeof(symbol_373)-1);
+        data = buffer_from_cstring(symbol_376, sizeof(symbol_376)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2451,7 +2457,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2475,7 +2481,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_394, sizeof(symbol_394)-1);
+        data = buffer_from_cstring(symbol_397, sizeof(symbol_397)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2491,7 +2497,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2509,7 +2515,7 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2533,7 +2539,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_402, sizeof(symbol_402)-1);
+    data = buffer_from_cstring(symbol_405, sizeof(symbol_405)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2546,7 +2552,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_403, sizeof(symbol_403)-1);
+    data = buffer_from_cstring(symbol_406, sizeof(symbol_406)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2573,14 +2579,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_409, sizeof(symbol_409)-1);
+    data = buffer_from_cstring(symbol_412, sizeof(symbol_412)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2600,7 +2606,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2608,7 +2614,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_424, sizeof(symbol_424)-1);
+    data = buffer_from_cstring(symbol_427, sizeof(symbol_427)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2622,7 +2628,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2644,7 +2650,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_443, sizeof(symbol_443)-1);
+        data = buffer_from_cstring(symbol_446, sizeof(symbol_446)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2654,7 +2660,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_444, sizeof(symbol_444)-1);
+                data = buffer_from_cstring(symbol_447, sizeof(symbol_447)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2674,11 +2680,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_446, sizeof(symbol_446)-1);
+                            data = buffer_from_cstring(symbol_449, sizeof(symbol_449)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2716,7 +2722,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
+        data = buffer_from_cstring(symbol_462, sizeof(symbol_462)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2725,9 +2731,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
+                data = buffer_from_cstring(symbol_464, sizeof(symbol_464)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2747,11 +2753,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
+                            data = buffer_from_cstring(symbol_466, sizeof(symbol_466)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2772,7 +2778,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_472, sizeof(symbol_472)-1);
+        data = buffer_from_cstring(symbol_475, sizeof(symbol_475)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2781,9 +2787,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_474, sizeof(symbol_474)-1);
+                data = buffer_from_cstring(symbol_477, sizeof(symbol_477)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2801,7 +2807,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_482, sizeof(symbol_482)-1);
+        data = buffer_from_cstring(symbol_485, sizeof(symbol_485)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2810,11 +2816,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_484, sizeof(symbol_484)-1);
+                    data = buffer_from_cstring(symbol_487, sizeof(symbol_487)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2834,11 +2840,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_486, sizeof(symbol_486)-1);
+                                data = buffer_from_cstring(symbol_489, sizeof(symbol_489)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2860,7 +2866,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_498, sizeof(symbol_498)-1);
+        data = buffer_from_cstring(symbol_501, sizeof(symbol_501)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2869,7 +2875,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2881,7 +2887,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2892,7 +2898,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2903,7 +2909,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2914,7 +2920,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2924,7 +2930,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_533, sizeof(symbol_533)-1);
+        data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2933,9 +2939,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_535, sizeof(symbol_535)-1);
+                data = buffer_from_cstring(symbol_538, sizeof(symbol_538)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2944,9 +2950,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_537, sizeof(symbol_537)-1);
+                        data = buffer_from_cstring(symbol_540, sizeof(symbol_540)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2955,9 +2961,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_539, sizeof(symbol_539)-1);
+                                data = buffer_from_cstring(symbol_542, sizeof(symbol_542)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2979,7 +2985,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_551, sizeof(symbol_551)-1);
+        data = buffer_from_cstring(symbol_554, sizeof(symbol_554)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2999,11 +3005,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_553, sizeof(symbol_553)-1);
+                    data = buffer_from_cstring(symbol_556, sizeof(symbol_556)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3030,7 +3036,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3047,7 +3053,7 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3068,7 +3074,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
+    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3080,7 +3086,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
+    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3092,7 +3098,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
+    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3104,7 +3110,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
+    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3116,7 +3122,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
+    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3128,7 +3134,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
+    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3140,7 +3146,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
+    data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3152,7 +3158,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
+    data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3164,7 +3170,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
+    data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3176,7 +3182,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
+    data = buffer_from_cstring(symbol_577, sizeof(symbol_577)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3199,7 +3205,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
+    data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3210,9 +3216,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_577, sizeof(symbol_577)-1);
+                data = buffer_from_cstring(symbol_580, sizeof(symbol_580)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3221,11 +3227,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_579, sizeof(symbol_579)-1);
+                            data = buffer_from_cstring(symbol_582, sizeof(symbol_582)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3255,14 +3261,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
+    data = buffer_from_cstring(symbol_598, sizeof(symbol_598)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3271,9 +3277,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_597, sizeof(symbol_597)-1);
+            data = buffer_from_cstring(symbol_600, sizeof(symbol_600)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3282,9 +3288,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_599, sizeof(symbol_599)-1);
+                    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3314,7 +3320,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_607, sizeof(symbol_607)-1);
+    data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3334,9 +3340,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_609, sizeof(symbol_609)-1);
+            data = buffer_from_cstring(symbol_612, sizeof(symbol_612)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3364,7 +3370,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3378,7 +3384,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3396,7 +3402,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_623, sizeof(symbol_623)-1);
+    data = buffer_from_cstring(symbol_626, sizeof(symbol_626)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3405,7 +3411,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3423,7 +3429,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_627, sizeof(symbol_627)-1);
+    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3437,9 +3443,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_629, sizeof(symbol_629)-1);
+            data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3463,7 +3469,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_635, sizeof(symbol_635)-1);
+    data = buffer_from_cstring(symbol_638, sizeof(symbol_638)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3476,7 +3482,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_636, sizeof(symbol_636)-1);
+    data = buffer_from_cstring(symbol_639, sizeof(symbol_639)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3529,7 +3535,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3548,7 +3554,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_645, sizeof(symbol_645)-1);
+    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3571,7 +3577,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_646, sizeof(symbol_646)-1);
+    data = buffer_from_cstring(symbol_649, sizeof(symbol_649)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3584,7 +3590,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_647, sizeof(symbol_647)-1);
+    data = buffer_from_cstring(symbol_650, sizeof(symbol_650)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3628,7 +3634,7 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3694,42 +3700,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
     data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4004,15 +3974,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    return NULL;
-}
-
-struct Action* rule_upper(struct ParseState* parse_state) {
-    unsigned int or_backtrack_pos;
-    unsigned int action_start_pos;
-    struct Action* _;
-    struct Buffer* data;
-    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
@@ -4049,6 +4010,15 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    return NULL;
+}
+
+struct Action* rule_upper(struct ParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    struct Action* _;
+    struct Buffer* data;
+    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
@@ -4325,6 +4295,42 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
     return NULL;
 }
 
@@ -4364,7 +4370,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
+    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4376,7 +4382,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
+    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4411,5 +4417,8 @@ int main(void) {
         placeholder = placeholder->next;
     }
     render_chunks(runtime->main_chunks, &last_char, &indent);
+    fprintf(stderr, "Input size        = %d\n", parse_state->input_buffer->size);
+    fprintf(stderr, "Total memory size = %d\n", arena_pos);
+    fprintf(stderr, "Ratio             = %d\n", arena_pos/parse_state->input_buffer->size);
     return 0;
 }
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index e091795..582e2fc 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -303,6 +303,9 @@ file = rule*:xs space !. -> {
             "placeholder = placeholder->next;\n"
         < "}\n"
         "render_chunks(runtime->main_chunks, &last_char, &indent);\n"
+        "fprintf(stderr, \"Input size        = %d\\n\", parse_state->input_buffer->size);\n"
+        "fprintf(stderr, \"Total memory size = %d\\n\", arena_pos);\n"
+        "fprintf(stderr, \"Ratio             = %d\\n\", arena_pos/parse_state->input_buffer->size);\n"
         "return 0;\n"
     < "}\n"
 };

commit 458866cc73d790c07299278c3ecc2dbec9899c66
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Fri Nov 7 22:41:00 2025 +0100

    Call out/meta_meta.c only out/meta.c

diff --git a/accept.sh b/accept.sh
index 96fb998..5f30d7b 100755
--- a/accept.sh
+++ b/accept.sh
@@ -4,6 +4,6 @@ set -e
 
 cd "$(dirname "$0")"
 
-mv out/meta_meta.c src/meta/meta.c
+mv out/meta.c src/meta/meta.c
 
 ./make.sh
diff --git a/make.sh b/make.sh
index ed34171..34a97f2 100755
--- a/make.sh
+++ b/make.sh
@@ -50,8 +50,8 @@ test_example() {
 meta() {
     banner "Meta"
     c_compile src/meta/meta.c out/meta
-    meta_compile src/meta/meta.meta out/meta_meta.c
-    test_same src/meta/meta.c ./out/meta_meta.c
+    meta_compile src/meta/meta.meta out/meta.c
+    test_same src/meta/meta.c ./out/meta.c
     banner "Meta Performance Self"
     time out/meta <src/meta/meta.meta >/dev/null
     time out/meta <src/meta/meta.meta >/dev/null

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

commit cad7a78cd80197576b3af813110f1ec62e1096f2
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 5 22:05:48 2025 +0100

    Make it compile with C89

diff --git a/make.sh b/make.sh
index c4bad87..ed34171 100755
--- a/make.sh
+++ b/make.sh
@@ -77,7 +77,7 @@ meta_compile() {
 
 c_compile() {
     echo "Compiling $1 -> $2"
-    gcc -Wfatal-errors -Wall -Werror -o $2 $1
+    gcc -std=c89 -Wfatal-errors -Wall -Werror -o $2 $1
 }
 
 main
diff --git a/src/meta/meta.c b/src/meta/meta.c
index ea5c521..592270a 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -24,6 +24,7 @@ struct Runtime {
     struct Chunks* named_chunks_ruleVars;
     struct Chunks* named_chunks_orInit;
     struct Chunks* named_chunks_actionVars;
+    struct Chunks* named_chunks_placeholderVars;
     struct Chunks* current_chunks;
     unsigned int W_0;
     unsigned int W_1;
@@ -197,10 +198,11 @@ void run_action(struct Action* action, struct Runtime* runtime) {
 }
 
 int compare_buffers(struct Buffer* b1, struct Buffer* b2) {
+    int i;
     if (b1->size != b2->size) {
         return 0;
     }
-    for (int i=0; i<b1->size; i++) {
+    for (i=0; i<b1->size; i++) {
         if (b1->buffer[i] != b2->buffer[i]) {
             return 0;
         }
@@ -258,14 +260,15 @@ unsigned int max(unsigned int a, unsigned int b) {
 }
 
 void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {
+    int i, j;
     if (chunks) {
         struct Chunk* chunk = chunks->pre_first->next;
         while (chunk) {
             *indent += chunk->indentation_delta;
             if (chunk->data) {
-                for (int i=0; i<chunk->data->size; i++) {
+                for (i=0; i<chunk->data->size; i++) {
                     if (*last_char == '\n') {
-                        for (int j=0; j<*indent; j++) {
+                        for (j=0; j<*indent; j++) {
                             printf("    ");
                         }
                     }
@@ -469,521 +472,526 @@ static char symbol_187[] = "}\n";
 static char symbol_188[] = "}\n";
 static char symbol_189[] = "\n";
 static char symbol_190[] = "int compare_buffers(struct Buffer* b1, struct Buffer* b2) {\n";
-static char symbol_191[] = "if (b1->size != b2->size) {\n";
-static char symbol_192[] = "return 0;\n";
-static char symbol_193[] = "}\n";
-static char symbol_194[] = "for (int i=0; i<b1->size; i++) {\n";
-static char symbol_195[] = "if (b1->buffer[i] != b2->buffer[i]) {\n";
-static char symbol_196[] = "return 0;\n";
-static char symbol_197[] = "}\n";
+static char symbol_191[] = "int i;\n";
+static char symbol_192[] = "if (b1->size != b2->size) {\n";
+static char symbol_193[] = "return 0;\n";
+static char symbol_194[] = "}\n";
+static char symbol_195[] = "for (i=0; i<b1->size; i++) {\n";
+static char symbol_196[] = "if (b1->buffer[i] != b2->buffer[i]) {\n";
+static char symbol_197[] = "return 0;\n";
 static char symbol_198[] = "}\n";
-static char symbol_199[] = "return 1;";
-static char symbol_200[] = "}\n";
-static char symbol_201[] = "\n";
-static char symbol_202[] = "int seen(struct Chunks* chunks, struct Buffer* data) {\n";
-static char symbol_203[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
-static char symbol_204[] = "while (chunk) {\n";
-static char symbol_205[] = "if (compare_buffers(chunk->data, data)) {\n";
-static char symbol_206[] = "return 1;\n";
-static char symbol_207[] = "}\n";
-static char symbol_208[] = "chunk = chunk->next;\n";
-static char symbol_209[] = "}\n";
-static char symbol_210[] = "return 0;\n";
-static char symbol_211[] = "}\n";
-static char symbol_212[] = "\n";
-static char symbol_213[] = "void append_named_action(struct Variables* variables, struct Buffer* name, struct Action* action) {\n";
-static char symbol_214[] = "struct Variable* next_variable = allocate(sizeof(struct Variable));\n";
-static char symbol_215[] = "next_variable->next = NULL;\n";
-static char symbol_216[] = "next_variable->name = name;\n";
-static char symbol_217[] = "next_variable->action = action;\n";
-static char symbol_218[] = "variables->last->next = next_variable;\n";
-static char symbol_219[] = "variables->last = next_variable;\n";
-static char symbol_220[] = "}\n";
-static char symbol_221[] = "\n";
-static char symbol_222[] = "struct Action* lookup_action(struct Variables* variables, struct Buffer* name_to_look_for) {\n";
-static char symbol_223[] = "struct Variable* variable = variables->pre_first->next;\n";
-static char symbol_224[] = "while (variable) {\n";
-static char symbol_225[] = "if (compare_buffers(variable->name, name_to_look_for)) {\n";
-static char symbol_226[] = "return variable->action;\n";
-static char symbol_227[] = "} else {\n";
-static char symbol_228[] = "variable = variable->next;\n";
-static char symbol_229[] = "}\n";
+static char symbol_199[] = "}\n";
+static char symbol_200[] = "return 1;";
+static char symbol_201[] = "}\n";
+static char symbol_202[] = "\n";
+static char symbol_203[] = "int seen(struct Chunks* chunks, struct Buffer* data) {\n";
+static char symbol_204[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
+static char symbol_205[] = "while (chunk) {\n";
+static char symbol_206[] = "if (compare_buffers(chunk->data, data)) {\n";
+static char symbol_207[] = "return 1;\n";
+static char symbol_208[] = "}\n";
+static char symbol_209[] = "chunk = chunk->next;\n";
+static char symbol_210[] = "}\n";
+static char symbol_211[] = "return 0;\n";
+static char symbol_212[] = "}\n";
+static char symbol_213[] = "\n";
+static char symbol_214[] = "void append_named_action(struct Variables* variables, struct Buffer* name, struct Action* action) {\n";
+static char symbol_215[] = "struct Variable* next_variable = allocate(sizeof(struct Variable));\n";
+static char symbol_216[] = "next_variable->next = NULL;\n";
+static char symbol_217[] = "next_variable->name = name;\n";
+static char symbol_218[] = "next_variable->action = action;\n";
+static char symbol_219[] = "variables->last->next = next_variable;\n";
+static char symbol_220[] = "variables->last = next_variable;\n";
+static char symbol_221[] = "}\n";
+static char symbol_222[] = "\n";
+static char symbol_223[] = "struct Action* lookup_action(struct Variables* variables, struct Buffer* name_to_look_for) {\n";
+static char symbol_224[] = "struct Variable* variable = variables->pre_first->next;\n";
+static char symbol_225[] = "while (variable) {\n";
+static char symbol_226[] = "if (compare_buffers(variable->name, name_to_look_for)) {\n";
+static char symbol_227[] = "return variable->action;\n";
+static char symbol_228[] = "} else {\n";
+static char symbol_229[] = "variable = variable->next;\n";
 static char symbol_230[] = "}\n";
-static char symbol_231[] = "fprintf(stderr, \"ERROR: variable not found\");\n";
-static char symbol_232[] = "exit(1);\n";
-static char symbol_233[] = "}\n";
-static char symbol_234[] = "\n";
-static char symbol_235[] = "void append_placeholder(struct Placeholders* placeholders, struct Chunks* chunks, struct Action* action) {\n";
-static char symbol_236[] = "struct Placeholder* next_placeholder = allocate(sizeof(struct Placeholder));\n";
-static char symbol_237[] = "next_placeholder->next = NULL;\n";
-static char symbol_238[] = "next_placeholder->chunks = chunks;\n";
-static char symbol_239[] = "next_placeholder->action = action;\n";
-static char symbol_240[] = "placeholders->last->next = next_placeholder;\n";
-static char symbol_241[] = "placeholders->last = next_placeholder;\n";
-static char symbol_242[] = "}\n";
-static char symbol_243[] = "\n";
-static char symbol_244[] = "unsigned int inc(unsigned int value, unsigned int amount) {\n";
-static char symbol_245[] = "return value + amount;\n";
-static char symbol_246[] = "}\n";
-static char symbol_247[] = "\n";
-static char symbol_248[] = "unsigned int max(unsigned int a, unsigned int b) {\n";
-static char symbol_249[] = "return a > b ? a : b;\n";
-static char symbol_250[] = "}\n";
-static char symbol_251[] = "\n";
-static char symbol_252[] = "void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {\n";
-static char symbol_253[] = "if (chunks) {\n";
-static char symbol_254[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
-static char symbol_255[] = "while (chunk) {\n";
-static char symbol_256[] = "*indent += chunk->indentation_delta;\n";
-static char symbol_257[] = "if (chunk->data) {\n";
-static char symbol_258[] = "for (int i=0; i<chunk->data->size; i++) {\n";
-static char symbol_259[] = "if (*last_char == '\\n') {\n";
-static char symbol_260[] = "for (int j=0; j<*indent; j++) {\n";
-static char symbol_261[] = "printf(\"    \");\n";
-static char symbol_262[] = "}\n";
-static char symbol_263[] = "}\n";
-static char symbol_264[] = "*last_char = chunk->data->buffer[i];\n";
-static char symbol_265[] = "putchar(*last_char);\n";
-static char symbol_266[] = "}\n";
-static char symbol_267[] = "}\n";
-static char symbol_268[] = "render_chunks(chunk->chunks, last_char, indent);\n";
-static char symbol_269[] = "chunk = chunk->next;\n";
-static char symbol_270[] = "}\n";
-static char symbol_271[] = "}\n";
+static char symbol_231[] = "}\n";
+static char symbol_232[] = "fprintf(stderr, \"ERROR: variable not found\");\n";
+static char symbol_233[] = "exit(1);\n";
+static char symbol_234[] = "}\n";
+static char symbol_235[] = "\n";
+static char symbol_236[] = "void append_placeholder(struct Placeholders* placeholders, struct Chunks* chunks, struct Action* action) {\n";
+static char symbol_237[] = "struct Placeholder* next_placeholder = allocate(sizeof(struct Placeholder));\n";
+static char symbol_238[] = "next_placeholder->next = NULL;\n";
+static char symbol_239[] = "next_placeholder->chunks = chunks;\n";
+static char symbol_240[] = "next_placeholder->action = action;\n";
+static char symbol_241[] = "placeholders->last->next = next_placeholder;\n";
+static char symbol_242[] = "placeholders->last = next_placeholder;\n";
+static char symbol_243[] = "}\n";
+static char symbol_244[] = "\n";
+static char symbol_245[] = "unsigned int inc(unsigned int value, unsigned int amount) {\n";
+static char symbol_246[] = "return value + amount;\n";
+static char symbol_247[] = "}\n";
+static char symbol_248[] = "\n";
+static char symbol_249[] = "unsigned int max(unsigned int a, unsigned int b) {\n";
+static char symbol_250[] = "return a > b ? a : b;\n";
+static char symbol_251[] = "}\n";
+static char symbol_252[] = "\n";
+static char symbol_253[] = "void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {\n";
+static char symbol_254[] = "int i, j;\n";
+static char symbol_255[] = "if (chunks) {\n";
+static char symbol_256[] = "struct Chunk* chunk = chunks->pre_first->next;\n";
+static char symbol_257[] = "while (chunk) {\n";
+static char symbol_258[] = "*indent += chunk->indentation_delta;\n";
+static char symbol_259[] = "if (chunk->data) {\n";
+static char symbol_260[] = "for (i=0; i<chunk->data->size; i++) {\n";
+static char symbol_261[] = "if (*last_char == '\\n') {\n";
+static char symbol_262[] = "for (j=0; j<*indent; j++) {\n";
+static char symbol_263[] = "printf(\"    \");\n";
+static char symbol_264[] = "}\n";
+static char symbol_265[] = "}\n";
+static char symbol_266[] = "*last_char = chunk->data->buffer[i];\n";
+static char symbol_267[] = "putchar(*last_char);\n";
+static char symbol_268[] = "}\n";
+static char symbol_269[] = "}\n";
+static char symbol_270[] = "render_chunks(chunk->chunks, last_char, indent);\n";
+static char symbol_271[] = "chunk = chunk->next;\n";
 static char symbol_272[] = "}\n";
-static char symbol_273[] = "\n";
-static char symbol_274[] = "\n";
-static char symbol_275[] = "xs";
-static char symbol_276[] = "int main(void) {\n";
-static char symbol_277[] = "arena_limit = 2<<25;\n";
-static char symbol_278[] = "arena_pos = 0;\n";
-static char symbol_279[] = "arena = malloc(arena_limit);\n";
-static char symbol_280[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
-static char symbol_281[] = "char last_char = '\\n';\n";
-static char symbol_282[] = "int indent = 0;\n";
-static char symbol_283[] = "struct Runtime* runtime = create_runtime();\n";
-static char symbol_284[] = "struct Action* action = rule_main(parse_state);\n";
-static char symbol_285[] = "struct Placeholder* placeholder;\n";
-static char symbol_286[] = "if (action == NULL) {\n";
-static char symbol_287[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
-static char symbol_288[] = "exit(1);\n";
-static char symbol_289[] = "}\n";
-static char symbol_290[] = "run_action(action, runtime);\n";
-static char symbol_291[] = "placeholder = runtime->placeholders->pre_first->next;\n";
-static char symbol_292[] = "while (placeholder) {\n";
-static char symbol_293[] = "runtime->current_chunks = placeholder->chunks;\n";
-static char symbol_294[] = "run_action(placeholder->action, runtime);\n";
-static char symbol_295[] = "placeholder = placeholder->next;\n";
-static char symbol_296[] = "}\n";
-static char symbol_297[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
+static char symbol_273[] = "}\n";
+static char symbol_274[] = "}\n";
+static char symbol_275[] = "\n";
+static char symbol_276[] = "\n";
+static char symbol_277[] = "xs";
+static char symbol_278[] = "int main(void) {\n";
+static char symbol_279[] = "arena_limit = 2<<25;\n";
+static char symbol_280[] = "arena_pos = 0;\n";
+static char symbol_281[] = "arena = malloc(arena_limit);\n";
+static char symbol_282[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
+static char symbol_283[] = "char last_char = '\\n';\n";
+static char symbol_284[] = "int indent = 0;\n";
+static char symbol_285[] = "struct Runtime* runtime = create_runtime();\n";
+static char symbol_286[] = "struct Action* action = rule_main(parse_state);\n";
+static char symbol_287[] = "struct Placeholder* placeholder;\n";
+static char symbol_288[] = "if (action == NULL) {\n";
+static char symbol_289[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
+static char symbol_290[] = "exit(1);\n";
+static char symbol_291[] = "}\n";
+static char symbol_292[] = "run_action(action, runtime);\n";
+static char symbol_293[] = "placeholder = runtime->placeholders->pre_first->next;\n";
+static char symbol_294[] = "while (placeholder) {\n";
+static char symbol_295[] = "runtime->current_chunks = placeholder->chunks;\n";
+static char symbol_296[] = "run_action(placeholder->action, runtime);\n";
+static char symbol_297[] = "placeholder = placeholder->next;\n";
 static char symbol_298[] = "}\n";
-static char symbol_299[] = "x";
-static char symbol_300[] = "=";
-static char symbol_301[] = "y";
-static char symbol_302[] = ";";
-static char symbol_303[] = "struct Action* rule_";
-static char symbol_304[] = "x";
-static char symbol_305[] = "(struct ParseState* parse_state);\n";
+static char symbol_299[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
+static char symbol_300[] = "return 0;\n";
+static char symbol_301[] = "}\n";
+static char symbol_302[] = "x";
+static char symbol_303[] = "=";
+static char symbol_304[] = "y";
+static char symbol_305[] = ";";
 static char symbol_306[] = "struct Action* rule_";
 static char symbol_307[] = "x";
-static char symbol_308[] = "(struct ParseState* parse_state) {\n";
-static char symbol_309[] = "unsigned int or_backtrack_pos;\n";
-static char symbol_310[] = "unsigned int action_start_pos;\n";
-static char symbol_311[] = "struct Action* _;\n";
-static char symbol_312[] = "y";
-static char symbol_313[] = "return NULL;\n";
-static char symbol_314[] = "}\n";
-static char symbol_315[] = "\n";
-static char symbol_316[] = "x";
-static char symbol_317[] = "xs";
-static char symbol_318[] = "or_backtrack_pos = parse_state->pos;\n";
+static char symbol_308[] = "(struct ParseState* parse_state);\n";
+static char symbol_309[] = "struct Action* rule_";
+static char symbol_310[] = "x";
+static char symbol_311[] = "(struct ParseState* parse_state) {\n";
+static char symbol_312[] = "unsigned int or_backtrack_pos;\n";
+static char symbol_313[] = "unsigned int action_start_pos;\n";
+static char symbol_314[] = "struct Action* _;\n";
+static char symbol_315[] = "y";
+static char symbol_316[] = "return NULL;\n";
+static char symbol_317[] = "}\n";
+static char symbol_318[] = "\n";
 static char symbol_319[] = "x";
 static char symbol_320[] = "xs";
-static char symbol_321[] = "x";
+static char symbol_321[] = "or_backtrack_pos = parse_state->pos;\n";
 static char symbol_322[] = "x";
-static char symbol_323[] = "|";
+static char symbol_323[] = "xs";
 static char symbol_324[] = "x";
-static char symbol_325[] = "parse_state->pos = or_backtrack_pos;\n";
-static char symbol_326[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_325[] = "x";
+static char symbol_326[] = "|";
 static char symbol_327[] = "x";
-static char symbol_328[] = "x";
-static char symbol_329[] = "y";
+static char symbol_328[] = "parse_state->pos = or_backtrack_pos;\n";
+static char symbol_329[] = "action_start_pos = parse_state->pos;\n";
 static char symbol_330[] = "x";
-static char symbol_331[] = "if (_) {\n";
+static char symbol_331[] = "x";
 static char symbol_332[] = "y";
-static char symbol_333[] = "}\n";
-static char symbol_334[] = "y";
+static char symbol_333[] = "x";
+static char symbol_334[] = "if (_) {\n";
 static char symbol_335[] = "y";
-static char symbol_336[] = "!";
-static char symbol_337[] = "x";
-static char symbol_338[] = "unsigned int nlookahead_pos;\n";
-static char symbol_339[] = "unsigned int nlookahead_pos;\n";
-static char symbol_340[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_341[] = "x";
-static char symbol_342[] = "if (_ == NULL) {\n";
-static char symbol_343[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_344[] = "} else {\n";
-static char symbol_345[] = "_ = NULL;\n";
-static char symbol_346[] = "}\n";
-static char symbol_347[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_348[] = "&";
-static char symbol_349[] = "x";
-static char symbol_350[] = "unsigned int lookahead_pos;\n";
-static char symbol_351[] = "unsigned int lookahead_pos;\n";
-static char symbol_352[] = "lookahead_pos = parse_state->pos;\n";
-static char symbol_353[] = "x";
-static char symbol_354[] = "if (_ == NULL) {\n";
-static char symbol_355[] = "_ = NULL;\n";
-static char symbol_356[] = "} else {\n";
-static char symbol_357[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_358[] = "}\n";
-static char symbol_359[] = "parse_state->pos = lookahead_pos;\n";
-static char symbol_360[] = "x";
-static char symbol_361[] = "y";
-static char symbol_362[] = "x";
-static char symbol_363[] = "y";
-static char symbol_364[] = ":";
+static char symbol_336[] = "}\n";
+static char symbol_337[] = "y";
+static char symbol_338[] = "y";
+static char symbol_339[] = "!";
+static char symbol_340[] = "x";
+static char symbol_341[] = "unsigned int nlookahead_pos;\n";
+static char symbol_342[] = "unsigned int nlookahead_pos;\n";
+static char symbol_343[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_344[] = "x";
+static char symbol_345[] = "if (_ == NULL) {\n";
+static char symbol_346[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_347[] = "} else {\n";
+static char symbol_348[] = "_ = NULL;\n";
+static char symbol_349[] = "}\n";
+static char symbol_350[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_351[] = "&";
+static char symbol_352[] = "x";
+static char symbol_353[] = "unsigned int lookahead_pos;\n";
+static char symbol_354[] = "unsigned int lookahead_pos;\n";
+static char symbol_355[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_356[] = "x";
+static char symbol_357[] = "if (_ == NULL) {\n";
+static char symbol_358[] = "_ = NULL;\n";
+static char symbol_359[] = "} else {\n";
+static char symbol_360[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_361[] = "}\n";
+static char symbol_362[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_363[] = "x";
+static char symbol_364[] = "y";
 static char symbol_365[] = "x";
-static char symbol_366[] = "append_named_action(variables, ";
-static char symbol_367[] = "x";
-static char symbol_368[] = ", _);\n";
-static char symbol_369[] = "x";
-static char symbol_370[] = "*";
-static char symbol_371[] = "struct Variables* star_variables;\n";
-static char symbol_372[] = "struct Variables* star_variables;\n";
-static char symbol_373[] = "unsigned int star_pos;\n";
-static char symbol_374[] = "unsigned int star_pos;\n";
-static char symbol_375[] = "unsigned int star_start_pos;\n";
-static char symbol_376[] = "unsigned int star_start_pos;\n";
-static char symbol_377[] = "star_variables = create_variables();\n";
-static char symbol_378[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_379[] = "while (1) {\n";
-static char symbol_380[] = "star_pos = parse_state->pos;\n";
-static char symbol_381[] = "x";
-static char symbol_382[] = "if (_ == NULL) {\n";
-static char symbol_383[] = "parse_state->pos = star_pos;\n";
-static char symbol_384[] = "break;\n";
-static char symbol_385[] = "}\n";
-static char symbol_386[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_387[] = "}\n";
-static char symbol_388[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char symbol_389[] = "x";
-static char symbol_390[] = "x";
-static char symbol_391[] = "_";
+static char symbol_366[] = "y";
+static char symbol_367[] = ":";
+static char symbol_368[] = "x";
+static char symbol_369[] = "append_named_action(variables, ";
+static char symbol_370[] = "x";
+static char symbol_371[] = ", _);\n";
+static char symbol_372[] = "x";
+static char symbol_373[] = "*";
+static char symbol_374[] = "struct Variables* star_variables;\n";
+static char symbol_375[] = "struct Variables* star_variables;\n";
+static char symbol_376[] = "unsigned int star_pos;\n";
+static char symbol_377[] = "unsigned int star_pos;\n";
+static char symbol_378[] = "unsigned int star_start_pos;\n";
+static char symbol_379[] = "unsigned int star_start_pos;\n";
+static char symbol_380[] = "star_variables = create_variables();\n";
+static char symbol_381[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_382[] = "while (1) {\n";
+static char symbol_383[] = "star_pos = parse_state->pos;\n";
+static char symbol_384[] = "x";
+static char symbol_385[] = "if (_ == NULL) {\n";
+static char symbol_386[] = "parse_state->pos = star_pos;\n";
+static char symbol_387[] = "break;\n";
+static char symbol_388[] = "}\n";
+static char symbol_389[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_390[] = "}\n";
+static char symbol_391[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
 static char symbol_392[] = "x";
-static char symbol_393[] = "bitpattern <<= 1;\n";
-static char symbol_394[] = "bitmask <<= 1;\n";
+static char symbol_393[] = "x";
+static char symbol_394[] = "_";
 static char symbol_395[] = "x";
-static char symbol_396[] = "x";
-static char symbol_397[] = "x";
-static char symbol_398[] = "bitmask |= 1;\n";
-static char symbol_399[] = "0";
-static char symbol_400[] = "1";
-static char symbol_401[] = "bitpattern |= 1;\n";
-static char symbol_402[] = "x";
-static char symbol_403[] = "_ = rule_";
-static char symbol_404[] = "x";
-static char symbol_405[] = "(parse_state);\n";
-static char symbol_406[] = "0b";
-static char symbol_407[] = "xs";
-static char symbol_408[] = "unsigned char bitpattern;\n";
-static char symbol_409[] = "unsigned char bitpattern;\n";
-static char symbol_410[] = "unsigned char bitmask;\n";
-static char symbol_411[] = "unsigned char bitmask;\n";
-static char symbol_412[] = "bitpattern = 0;\n";
-static char symbol_413[] = "bitmask = 0;\n";
-static char symbol_414[] = "xs";
-static char symbol_415[] = "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 symbol_416[] = "parse_state->pos += 1;\n";
-static char symbol_417[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_418[] = "} else {\n";
-static char symbol_419[] = "_ = NULL;\n";
-static char symbol_420[] = "}\n";
-static char symbol_421[] = ".";
-static char symbol_422[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_423[] = "parse_state->pos += 1;\n";
-static char symbol_424[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_425[] = "} else {\n";
-static char symbol_426[] = "_ = NULL;\n";
-static char symbol_427[] = "}\n";
-static char symbol_428[] = "x";
-static char symbol_429[] = "struct Buffer* data;\n";
-static char symbol_430[] = "struct Buffer* data;\n";
-static char symbol_431[] = "data = ";
-static char symbol_432[] = "x";
-static char symbol_433[] = ";\n";
-static char symbol_434[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_435[] = "parse_state->pos += data->size;\n";
-static char symbol_436[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_437[] = "} else {\n";
-static char symbol_438[] = "_ = NULL;\n";
-static char symbol_439[] = "}\n";
-static char symbol_440[] = "->";
-static char symbol_441[] = "{";
-static char symbol_442[] = "xs";
-static char symbol_443[] = "}";
-static char symbol_444[] = "void action_";
-static char symbol_445[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_446[] = "xs";
-static char symbol_447[] = "}\n";
-static char symbol_448[] = "\n";
-static char symbol_449[] = "struct Variables* variables;\n";
-static char symbol_450[] = "struct Variables* variables;\n";
-static char symbol_451[] = "variables = create_variables();\n";
-static char symbol_452[] = "variables = create_variables();\n";
-static char symbol_453[] = "return create_action(action_";
-static char symbol_454[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_455[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_456[] = "unseen(";
-static char symbol_457[] = "x";
-static char symbol_458[] = ") -> {";
-static char symbol_459[] = "ys";
-static char symbol_460[] = "}";
-static char symbol_461[] = "struct Action* action;\n";
-static char symbol_462[] = "struct Action* action;\n";
-static char symbol_463[] = "action = lookup_action(variables, ";
-static char symbol_464[] = "x";
-static char symbol_465[] = ");\n";
-static char symbol_466[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_467[] = "ys";
-static char symbol_468[] = "}\n";
-static char symbol_469[] = "unique(";
-static char symbol_470[] = "x";
-static char symbol_471[] = ")";
-static char symbol_472[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_396[] = "bitpattern <<= 1;\n";
+static char symbol_397[] = "bitmask <<= 1;\n";
+static char symbol_398[] = "x";
+static char symbol_399[] = "x";
+static char symbol_400[] = "x";
+static char symbol_401[] = "bitmask |= 1;\n";
+static char symbol_402[] = "0";
+static char symbol_403[] = "1";
+static char symbol_404[] = "bitpattern |= 1;\n";
+static char symbol_405[] = "x";
+static char symbol_406[] = "_ = rule_";
+static char symbol_407[] = "x";
+static char symbol_408[] = "(parse_state);\n";
+static char symbol_409[] = "0b";
+static char symbol_410[] = "xs";
+static char symbol_411[] = "unsigned char bitpattern;\n";
+static char symbol_412[] = "unsigned char bitpattern;\n";
+static char symbol_413[] = "unsigned char bitmask;\n";
+static char symbol_414[] = "unsigned char bitmask;\n";
+static char symbol_415[] = "bitpattern = 0;\n";
+static char symbol_416[] = "bitmask = 0;\n";
+static char symbol_417[] = "xs";
+static char symbol_418[] = "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 symbol_419[] = "parse_state->pos += 1;\n";
+static char symbol_420[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_421[] = "} else {\n";
+static char symbol_422[] = "_ = NULL;\n";
+static char symbol_423[] = "}\n";
+static char symbol_424[] = ".";
+static char symbol_425[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_426[] = "parse_state->pos += 1;\n";
+static char symbol_427[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_428[] = "} else {\n";
+static char symbol_429[] = "_ = NULL;\n";
+static char symbol_430[] = "}\n";
+static char symbol_431[] = "x";
+static char symbol_432[] = "struct Buffer* data;\n";
+static char symbol_433[] = "struct Buffer* data;\n";
+static char symbol_434[] = "data = ";
+static char symbol_435[] = "x";
+static char symbol_436[] = ";\n";
+static char symbol_437[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_438[] = "parse_state->pos += data->size;\n";
+static char symbol_439[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_440[] = "} else {\n";
+static char symbol_441[] = "_ = NULL;\n";
+static char symbol_442[] = "}\n";
+static char symbol_443[] = "->";
+static char symbol_444[] = "{";
+static char symbol_445[] = "xs";
+static char symbol_446[] = "}";
+static char symbol_447[] = "void action_";
+static char symbol_448[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_449[] = "xs";
+static char symbol_450[] = "}\n";
+static char symbol_451[] = "\n";
+static char symbol_452[] = "struct Variables* variables;\n";
+static char symbol_453[] = "struct Variables* variables;\n";
+static char symbol_454[] = "variables = create_variables();\n";
+static char symbol_455[] = "variables = create_variables();\n";
+static char symbol_456[] = "return create_action(action_";
+static char symbol_457[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_458[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_459[] = "unseen(";
+static char symbol_460[] = "x";
+static char symbol_461[] = ") -> {";
+static char symbol_462[] = "ys";
+static char symbol_463[] = "}";
+static char symbol_464[] = "struct Action* action;\n";
+static char symbol_465[] = "struct Action* action;\n";
+static char symbol_466[] = "action = lookup_action(variables, ";
+static char symbol_467[] = "x";
+static char symbol_468[] = ");\n";
+static char symbol_469[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_470[] = "ys";
+static char symbol_471[] = "}\n";
+static char symbol_472[] = "unique(";
 static char symbol_473[] = "x";
-static char symbol_474[] = ")) {\n";
-static char symbol_475[] = "append_data(runtime->current_chunks, ";
+static char symbol_474[] = ")";
+static char symbol_475[] = "if (!seen(runtime->current_chunks, ";
 static char symbol_476[] = "x";
-static char symbol_477[] = ", 0, NULL);\n";
-static char symbol_478[] = "}\n";
-static char symbol_479[] = ">";
-static char symbol_480[] = "x";
-static char symbol_481[] = "{";
-static char symbol_482[] = "ys";
-static char symbol_483[] = "}";
-static char symbol_484[] = "struct Chunks* last_chunks;\n";
-static char symbol_485[] = "struct Chunks* last_chunks;\n";
-static char symbol_486[] = "struct Chunks* chunks;\n";
-static char symbol_487[] = "struct Chunks* chunks;\n";
-static char symbol_488[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_489[] = "chunks = runtime->named_chunks_";
-static char symbol_490[] = "x";
-static char symbol_491[] = ";\n";
-static char symbol_492[] = "runtime->current_chunks = chunks;\n";
-static char symbol_493[] = "ys";
-static char symbol_494[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_495[] = "<";
-static char symbol_496[] = "x";
-static char symbol_497[] = "struct Chunks* chunks;\n";
-static char symbol_498[] = "struct Chunks* chunks;\n";
-static char symbol_499[] = "chunks = create_chunks();\n";
-static char symbol_500[] = "runtime->named_chunks_";
-static char symbol_501[] = "x";
-static char symbol_502[] = " = chunks;\n";
-static char symbol_503[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_477[] = ")) {\n";
+static char symbol_478[] = "append_data(runtime->current_chunks, ";
+static char symbol_479[] = "x";
+static char symbol_480[] = ", 0, NULL);\n";
+static char symbol_481[] = "}\n";
+static char symbol_482[] = ">";
+static char symbol_483[] = "x";
+static char symbol_484[] = "{";
+static char symbol_485[] = "ys";
+static char symbol_486[] = "}";
+static char symbol_487[] = "struct Chunks* last_chunks;\n";
+static char symbol_488[] = "struct Chunks* last_chunks;\n";
+static char symbol_489[] = "struct Chunks* chunks;\n";
+static char symbol_490[] = "struct Chunks* chunks;\n";
+static char symbol_491[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_492[] = "chunks = runtime->named_chunks_";
+static char symbol_493[] = "x";
+static char symbol_494[] = ";\n";
+static char symbol_495[] = "runtime->current_chunks = chunks;\n";
+static char symbol_496[] = "ys";
+static char symbol_497[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_498[] = "<";
+static char symbol_499[] = "x";
+static char symbol_500[] = "struct Chunks* chunks;\n";
+static char symbol_501[] = "struct Chunks* chunks;\n";
+static char symbol_502[] = "chunks = create_chunks();\n";
+static char symbol_503[] = "runtime->named_chunks_";
 static char symbol_504[] = "x";
-static char symbol_505[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_506[] = "x";
-static char symbol_507[] = "), 0, NULL);\n";
-static char symbol_508[] = "x";
-static char symbol_509[] = "run_action(lookup_action(variables, ";
-static char symbol_510[] = "x";
-static char symbol_511[] = "), runtime);\n";
-static char symbol_512[] = "x";
-static char symbol_513[] = "void placeholder_";
-static char symbol_514[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_515[] = "void placeholder_";
-static char symbol_516[] = "(struct Runtime* runtime, struct Variables* variables) {";
-static char symbol_517[] = "x";
-static char symbol_518[] = "}\n";
-static char symbol_519[] = "\n";
-static char symbol_520[] = "struct Chunks* chunks;\n";
-static char symbol_521[] = "struct Chunks* chunks;\n";
-static char symbol_522[] = "chunks = create_chunks();\n";
-static char symbol_523[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_524[] = ", variables, NULL, 0, 0));\n";
-static char symbol_525[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_526[] = "x";
-static char symbol_527[] = "append_data(runtime->current_chunks, ";
-static char symbol_528[] = "x";
-static char symbol_529[] = ", 0, NULL);\n";
-static char symbol_530[] = "#";
+static char symbol_505[] = " = chunks;\n";
+static char symbol_506[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_507[] = "x";
+static char symbol_508[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_509[] = "x";
+static char symbol_510[] = "), 0, NULL);\n";
+static char symbol_511[] = "x";
+static char symbol_512[] = "run_action(lookup_action(variables, ";
+static char symbol_513[] = "x";
+static char symbol_514[] = "), runtime);\n";
+static char symbol_515[] = "x";
+static char symbol_516[] = "void placeholder_";
+static char symbol_517[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_518[] = "void placeholder_";
+static char symbol_519[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_520[] = "x";
+static char symbol_521[] = "}\n";
+static char symbol_522[] = "\n";
+static char symbol_523[] = "struct Chunks* chunks;\n";
+static char symbol_524[] = "struct Chunks* chunks;\n";
+static char symbol_525[] = "chunks = create_chunks();\n";
+static char symbol_526[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_527[] = ", variables, NULL, 0, 0));\n";
+static char symbol_528[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_529[] = "x";
+static char symbol_530[] = "append_data(runtime->current_chunks, ";
 static char symbol_531[] = "x";
-static char symbol_532[] = "(";
-static char symbol_533[] = "y";
-static char symbol_534[] = " ";
-static char symbol_535[] = "z";
-static char symbol_536[] = ")";
-static char symbol_537[] = "runtime->W_";
-static char symbol_538[] = "y";
-static char symbol_539[] = " = ";
-static char symbol_540[] = "x";
-static char symbol_541[] = "(runtime->W_";
-static char symbol_542[] = "y";
-static char symbol_543[] = " ? runtime->W_";
-static char symbol_544[] = "y";
-static char symbol_545[] = " : 0, ";
-static char symbol_546[] = "z";
-static char symbol_547[] = ");\n";
-static char symbol_548[] = ">";
-static char symbol_549[] = "xs";
-static char symbol_550[] = "<";
-static char symbol_551[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_532[] = ", 0, NULL);\n";
+static char symbol_533[] = "#";
+static char symbol_534[] = "x";
+static char symbol_535[] = "(";
+static char symbol_536[] = "y";
+static char symbol_537[] = " ";
+static char symbol_538[] = "z";
+static char symbol_539[] = ")";
+static char symbol_540[] = "runtime->W_";
+static char symbol_541[] = "y";
+static char symbol_542[] = " = ";
+static char symbol_543[] = "x";
+static char symbol_544[] = "(runtime->W_";
+static char symbol_545[] = "y";
+static char symbol_546[] = " ? runtime->W_";
+static char symbol_547[] = "y";
+static char symbol_548[] = " : 0, ";
+static char symbol_549[] = "z";
+static char symbol_550[] = ");\n";
+static char symbol_551[] = ">";
 static char symbol_552[] = "xs";
-static char symbol_553[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_554[] = "x";
-static char symbol_555[] = "x";
-static char symbol_556[] = "struct Chunks* named_chunks_";
+static char symbol_553[] = "<";
+static char symbol_554[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_555[] = "xs";
+static char symbol_556[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
 static char symbol_557[] = "x";
-static char symbol_558[] = ";\n";
-static char symbol_559[] = "x";
+static char symbol_558[] = "x";
+static char symbol_559[] = "struct Chunks* named_chunks_";
 static char symbol_560[] = "x";
-static char symbol_561[] = "x";
-static char symbol_562[] = "0";
-static char symbol_563[] = "1";
-static char symbol_564[] = "2";
-static char symbol_565[] = "3";
-static char symbol_566[] = "4";
-static char symbol_567[] = "5";
-static char symbol_568[] = "6";
-static char symbol_569[] = "7";
-static char symbol_570[] = "8";
-static char symbol_571[] = "9";
-static char symbol_572[] = "{";
-static char symbol_573[] = "x";
-static char symbol_574[] = "*";
-static char symbol_575[] = "y";
-static char symbol_576[] = "}";
-static char symbol_577[] = "for (int i=0; i < ";
+static char symbol_561[] = ";\n";
+static char symbol_562[] = "x";
+static char symbol_563[] = "x";
+static char symbol_564[] = "x";
+static char symbol_565[] = "0";
+static char symbol_566[] = "1";
+static char symbol_567[] = "2";
+static char symbol_568[] = "3";
+static char symbol_569[] = "4";
+static char symbol_570[] = "5";
+static char symbol_571[] = "6";
+static char symbol_572[] = "7";
+static char symbol_573[] = "8";
+static char symbol_574[] = "9";
+static char symbol_575[] = "{";
+static char symbol_576[] = "x";
+static char symbol_577[] = "*";
 static char symbol_578[] = "y";
-static char symbol_579[] = "; i++) {\n";
-static char symbol_580[] = "append_data(runtime->current_chunks, ";
-static char symbol_581[] = "x";
-static char symbol_582[] = ", 0, NULL);\n";
-static char symbol_583[] = "}\n";
-static char symbol_584[] = "x";
-static char symbol_585[] = "(runtime->W_";
+static char symbol_579[] = "}";
+static char symbol_580[] = "int i;\n";
+static char symbol_581[] = "int i;\n";
+static char symbol_582[] = "for (i=0; i < ";
+static char symbol_583[] = "y";
+static char symbol_584[] = "; i++) {\n";
+static char symbol_585[] = "append_data(runtime->current_chunks, ";
 static char symbol_586[] = "x";
-static char symbol_587[] = " ? runtime->W_";
-static char symbol_588[] = "x";
-static char symbol_589[] = " : 0)";
-static char symbol_590[] = "(";
+static char symbol_587[] = ", 0, NULL);\n";
+static char symbol_588[] = "}\n";
+static char symbol_589[] = "x";
+static char symbol_590[] = "(runtime->W_";
 static char symbol_591[] = "x";
-static char symbol_592[] = "-";
-static char symbol_593[] = "y";
-static char symbol_594[] = ")";
-static char symbol_595[] = "((runtime->W_";
+static char symbol_592[] = " ? runtime->W_";
+static char symbol_593[] = "x";
+static char symbol_594[] = " : 0)";
+static char symbol_595[] = "(";
 static char symbol_596[] = "x";
-static char symbol_597[] = " ? runtime->W_";
-static char symbol_598[] = "x";
-static char symbol_599[] = " : 0)-";
-static char symbol_600[] = "y";
-static char symbol_601[] = ")";
-static char symbol_602[] = "\"";
-static char symbol_603[] = "xs";
-static char symbol_604[] = "\"";
-static char symbol_605[] = "static char symbol_";
-static char symbol_606[] = "[] = \"";
-static char symbol_607[] = "xs";
-static char symbol_608[] = "\";\n";
-static char symbol_609[] = "buffer_from_cstring(symbol_";
-static char symbol_610[] = ", sizeof(symbol_";
-static char symbol_611[] = ")-1)";
-static char symbol_612[] = "x";
-static char symbol_613[] = "xs";
-static char symbol_614[] = "lookup_action(variables, ";
-static char symbol_615[] = "x";
-static char symbol_616[] = ")";
-static char symbol_617[] = "xs";
-static char symbol_618[] = ".";
-static char symbol_619[] = "x";
-static char symbol_620[] = "->";
-static char symbol_621[] = "x";
-static char symbol_622[] = "W[";
-static char symbol_623[] = "x";
-static char symbol_624[] = "]";
-static char symbol_625[] = "x";
-static char symbol_626[] = "unsigned int W_";
-static char symbol_627[] = "x";
-static char symbol_628[] = ";\n";
-static char symbol_629[] = "x";
-static char symbol_630[] = "\\\"";
-static char symbol_631[] = "\"";
-static char symbol_632[] = "xs";
-static char symbol_633[] = "static char symbol_";
-static char symbol_634[] = "[] = \"";
-static char symbol_635[] = "xs";
-static char symbol_636[] = "\";\n";
-static char symbol_637[] = "buffer_from_cstring(symbol_";
-static char symbol_638[] = ", sizeof(symbol_";
-static char symbol_639[] = ")-1)";
-static char symbol_640[] = "\'";
-static char symbol_641[] = "\\\'";
-static char symbol_642[] = "\"";
-static char symbol_643[] = "\\\"";
-static char symbol_644[] = "x";
-static char symbol_645[] = "static char symbol_";
-static char symbol_646[] = "[] = \"";
-static char symbol_647[] = "x";
-static char symbol_648[] = "\";\n";
-static char symbol_649[] = "buffer_from_cstring(symbol_";
-static char symbol_650[] = ", sizeof(symbol_";
-static char symbol_651[] = ")-1)";
-static char symbol_652[] = "a";
-static char symbol_653[] = "b";
-static char symbol_654[] = "c";
-static char symbol_655[] = "d";
-static char symbol_656[] = "e";
-static char symbol_657[] = "f";
-static char symbol_658[] = "g";
-static char symbol_659[] = "h";
-static char symbol_660[] = "i";
-static char symbol_661[] = "j";
-static char symbol_662[] = "k";
-static char symbol_663[] = "l";
-static char symbol_664[] = "m";
-static char symbol_665[] = "n";
-static char symbol_666[] = "o";
-static char symbol_667[] = "p";
-static char symbol_668[] = "q";
-static char symbol_669[] = "r";
-static char symbol_670[] = "s";
-static char symbol_671[] = "t";
-static char symbol_672[] = "u";
-static char symbol_673[] = "v";
-static char symbol_674[] = "w";
-static char symbol_675[] = "x";
-static char symbol_676[] = "y";
-static char symbol_677[] = "z";
-static char symbol_678[] = "A";
-static char symbol_679[] = "B";
-static char symbol_680[] = "C";
-static char symbol_681[] = "D";
-static char symbol_682[] = "E";
-static char symbol_683[] = "F";
-static char symbol_684[] = "G";
-static char symbol_685[] = "H";
-static char symbol_686[] = "I";
-static char symbol_687[] = "J";
-static char symbol_688[] = "K";
-static char symbol_689[] = "L";
-static char symbol_690[] = "M";
-static char symbol_691[] = "N";
-static char symbol_692[] = "O";
-static char symbol_693[] = "P";
-static char symbol_694[] = "Q";
-static char symbol_695[] = "R";
-static char symbol_696[] = "S";
-static char symbol_697[] = "T";
-static char symbol_698[] = "U";
-static char symbol_699[] = "V";
-static char symbol_700[] = "W";
-static char symbol_701[] = "X";
-static char symbol_702[] = "Y";
-static char symbol_703[] = "Z";
-static char symbol_704[] = " ";
-static char symbol_705[] = "\n";
+static char symbol_597[] = "-";
+static char symbol_598[] = "y";
+static char symbol_599[] = ")";
+static char symbol_600[] = "((runtime->W_";
+static char symbol_601[] = "x";
+static char symbol_602[] = " ? runtime->W_";
+static char symbol_603[] = "x";
+static char symbol_604[] = " : 0)-";
+static char symbol_605[] = "y";
+static char symbol_606[] = ")";
+static char symbol_607[] = "\"";
+static char symbol_608[] = "xs";
+static char symbol_609[] = "\"";
+static char symbol_610[] = "static char symbol_";
+static char symbol_611[] = "[] = \"";
+static char symbol_612[] = "xs";
+static char symbol_613[] = "\";\n";
+static char symbol_614[] = "buffer_from_cstring(symbol_";
+static char symbol_615[] = ", sizeof(symbol_";
+static char symbol_616[] = ")-1)";
+static char symbol_617[] = "x";
+static char symbol_618[] = "xs";
+static char symbol_619[] = "lookup_action(variables, ";
+static char symbol_620[] = "x";
+static char symbol_621[] = ")";
+static char symbol_622[] = "xs";
+static char symbol_623[] = ".";
+static char symbol_624[] = "x";
+static char symbol_625[] = "->";
+static char symbol_626[] = "x";
+static char symbol_627[] = "W[";
+static char symbol_628[] = "x";
+static char symbol_629[] = "]";
+static char symbol_630[] = "x";
+static char symbol_631[] = "unsigned int W_";
+static char symbol_632[] = "x";
+static char symbol_633[] = ";\n";
+static char symbol_634[] = "x";
+static char symbol_635[] = "\\\"";
+static char symbol_636[] = "\"";
+static char symbol_637[] = "xs";
+static char symbol_638[] = "static char symbol_";
+static char symbol_639[] = "[] = \"";
+static char symbol_640[] = "xs";
+static char symbol_641[] = "\";\n";
+static char symbol_642[] = "buffer_from_cstring(symbol_";
+static char symbol_643[] = ", sizeof(symbol_";
+static char symbol_644[] = ")-1)";
+static char symbol_645[] = "\'";
+static char symbol_646[] = "\\\'";
+static char symbol_647[] = "\"";
+static char symbol_648[] = "\\\"";
+static char symbol_649[] = "x";
+static char symbol_650[] = "static char symbol_";
+static char symbol_651[] = "[] = \"";
+static char symbol_652[] = "x";
+static char symbol_653[] = "\";\n";
+static char symbol_654[] = "buffer_from_cstring(symbol_";
+static char symbol_655[] = ", sizeof(symbol_";
+static char symbol_656[] = ")-1)";
+static char symbol_657[] = "a";
+static char symbol_658[] = "b";
+static char symbol_659[] = "c";
+static char symbol_660[] = "d";
+static char symbol_661[] = "e";
+static char symbol_662[] = "f";
+static char symbol_663[] = "g";
+static char symbol_664[] = "h";
+static char symbol_665[] = "i";
+static char symbol_666[] = "j";
+static char symbol_667[] = "k";
+static char symbol_668[] = "l";
+static char symbol_669[] = "m";
+static char symbol_670[] = "n";
+static char symbol_671[] = "o";
+static char symbol_672[] = "p";
+static char symbol_673[] = "q";
+static char symbol_674[] = "r";
+static char symbol_675[] = "s";
+static char symbol_676[] = "t";
+static char symbol_677[] = "u";
+static char symbol_678[] = "v";
+static char symbol_679[] = "w";
+static char symbol_680[] = "x";
+static char symbol_681[] = "y";
+static char symbol_682[] = "z";
+static char symbol_683[] = "A";
+static char symbol_684[] = "B";
+static char symbol_685[] = "C";
+static char symbol_686[] = "D";
+static char symbol_687[] = "E";
+static char symbol_688[] = "F";
+static char symbol_689[] = "G";
+static char symbol_690[] = "H";
+static char symbol_691[] = "I";
+static char symbol_692[] = "J";
+static char symbol_693[] = "K";
+static char symbol_694[] = "L";
+static char symbol_695[] = "M";
+static char symbol_696[] = "N";
+static char symbol_697[] = "O";
+static char symbol_698[] = "P";
+static char symbol_699[] = "Q";
+static char symbol_700[] = "R";
+static char symbol_701[] = "S";
+static char symbol_702[] = "T";
+static char symbol_703[] = "U";
+static char symbol_704[] = "V";
+static char symbol_705[] = "W";
+static char symbol_706[] = "X";
+static char symbol_707[] = "Y";
+static char symbol_708[] = "Z";
+static char symbol_709[] = " ";
+static char symbol_710[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1282,97 +1290,96 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_190, sizeof(symbol_190)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_191, sizeof(symbol_191)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_192, sizeof(symbol_192)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_193, sizeof(symbol_193)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_194, sizeof(symbol_194)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_195, sizeof(symbol_195)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_196, sizeof(symbol_196)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_197, sizeof(symbol_197)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_198, sizeof(symbol_198)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_199, sizeof(symbol_199)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_199, sizeof(symbol_199)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_200, sizeof(symbol_200)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_201, sizeof(symbol_201)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_202, sizeof(symbol_202)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_203, sizeof(symbol_203)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_204, sizeof(symbol_204)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_204, sizeof(symbol_204)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_205, sizeof(symbol_205)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_206, sizeof(symbol_206)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_207, sizeof(symbol_207)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_208, sizeof(symbol_208)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_208, sizeof(symbol_208)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_209, sizeof(symbol_209)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_210, sizeof(symbol_210)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_210, sizeof(symbol_210)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_211, sizeof(symbol_211)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_212, sizeof(symbol_212)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_213, sizeof(symbol_213)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_214, sizeof(symbol_214)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_215, sizeof(symbol_215)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_216, sizeof(symbol_216)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_217, sizeof(symbol_217)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_218, sizeof(symbol_218)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_219, sizeof(symbol_219)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_220, sizeof(symbol_220)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_221, sizeof(symbol_221)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_222, sizeof(symbol_222)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_223, sizeof(symbol_223)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_224, sizeof(symbol_224)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_224, sizeof(symbol_224)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_225, sizeof(symbol_225)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_226, sizeof(symbol_226)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_227, sizeof(symbol_227)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_228, sizeof(symbol_228)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_227, sizeof(symbol_227)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_228, sizeof(symbol_228)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_229, sizeof(symbol_229)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_230, sizeof(symbol_230)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_231, sizeof(symbol_231)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_232, sizeof(symbol_232)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_233, sizeof(symbol_233)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_234, sizeof(symbol_234)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_235, sizeof(symbol_235)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_236, sizeof(symbol_236)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_237, sizeof(symbol_237)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_238, sizeof(symbol_238)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_239, sizeof(symbol_239)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_240, sizeof(symbol_240)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_241, sizeof(symbol_241)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_242, sizeof(symbol_242)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_243, sizeof(symbol_243)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_244, sizeof(symbol_244)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_245, sizeof(symbol_245)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_246, sizeof(symbol_246)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_247, sizeof(symbol_247)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_248, sizeof(symbol_248)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_249, sizeof(symbol_249)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_250, sizeof(symbol_250)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_251, sizeof(symbol_251)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_252, sizeof(symbol_252)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_253, sizeof(symbol_253)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_254, sizeof(symbol_254)-1), 0, NULL);
@@ -1382,49 +1389,50 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_257, sizeof(symbol_257)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_258, sizeof(symbol_258)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_259, sizeof(symbol_259)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_260, sizeof(symbol_260)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_261, sizeof(symbol_261)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_262, sizeof(symbol_262)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_263, sizeof(symbol_263)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_264, sizeof(symbol_264)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_265, sizeof(symbol_265)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_265, sizeof(symbol_265)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_266, sizeof(symbol_266)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_267, sizeof(symbol_267)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_268, sizeof(symbol_268)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_269, sizeof(symbol_269)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_269, sizeof(symbol_269)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_270, sizeof(symbol_270)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_271, sizeof(symbol_271)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_272, sizeof(symbol_272)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_273, sizeof(symbol_273)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_274, sizeof(symbol_274)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_275, sizeof(symbol_275)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_symbols = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
     chunks = create_chunks();
     runtime->named_chunks_definitions = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_274, sizeof(symbol_274)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_276, sizeof(symbol_276)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actions = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
     chunks = create_chunks();
     runtime->named_chunks_placeholders = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_275, sizeof(symbol_275)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_276, sizeof(symbol_276)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_277, sizeof(symbol_277)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_277, sizeof(symbol_277)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_278, sizeof(symbol_278)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_279, sizeof(symbol_279)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_280, sizeof(symbol_280)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_281, sizeof(symbol_281)-1), 0, NULL);
@@ -1433,23 +1441,26 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_284, sizeof(symbol_284)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_285, sizeof(symbol_285)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_286, sizeof(symbol_286)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_287, sizeof(symbol_287)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_288, sizeof(symbol_288)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_289, sizeof(symbol_289)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_290, sizeof(symbol_290)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_291, sizeof(symbol_291)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_292, sizeof(symbol_292)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_293, sizeof(symbol_293)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_294, sizeof(symbol_294)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_295, sizeof(symbol_295)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_296, sizeof(symbol_296)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_297, sizeof(symbol_297)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_298, sizeof(symbol_298)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_300, sizeof(symbol_300)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_301, sizeof(symbol_301)-1), 0, NULL);
 }
 
 void action_3(struct Runtime* runtime, struct Variables* variables) {
@@ -1458,35 +1469,35 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_303, sizeof(symbol_303)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_305, sizeof(symbol_305)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_306, sizeof(symbol_306)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_308, sizeof(symbol_308)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_309, sizeof(symbol_309)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_310, sizeof(symbol_310)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_310, sizeof(symbol_310)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_311, sizeof(symbol_311)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_ruleVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), 0, NULL);
 }
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1)), runtime);
 }
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
@@ -1494,25 +1505,25 @@ void action_6(struct Runtime* runtime, struct Variables* variables) {
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_orInit = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1)), runtime);
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
@@ -1521,22 +1532,22 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1545,33 +1556,33 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1583,51 +1594,51 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1637,13 +1648,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1652,39 +1663,39 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1693,23 +1704,23 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1719,39 +1730,39 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_orInit;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1760,30 +1771,30 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1)), runtime);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1)), runtime);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
@@ -1792,20 +1803,20 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1814,27 +1825,27 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
@@ -1844,60 +1855,63 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1)), runtime);
+    chunks = create_chunks();
+    runtime->named_chunks_placeholderVars = chunks;
+    append_data(runtime->current_chunks, NULL, 0, chunks);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1907,48 +1921,57 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1)), runtime);
+    struct Chunks* last_chunks;
+    struct Chunks* chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_placeholderVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -1958,29 +1981,29 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -1990,14 +2013,14 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
@@ -2007,21 +2030,21 @@ void action_47(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
@@ -2031,17 +2054,17 @@ void action_49(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2124,11 +2147,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_302, sizeof(symbol_302)-1), _);
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_300, sizeof(symbol_300)-1);
+                data = buffer_from_cstring(symbol_303, sizeof(symbol_303)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2139,11 +2162,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
                     _ = rule_space(parse_state);
                     if (_) {
                         _ = rule_ors(parse_state);
-                        append_named_action(variables, buffer_from_cstring(symbol_301, sizeof(symbol_301)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_302, sizeof(symbol_302)-1);
+                                data = buffer_from_cstring(symbol_305, sizeof(symbol_305)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2178,7 +2201,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
     _ = rule_maybeorbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), _);
         if (_) {
             star_variables = create_variables();
             star_start_pos = parse_state->pos;
@@ -2192,7 +2215,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1), _);
             if (_) {
                 return create_action(action_4, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2213,7 +2236,7 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
     _ = rule_orbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), _);
         if (_) {
             return create_action(action_5, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2250,7 +2273,7 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_323, sizeof(symbol_323)-1);
+        data = buffer_from_cstring(symbol_326, sizeof(symbol_326)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2274,7 +2297,7 @@ struct Action* rule_orcase(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchAnd(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), _);
     if (_) {
         return create_action(action_7, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2293,10 +2316,10 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_matchExpr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), _);
         if (_) {
             _ = rule_matchAnd(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), _);
             if (_) {
                 return create_action(action_8, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2306,7 +2329,7 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_action(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), _);
     if (_) {
         return create_action(action_9, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2323,7 +2346,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_336, sizeof(symbol_336)-1);
+    data = buffer_from_cstring(symbol_339, sizeof(symbol_339)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2332,7 +2355,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
         if (_) {
             return create_action(action_10, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2340,7 +2363,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_348, sizeof(symbol_348)-1);
+    data = buffer_from_cstring(symbol_351, sizeof(symbol_351)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2349,7 +2372,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2358,10 +2381,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2379,7 +2402,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_364, sizeof(symbol_364)-1);
+    data = buffer_from_cstring(symbol_367, sizeof(symbol_367)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2388,7 +2411,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2411,9 +2434,9 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_370, sizeof(symbol_370)-1);
+        data = buffer_from_cstring(symbol_373, sizeof(symbol_373)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2428,7 +2451,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2452,7 +2475,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_391, sizeof(symbol_391)-1);
+        data = buffer_from_cstring(symbol_394, sizeof(symbol_394)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2468,7 +2491,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2486,7 +2509,7 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2510,7 +2533,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_399, sizeof(symbol_399)-1);
+    data = buffer_from_cstring(symbol_402, sizeof(symbol_402)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2523,7 +2546,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_400, sizeof(symbol_400)-1);
+    data = buffer_from_cstring(symbol_403, sizeof(symbol_403)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2550,14 +2573,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_406, sizeof(symbol_406)-1);
+    data = buffer_from_cstring(symbol_409, sizeof(symbol_409)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2577,7 +2600,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2585,7 +2608,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_421, sizeof(symbol_421)-1);
+    data = buffer_from_cstring(symbol_424, sizeof(symbol_424)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2599,7 +2622,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2621,7 +2644,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_440, sizeof(symbol_440)-1);
+        data = buffer_from_cstring(symbol_443, sizeof(symbol_443)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2631,7 +2654,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_441, sizeof(symbol_441)-1);
+                data = buffer_from_cstring(symbol_444, sizeof(symbol_444)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2651,11 +2674,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_443, sizeof(symbol_443)-1);
+                            data = buffer_from_cstring(symbol_446, sizeof(symbol_446)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2693,7 +2716,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_456, sizeof(symbol_456)-1);
+        data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2702,9 +2725,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_458, sizeof(symbol_458)-1);
+                data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2724,11 +2747,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_460, sizeof(symbol_460)-1);
+                            data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2749,7 +2772,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_469, sizeof(symbol_469)-1);
+        data = buffer_from_cstring(symbol_472, sizeof(symbol_472)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2758,9 +2781,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_471, sizeof(symbol_471)-1);
+                data = buffer_from_cstring(symbol_474, sizeof(symbol_474)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2778,7 +2801,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_479, sizeof(symbol_479)-1);
+        data = buffer_from_cstring(symbol_482, sizeof(symbol_482)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2787,11 +2810,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_481, sizeof(symbol_481)-1);
+                    data = buffer_from_cstring(symbol_484, sizeof(symbol_484)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2811,11 +2834,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_483, sizeof(symbol_483)-1);
+                                data = buffer_from_cstring(symbol_486, sizeof(symbol_486)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2837,7 +2860,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_495, sizeof(symbol_495)-1);
+        data = buffer_from_cstring(symbol_498, sizeof(symbol_498)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2846,7 +2869,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2858,7 +2881,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2869,7 +2892,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2880,7 +2903,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2891,7 +2914,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2901,7 +2924,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_530, sizeof(symbol_530)-1);
+        data = buffer_from_cstring(symbol_533, sizeof(symbol_533)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2910,9 +2933,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_532, sizeof(symbol_532)-1);
+                data = buffer_from_cstring(symbol_535, sizeof(symbol_535)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2921,9 +2944,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_534, sizeof(symbol_534)-1);
+                        data = buffer_from_cstring(symbol_537, sizeof(symbol_537)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2932,9 +2955,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
+                                data = buffer_from_cstring(symbol_539, sizeof(symbol_539)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2956,7 +2979,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_548, sizeof(symbol_548)-1);
+        data = buffer_from_cstring(symbol_551, sizeof(symbol_551)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2976,11 +2999,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
+                    data = buffer_from_cstring(symbol_553, sizeof(symbol_553)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3007,7 +3030,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3024,7 +3047,7 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3045,7 +3068,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
+    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3057,7 +3080,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
+    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3069,7 +3092,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
+    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3081,7 +3104,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
+    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3093,7 +3116,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
+    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3105,7 +3128,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
+    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3117,7 +3140,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
+    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3129,7 +3152,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
+    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3141,7 +3164,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
+    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3153,7 +3176,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
+    data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3176,7 +3199,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
+    data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3187,9 +3210,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
+                data = buffer_from_cstring(symbol_577, sizeof(symbol_577)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3198,11 +3221,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
+                            data = buffer_from_cstring(symbol_579, sizeof(symbol_579)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3232,14 +3255,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
+    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3248,9 +3271,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
+            data = buffer_from_cstring(symbol_597, sizeof(symbol_597)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3259,9 +3282,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
+                    data = buffer_from_cstring(symbol_599, sizeof(symbol_599)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3291,7 +3314,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
+    data = buffer_from_cstring(symbol_607, sizeof(symbol_607)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3311,9 +3334,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
+            data = buffer_from_cstring(symbol_609, sizeof(symbol_609)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3341,7 +3364,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3355,7 +3378,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3373,7 +3396,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_618, sizeof(symbol_618)-1);
+    data = buffer_from_cstring(symbol_623, sizeof(symbol_623)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3382,7 +3405,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3400,7 +3423,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
+    data = buffer_from_cstring(symbol_627, sizeof(symbol_627)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3414,9 +3437,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
+            data = buffer_from_cstring(symbol_629, sizeof(symbol_629)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3440,7 +3463,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
+    data = buffer_from_cstring(symbol_635, sizeof(symbol_635)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3453,7 +3476,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
+    data = buffer_from_cstring(symbol_636, sizeof(symbol_636)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3506,7 +3529,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3525,7 +3548,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_640, sizeof(symbol_640)-1);
+    data = buffer_from_cstring(symbol_645, sizeof(symbol_645)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3548,7 +3571,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
+    data = buffer_from_cstring(symbol_646, sizeof(symbol_646)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3561,7 +3584,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
+    data = buffer_from_cstring(symbol_647, sizeof(symbol_647)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3605,7 +3628,7 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3671,7 +3694,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
+    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3683,7 +3706,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
+    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3695,7 +3718,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
+    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3707,7 +3730,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
+    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3719,7 +3742,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
+    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3731,7 +3754,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
+    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3743,7 +3766,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
+    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3755,7 +3778,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
+    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3767,7 +3790,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
+    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3779,7 +3802,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
+    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3791,7 +3814,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
+    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3803,7 +3826,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
+    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3815,7 +3838,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
+    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3827,7 +3850,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
+    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3839,7 +3862,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
+    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3851,7 +3874,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
+    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3863,7 +3886,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
+    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3875,7 +3898,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
+    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3887,7 +3910,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3899,7 +3922,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
+    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3911,7 +3934,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
+    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3923,7 +3946,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
+    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3935,7 +3958,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
+    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3947,7 +3970,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
+    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3959,7 +3982,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
+    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3971,7 +3994,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
+    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3992,7 +4015,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
+    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4004,7 +4027,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
+    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4016,7 +4039,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
+    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4028,7 +4051,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
+    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4040,7 +4063,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
+    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4052,7 +4075,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
+    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4064,7 +4087,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
+    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4076,7 +4099,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
+    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4088,7 +4111,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
+    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4100,7 +4123,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
+    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4112,7 +4135,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
+    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4124,7 +4147,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
+    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4136,7 +4159,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
+    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4148,7 +4171,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
+    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4160,7 +4183,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
+    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4172,7 +4195,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
+    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4184,7 +4207,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
+    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4196,7 +4219,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
+    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4208,7 +4231,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
+    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4220,7 +4243,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
+    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4232,7 +4255,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
+    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4244,7 +4267,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4256,7 +4279,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4268,7 +4291,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
+    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4280,7 +4303,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
+    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4292,7 +4315,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
+    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4341,7 +4364,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
+    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4353,7 +4376,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
+    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4388,4 +4411,5 @@ int main(void) {
         placeholder = placeholder->next;
     }
     render_chunks(runtime->main_chunks, &last_char, &indent);
+    return 0;
 }
diff --git a/src/meta/meta.meta b/src/meta/meta.meta
index 4a05bd3..e091795 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -190,10 +190,11 @@ file = rule*:xs space !. -> {
     < "}\n"
     "\n"
     "int compare_buffers(struct Buffer* b1, struct Buffer* b2) {\n" >
+        "int i;\n"
         "if (b1->size != b2->size) {\n" >
             "return 0;\n"
         < "}\n"
-        "for (int i=0; i<b1->size; i++) {\n" >
+        "for (i=0; i<b1->size; i++) {\n" >
             "if (b1->buffer[i] != b2->buffer[i]) {\n" >
                 "return 0;\n"
             < "}\n"
@@ -252,14 +253,15 @@ file = rule*:xs space !. -> {
     < "}\n"
     "\n"
     "void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {\n" >
+        "int i, j;\n"
         "if (chunks) {\n" >
             "struct Chunk* chunk = chunks->pre_first->next;\n"
             "while (chunk) {\n" >
                 "*indent += chunk->indentation_delta;\n"
                 "if (chunk->data) {\n" >
-                    "for (int i=0; i<chunk->data->size; i++) {\n" >
+                    "for (i=0; i<chunk->data->size; i++) {\n" >
                         "if (*last_char == '\\n') {\n" >
-                            "for (int j=0; j<*indent; j++) {\n" >
+                            "for (j=0; j<*indent; j++) {\n" >
                                 "printf(\"    \");\n"
                             < "}\n"
                         < "}\n"
@@ -301,6 +303,7 @@ file = rule*:xs space !. -> {
             "placeholder = placeholder->next;\n"
         < "}\n"
         "render_chunks(runtime->main_chunks, &last_char, &indent);\n"
+        "return 0;\n"
     < "}\n"
 };
 
@@ -536,7 +539,8 @@ actionexpr =
             "void placeholder_" W[1] "(struct Runtime* runtime, struct Variables* variables);"
         }
         >placeholders {
-            "void placeholder_" W[1] "(struct Runtime* runtime, struct Variables* variables) {" >
+            "void placeholder_" W[1] "(struct Runtime* runtime, struct Variables* variables) {\n" >
+                <placeholderVars
                 x
             < "}\n"
             "\n"
@@ -590,7 +594,10 @@ digit =
 
 placeholder
     = '{' space string:x '*' expr:y space '}' -> {
-        "for (int i=0; i < " y "; i++) {\n" >
+        >placeholderVars {
+            unique("int i;\n")
+        }
+        "for (i=0; i < " y "; i++) {\n" >
             "append_data(runtime->current_chunks, " x ", 0, NULL);\n"
         < "}\n"
     }

commit 077724335a0cc15d88f66b610dd9b81226e49d28
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 5 22:01:06 2025 +0100

    Fix some c89 problems

diff --git a/src/experiments/bitmanipulation.c b/src/experiments/bitmanipulation.c
index f15a3d9..073fbe1 100644
--- a/src/experiments/bitmanipulation.c
+++ b/src/experiments/bitmanipulation.c
@@ -15,4 +15,5 @@ int main(void) {
     printf("value     = %d\n", (unsigned char)bitmask);
     printf("xor same  = %d\n", 18 ^ 18);
     printf("xor diff  = %d\n", 18 ^ 17);
+    return 0;
 }
diff --git a/src/experiments/fork.c b/src/experiments/fork.c
index 17270ec..cc835d4 100644
--- a/src/experiments/fork.c
+++ b/src/experiments/fork.c
@@ -25,9 +25,10 @@ int main(void) {
         printf("returncode = %d\n", returncode);
     }
     {
-        //char *const command[] = {"bash", "-c", "exit 5"};
+        /* char *const command[] = {"bash", "-c", "exit 5"}; */
         char *const command[] = {"exit", "5"};
         int returncode = platform_run_command(command);
         printf("returncode second = %d\n", returncode);
     }
+    return 0;
 }
diff --git a/src/experiments/sizes.c b/src/experiments/sizes.c
index af502b7..a63afe8 100644
--- a/src/experiments/sizes.c
+++ b/src/experiments/sizes.c
@@ -23,4 +23,5 @@ int main(void) {
     printf("Sizeof pointer   = %ld\n", sizeof(void *));
     printf("Sizeof Foo       = %ld\n", sizeof(Foo));
     printf("Sizeof Bar       = %ld\n", sizeof(Bar));
+    return 0;
 }
diff --git a/src/experiments/strings.c b/src/experiments/strings.c
index 67d9352..96a3ad7 100644
--- a/src/experiments/strings.c
+++ b/src/experiments/strings.c
@@ -8,4 +8,5 @@ int main(void) {
     printf("äpple\n");
     printf("string foo = %s\n", foo);
     printf("string bar = %s\n", bar);
+    return 0;
 }

2025-11-05 21:37 Rickard pushed to rlworkbench

commit 68832cfcb0f80ce65dc7d2357c6ce11c4752bfa9
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 5 21:37:35 2025 +0100

    Refine fork example

diff --git a/src/experiments/fork.c b/src/experiments/fork.c
index 27e32d7..17270ec 100644
--- a/src/experiments/fork.c
+++ b/src/experiments/fork.c
@@ -1,17 +1,33 @@
 #include <stdio.h>
+#include <stdlib.h>
 #include <sys/wait.h>
 #include <unistd.h>
 
-int main(void) {
+int platform_run_command(char *const command[]) {
     pid_t pid = fork();
     if (pid) {
         int status;
-        printf("in parent\n");
+        printf("pid = %d\n", pid);
         waitpid(pid, &status, 0);
-        printf("status = %d\n", WEXITSTATUS(status));
-        return 0;
+        return WEXITSTATUS(status);
     } else {
-        printf("in fork\n");
-        return 2;
+        if (execvp(command[0], command) == -1) {
+            exit(1);
+        }
+        return 1;
+    }
+}
+
+int main(void) {
+    {
+        char *const command[] = {"echo", "hello there"};
+        int returncode = platform_run_command(command);
+        printf("returncode = %d\n", returncode);
+    }
+    {
+        //char *const command[] = {"bash", "-c", "exit 5"};
+        char *const command[] = {"exit", "5"};
+        int returncode = platform_run_command(command);
+        printf("returncode second = %d\n", returncode);
     }
 }

2025-11-05 20:50 Rickard pushed to rlworkbench

commit ba194d974b45d2ed9237ca8db679d5e93340ac96
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 5 20:48:22 2025 +0100

    Don't fflush

diff --git a/src/meta/meta.c b/src/meta/meta.c
index ee90119..ea5c521 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -271,7 +271,6 @@ void render_chunks(struct Chunks* chunks, char* last_char, int* indent) {
                     }
                     *last_char = chunk->data->buffer[i];
                     putchar(*last_char);
-                    fflush(stdout);
                 }
             }
             render_chunks(chunk->chunks, last_char, indent);
@@ -545,447 +544,446 @@ static char symbol_262[] = "}\n";
 static char symbol_263[] = "}\n";
 static char symbol_264[] = "*last_char = chunk->data->buffer[i];\n";
 static char symbol_265[] = "putchar(*last_char);\n";
-static char symbol_266[] = "fflush(stdout);\n";
+static char symbol_266[] = "}\n";
 static char symbol_267[] = "}\n";
-static char symbol_268[] = "}\n";
-static char symbol_269[] = "render_chunks(chunk->chunks, last_char, indent);\n";
-static char symbol_270[] = "chunk = chunk->next;\n";
+static char symbol_268[] = "render_chunks(chunk->chunks, last_char, indent);\n";
+static char symbol_269[] = "chunk = chunk->next;\n";
+static char symbol_270[] = "}\n";
 static char symbol_271[] = "}\n";
 static char symbol_272[] = "}\n";
-static char symbol_273[] = "}\n";
+static char symbol_273[] = "\n";
 static char symbol_274[] = "\n";
-static char symbol_275[] = "\n";
-static char symbol_276[] = "xs";
-static char symbol_277[] = "int main(void) {\n";
-static char symbol_278[] = "arena_limit = 2<<25;\n";
-static char symbol_279[] = "arena_pos = 0;\n";
-static char symbol_280[] = "arena = malloc(arena_limit);\n";
-static char symbol_281[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
-static char symbol_282[] = "char last_char = '\\n';\n";
-static char symbol_283[] = "int indent = 0;\n";
-static char symbol_284[] = "struct Runtime* runtime = create_runtime();\n";
-static char symbol_285[] = "struct Action* action = rule_main(parse_state);\n";
-static char symbol_286[] = "struct Placeholder* placeholder;\n";
-static char symbol_287[] = "if (action == NULL) {\n";
-static char symbol_288[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
-static char symbol_289[] = "exit(1);\n";
-static char symbol_290[] = "}\n";
-static char symbol_291[] = "run_action(action, runtime);\n";
-static char symbol_292[] = "placeholder = runtime->placeholders->pre_first->next;\n";
-static char symbol_293[] = "while (placeholder) {\n";
-static char symbol_294[] = "runtime->current_chunks = placeholder->chunks;\n";
-static char symbol_295[] = "run_action(placeholder->action, runtime);\n";
-static char symbol_296[] = "placeholder = placeholder->next;\n";
-static char symbol_297[] = "}\n";
-static char symbol_298[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
-static char symbol_299[] = "}\n";
-static char symbol_300[] = "x";
-static char symbol_301[] = "=";
-static char symbol_302[] = "y";
-static char symbol_303[] = ";";
-static char symbol_304[] = "struct Action* rule_";
-static char symbol_305[] = "x";
-static char symbol_306[] = "(struct ParseState* parse_state);\n";
-static char symbol_307[] = "struct Action* rule_";
-static char symbol_308[] = "x";
-static char symbol_309[] = "(struct ParseState* parse_state) {\n";
-static char symbol_310[] = "unsigned int or_backtrack_pos;\n";
-static char symbol_311[] = "unsigned int action_start_pos;\n";
-static char symbol_312[] = "struct Action* _;\n";
-static char symbol_313[] = "y";
-static char symbol_314[] = "return NULL;\n";
-static char symbol_315[] = "}\n";
-static char symbol_316[] = "\n";
-static char symbol_317[] = "x";
-static char symbol_318[] = "xs";
-static char symbol_319[] = "or_backtrack_pos = parse_state->pos;\n";
-static char symbol_320[] = "x";
-static char symbol_321[] = "xs";
+static char symbol_275[] = "xs";
+static char symbol_276[] = "int main(void) {\n";
+static char symbol_277[] = "arena_limit = 2<<25;\n";
+static char symbol_278[] = "arena_pos = 0;\n";
+static char symbol_279[] = "arena = malloc(arena_limit);\n";
+static char symbol_280[] = "struct ParseState* parse_state = create_parse_state_from_stdin();\n";
+static char symbol_281[] = "char last_char = '\\n';\n";
+static char symbol_282[] = "int indent = 0;\n";
+static char symbol_283[] = "struct Runtime* runtime = create_runtime();\n";
+static char symbol_284[] = "struct Action* action = rule_main(parse_state);\n";
+static char symbol_285[] = "struct Placeholder* placeholder;\n";
+static char symbol_286[] = "if (action == NULL) {\n";
+static char symbol_287[] = "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n";
+static char symbol_288[] = "exit(1);\n";
+static char symbol_289[] = "}\n";
+static char symbol_290[] = "run_action(action, runtime);\n";
+static char symbol_291[] = "placeholder = runtime->placeholders->pre_first->next;\n";
+static char symbol_292[] = "while (placeholder) {\n";
+static char symbol_293[] = "runtime->current_chunks = placeholder->chunks;\n";
+static char symbol_294[] = "run_action(placeholder->action, runtime);\n";
+static char symbol_295[] = "placeholder = placeholder->next;\n";
+static char symbol_296[] = "}\n";
+static char symbol_297[] = "render_chunks(runtime->main_chunks, &last_char, &indent);\n";
+static char symbol_298[] = "}\n";
+static char symbol_299[] = "x";
+static char symbol_300[] = "=";
+static char symbol_301[] = "y";
+static char symbol_302[] = ";";
+static char symbol_303[] = "struct Action* rule_";
+static char symbol_304[] = "x";
+static char symbol_305[] = "(struct ParseState* parse_state);\n";
+static char symbol_306[] = "struct Action* rule_";
+static char symbol_307[] = "x";
+static char symbol_308[] = "(struct ParseState* parse_state) {\n";
+static char symbol_309[] = "unsigned int or_backtrack_pos;\n";
+static char symbol_310[] = "unsigned int action_start_pos;\n";
+static char symbol_311[] = "struct Action* _;\n";
+static char symbol_312[] = "y";
+static char symbol_313[] = "return NULL;\n";
+static char symbol_314[] = "}\n";
+static char symbol_315[] = "\n";
+static char symbol_316[] = "x";
+static char symbol_317[] = "xs";
+static char symbol_318[] = "or_backtrack_pos = parse_state->pos;\n";
+static char symbol_319[] = "x";
+static char symbol_320[] = "xs";
+static char symbol_321[] = "x";
 static char symbol_322[] = "x";
-static char symbol_323[] = "x";
-static char symbol_324[] = "|";
-static char symbol_325[] = "x";
-static char symbol_326[] = "parse_state->pos = or_backtrack_pos;\n";
-static char symbol_327[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_323[] = "|";
+static char symbol_324[] = "x";
+static char symbol_325[] = "parse_state->pos = or_backtrack_pos;\n";
+static char symbol_326[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_327[] = "x";
 static char symbol_328[] = "x";
-static char symbol_329[] = "x";
-static char symbol_330[] = "y";
-static char symbol_331[] = "x";
-static char symbol_332[] = "if (_) {\n";
-static char symbol_333[] = "y";
-static char symbol_334[] = "}\n";
+static char symbol_329[] = "y";
+static char symbol_330[] = "x";
+static char symbol_331[] = "if (_) {\n";
+static char symbol_332[] = "y";
+static char symbol_333[] = "}\n";
+static char symbol_334[] = "y";
 static char symbol_335[] = "y";
-static char symbol_336[] = "y";
-static char symbol_337[] = "!";
-static char symbol_338[] = "x";
+static char symbol_336[] = "!";
+static char symbol_337[] = "x";
+static char symbol_338[] = "unsigned int nlookahead_pos;\n";
 static char symbol_339[] = "unsigned int nlookahead_pos;\n";
-static char symbol_340[] = "unsigned int nlookahead_pos;\n";
-static char symbol_341[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_342[] = "x";
-static char symbol_343[] = "if (_ == NULL) {\n";
-static char symbol_344[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_345[] = "} else {\n";
-static char symbol_346[] = "_ = NULL;\n";
-static char symbol_347[] = "}\n";
-static char symbol_348[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_349[] = "&";
-static char symbol_350[] = "x";
+static char symbol_340[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_341[] = "x";
+static char symbol_342[] = "if (_ == NULL) {\n";
+static char symbol_343[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_344[] = "} else {\n";
+static char symbol_345[] = "_ = NULL;\n";
+static char symbol_346[] = "}\n";
+static char symbol_347[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_348[] = "&";
+static char symbol_349[] = "x";
+static char symbol_350[] = "unsigned int lookahead_pos;\n";
 static char symbol_351[] = "unsigned int lookahead_pos;\n";
-static char symbol_352[] = "unsigned int lookahead_pos;\n";
-static char symbol_353[] = "lookahead_pos = parse_state->pos;\n";
-static char symbol_354[] = "x";
-static char symbol_355[] = "if (_ == NULL) {\n";
-static char symbol_356[] = "_ = NULL;\n";
-static char symbol_357[] = "} else {\n";
-static char symbol_358[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_359[] = "}\n";
-static char symbol_360[] = "parse_state->pos = lookahead_pos;\n";
-static char symbol_361[] = "x";
-static char symbol_362[] = "y";
-static char symbol_363[] = "x";
-static char symbol_364[] = "y";
-static char symbol_365[] = ":";
-static char symbol_366[] = "x";
-static char symbol_367[] = "append_named_action(variables, ";
-static char symbol_368[] = "x";
-static char symbol_369[] = ", _);\n";
-static char symbol_370[] = "x";
-static char symbol_371[] = "*";
+static char symbol_352[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_353[] = "x";
+static char symbol_354[] = "if (_ == NULL) {\n";
+static char symbol_355[] = "_ = NULL;\n";
+static char symbol_356[] = "} else {\n";
+static char symbol_357[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_358[] = "}\n";
+static char symbol_359[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_360[] = "x";
+static char symbol_361[] = "y";
+static char symbol_362[] = "x";
+static char symbol_363[] = "y";
+static char symbol_364[] = ":";
+static char symbol_365[] = "x";
+static char symbol_366[] = "append_named_action(variables, ";
+static char symbol_367[] = "x";
+static char symbol_368[] = ", _);\n";
+static char symbol_369[] = "x";
+static char symbol_370[] = "*";
+static char symbol_371[] = "struct Variables* star_variables;\n";
 static char symbol_372[] = "struct Variables* star_variables;\n";
-static char symbol_373[] = "struct Variables* star_variables;\n";
+static char symbol_373[] = "unsigned int star_pos;\n";
 static char symbol_374[] = "unsigned int star_pos;\n";
-static char symbol_375[] = "unsigned int star_pos;\n";
+static char symbol_375[] = "unsigned int star_start_pos;\n";
 static char symbol_376[] = "unsigned int star_start_pos;\n";
-static char symbol_377[] = "unsigned int star_start_pos;\n";
-static char symbol_378[] = "star_variables = create_variables();\n";
-static char symbol_379[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_380[] = "while (1) {\n";
-static char symbol_381[] = "star_pos = parse_state->pos;\n";
-static char symbol_382[] = "x";
-static char symbol_383[] = "if (_ == NULL) {\n";
-static char symbol_384[] = "parse_state->pos = star_pos;\n";
-static char symbol_385[] = "break;\n";
-static char symbol_386[] = "}\n";
-static char symbol_387[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_388[] = "}\n";
-static char symbol_389[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char symbol_377[] = "star_variables = create_variables();\n";
+static char symbol_378[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_379[] = "while (1) {\n";
+static char symbol_380[] = "star_pos = parse_state->pos;\n";
+static char symbol_381[] = "x";
+static char symbol_382[] = "if (_ == NULL) {\n";
+static char symbol_383[] = "parse_state->pos = star_pos;\n";
+static char symbol_384[] = "break;\n";
+static char symbol_385[] = "}\n";
+static char symbol_386[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_387[] = "}\n";
+static char symbol_388[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char symbol_389[] = "x";
 static char symbol_390[] = "x";
-static char symbol_391[] = "x";
-static char symbol_392[] = "_";
-static char symbol_393[] = "x";
-static char symbol_394[] = "bitpattern <<= 1;\n";
-static char symbol_395[] = "bitmask <<= 1;\n";
+static char symbol_391[] = "_";
+static char symbol_392[] = "x";
+static char symbol_393[] = "bitpattern <<= 1;\n";
+static char symbol_394[] = "bitmask <<= 1;\n";
+static char symbol_395[] = "x";
 static char symbol_396[] = "x";
 static char symbol_397[] = "x";
-static char symbol_398[] = "x";
-static char symbol_399[] = "bitmask |= 1;\n";
-static char symbol_400[] = "0";
-static char symbol_401[] = "1";
-static char symbol_402[] = "bitpattern |= 1;\n";
-static char symbol_403[] = "x";
-static char symbol_404[] = "_ = rule_";
-static char symbol_405[] = "x";
-static char symbol_406[] = "(parse_state);\n";
-static char symbol_407[] = "0b";
-static char symbol_408[] = "xs";
+static char symbol_398[] = "bitmask |= 1;\n";
+static char symbol_399[] = "0";
+static char symbol_400[] = "1";
+static char symbol_401[] = "bitpattern |= 1;\n";
+static char symbol_402[] = "x";
+static char symbol_403[] = "_ = rule_";
+static char symbol_404[] = "x";
+static char symbol_405[] = "(parse_state);\n";
+static char symbol_406[] = "0b";
+static char symbol_407[] = "xs";
+static char symbol_408[] = "unsigned char bitpattern;\n";
 static char symbol_409[] = "unsigned char bitpattern;\n";
-static char symbol_410[] = "unsigned char bitpattern;\n";
+static char symbol_410[] = "unsigned char bitmask;\n";
 static char symbol_411[] = "unsigned char bitmask;\n";
-static char symbol_412[] = "unsigned char bitmask;\n";
-static char symbol_413[] = "bitpattern = 0;\n";
-static char symbol_414[] = "bitmask = 0;\n";
-static char symbol_415[] = "xs";
-static char symbol_416[] = "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 symbol_417[] = "parse_state->pos += 1;\n";
-static char symbol_418[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_419[] = "} else {\n";
-static char symbol_420[] = "_ = NULL;\n";
-static char symbol_421[] = "}\n";
-static char symbol_422[] = ".";
-static char symbol_423[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_424[] = "parse_state->pos += 1;\n";
-static char symbol_425[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_426[] = "} else {\n";
-static char symbol_427[] = "_ = NULL;\n";
-static char symbol_428[] = "}\n";
-static char symbol_429[] = "x";
+static char symbol_412[] = "bitpattern = 0;\n";
+static char symbol_413[] = "bitmask = 0;\n";
+static char symbol_414[] = "xs";
+static char symbol_415[] = "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 symbol_416[] = "parse_state->pos += 1;\n";
+static char symbol_417[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_418[] = "} else {\n";
+static char symbol_419[] = "_ = NULL;\n";
+static char symbol_420[] = "}\n";
+static char symbol_421[] = ".";
+static char symbol_422[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_423[] = "parse_state->pos += 1;\n";
+static char symbol_424[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_425[] = "} else {\n";
+static char symbol_426[] = "_ = NULL;\n";
+static char symbol_427[] = "}\n";
+static char symbol_428[] = "x";
+static char symbol_429[] = "struct Buffer* data;\n";
 static char symbol_430[] = "struct Buffer* data;\n";
-static char symbol_431[] = "struct Buffer* data;\n";
-static char symbol_432[] = "data = ";
-static char symbol_433[] = "x";
-static char symbol_434[] = ";\n";
-static char symbol_435[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_436[] = "parse_state->pos += data->size;\n";
-static char symbol_437[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_438[] = "} else {\n";
-static char symbol_439[] = "_ = NULL;\n";
-static char symbol_440[] = "}\n";
-static char symbol_441[] = "->";
-static char symbol_442[] = "{";
-static char symbol_443[] = "xs";
-static char symbol_444[] = "}";
-static char symbol_445[] = "void action_";
-static char symbol_446[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_447[] = "xs";
-static char symbol_448[] = "}\n";
-static char symbol_449[] = "\n";
+static char symbol_431[] = "data = ";
+static char symbol_432[] = "x";
+static char symbol_433[] = ";\n";
+static char symbol_434[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_435[] = "parse_state->pos += data->size;\n";
+static char symbol_436[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_437[] = "} else {\n";
+static char symbol_438[] = "_ = NULL;\n";
+static char symbol_439[] = "}\n";
+static char symbol_440[] = "->";
+static char symbol_441[] = "{";
+static char symbol_442[] = "xs";
+static char symbol_443[] = "}";
+static char symbol_444[] = "void action_";
+static char symbol_445[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_446[] = "xs";
+static char symbol_447[] = "}\n";
+static char symbol_448[] = "\n";
+static char symbol_449[] = "struct Variables* variables;\n";
 static char symbol_450[] = "struct Variables* variables;\n";
-static char symbol_451[] = "struct Variables* variables;\n";
+static char symbol_451[] = "variables = create_variables();\n";
 static char symbol_452[] = "variables = create_variables();\n";
-static char symbol_453[] = "variables = create_variables();\n";
-static char symbol_454[] = "return create_action(action_";
-static char symbol_455[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_456[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_457[] = "unseen(";
-static char symbol_458[] = "x";
-static char symbol_459[] = ") -> {";
-static char symbol_460[] = "ys";
-static char symbol_461[] = "}";
+static char symbol_453[] = "return create_action(action_";
+static char symbol_454[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_455[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_456[] = "unseen(";
+static char symbol_457[] = "x";
+static char symbol_458[] = ") -> {";
+static char symbol_459[] = "ys";
+static char symbol_460[] = "}";
+static char symbol_461[] = "struct Action* action;\n";
 static char symbol_462[] = "struct Action* action;\n";
-static char symbol_463[] = "struct Action* action;\n";
-static char symbol_464[] = "action = lookup_action(variables, ";
-static char symbol_465[] = "x";
-static char symbol_466[] = ");\n";
-static char symbol_467[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_468[] = "ys";
-static char symbol_469[] = "}\n";
-static char symbol_470[] = "unique(";
-static char symbol_471[] = "x";
-static char symbol_472[] = ")";
-static char symbol_473[] = "if (!seen(runtime->current_chunks, ";
-static char symbol_474[] = "x";
-static char symbol_475[] = ")) {\n";
-static char symbol_476[] = "append_data(runtime->current_chunks, ";
-static char symbol_477[] = "x";
-static char symbol_478[] = ", 0, NULL);\n";
-static char symbol_479[] = "}\n";
-static char symbol_480[] = ">";
-static char symbol_481[] = "x";
-static char symbol_482[] = "{";
-static char symbol_483[] = "ys";
-static char symbol_484[] = "}";
+static char symbol_463[] = "action = lookup_action(variables, ";
+static char symbol_464[] = "x";
+static char symbol_465[] = ");\n";
+static char symbol_466[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_467[] = "ys";
+static char symbol_468[] = "}\n";
+static char symbol_469[] = "unique(";
+static char symbol_470[] = "x";
+static char symbol_471[] = ")";
+static char symbol_472[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_473[] = "x";
+static char symbol_474[] = ")) {\n";
+static char symbol_475[] = "append_data(runtime->current_chunks, ";
+static char symbol_476[] = "x";
+static char symbol_477[] = ", 0, NULL);\n";
+static char symbol_478[] = "}\n";
+static char symbol_479[] = ">";
+static char symbol_480[] = "x";
+static char symbol_481[] = "{";
+static char symbol_482[] = "ys";
+static char symbol_483[] = "}";
+static char symbol_484[] = "struct Chunks* last_chunks;\n";
 static char symbol_485[] = "struct Chunks* last_chunks;\n";
-static char symbol_486[] = "struct Chunks* last_chunks;\n";
+static char symbol_486[] = "struct Chunks* chunks;\n";
 static char symbol_487[] = "struct Chunks* chunks;\n";
-static char symbol_488[] = "struct Chunks* chunks;\n";
-static char symbol_489[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_490[] = "chunks = runtime->named_chunks_";
-static char symbol_491[] = "x";
-static char symbol_492[] = ";\n";
-static char symbol_493[] = "runtime->current_chunks = chunks;\n";
-static char symbol_494[] = "ys";
-static char symbol_495[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_496[] = "<";
-static char symbol_497[] = "x";
+static char symbol_488[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_489[] = "chunks = runtime->named_chunks_";
+static char symbol_490[] = "x";
+static char symbol_491[] = ";\n";
+static char symbol_492[] = "runtime->current_chunks = chunks;\n";
+static char symbol_493[] = "ys";
+static char symbol_494[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_495[] = "<";
+static char symbol_496[] = "x";
+static char symbol_497[] = "struct Chunks* chunks;\n";
 static char symbol_498[] = "struct Chunks* chunks;\n";
-static char symbol_499[] = "struct Chunks* chunks;\n";
-static char symbol_500[] = "chunks = create_chunks();\n";
-static char symbol_501[] = "runtime->named_chunks_";
-static char symbol_502[] = "x";
-static char symbol_503[] = " = chunks;\n";
-static char symbol_504[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_505[] = "x";
-static char symbol_506[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_507[] = "x";
-static char symbol_508[] = "), 0, NULL);\n";
-static char symbol_509[] = "x";
-static char symbol_510[] = "run_action(lookup_action(variables, ";
-static char symbol_511[] = "x";
-static char symbol_512[] = "), runtime);\n";
-static char symbol_513[] = "x";
-static char symbol_514[] = "void placeholder_";
-static char symbol_515[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_516[] = "void placeholder_";
-static char symbol_517[] = "(struct Runtime* runtime, struct Variables* variables) {";
-static char symbol_518[] = "x";
-static char symbol_519[] = "}\n";
-static char symbol_520[] = "\n";
+static char symbol_499[] = "chunks = create_chunks();\n";
+static char symbol_500[] = "runtime->named_chunks_";
+static char symbol_501[] = "x";
+static char symbol_502[] = " = chunks;\n";
+static char symbol_503[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_504[] = "x";
+static char symbol_505[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_506[] = "x";
+static char symbol_507[] = "), 0, NULL);\n";
+static char symbol_508[] = "x";
+static char symbol_509[] = "run_action(lookup_action(variables, ";
+static char symbol_510[] = "x";
+static char symbol_511[] = "), runtime);\n";
+static char symbol_512[] = "x";
+static char symbol_513[] = "void placeholder_";
+static char symbol_514[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_515[] = "void placeholder_";
+static char symbol_516[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_517[] = "x";
+static char symbol_518[] = "}\n";
+static char symbol_519[] = "\n";
+static char symbol_520[] = "struct Chunks* chunks;\n";
 static char symbol_521[] = "struct Chunks* chunks;\n";
-static char symbol_522[] = "struct Chunks* chunks;\n";
-static char symbol_523[] = "chunks = create_chunks();\n";
-static char symbol_524[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_525[] = ", variables, NULL, 0, 0));\n";
-static char symbol_526[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_527[] = "x";
-static char symbol_528[] = "append_data(runtime->current_chunks, ";
-static char symbol_529[] = "x";
-static char symbol_530[] = ", 0, NULL);\n";
-static char symbol_531[] = "#";
-static char symbol_532[] = "x";
-static char symbol_533[] = "(";
-static char symbol_534[] = "y";
-static char symbol_535[] = " ";
-static char symbol_536[] = "z";
-static char symbol_537[] = ")";
-static char symbol_538[] = "runtime->W_";
-static char symbol_539[] = "y";
-static char symbol_540[] = " = ";
-static char symbol_541[] = "x";
-static char symbol_542[] = "(runtime->W_";
-static char symbol_543[] = "y";
-static char symbol_544[] = " ? runtime->W_";
-static char symbol_545[] = "y";
-static char symbol_546[] = " : 0, ";
-static char symbol_547[] = "z";
-static char symbol_548[] = ");\n";
-static char symbol_549[] = ">";
-static char symbol_550[] = "xs";
-static char symbol_551[] = "<";
-static char symbol_552[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_553[] = "xs";
-static char symbol_554[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_522[] = "chunks = create_chunks();\n";
+static char symbol_523[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_524[] = ", variables, NULL, 0, 0));\n";
+static char symbol_525[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_526[] = "x";
+static char symbol_527[] = "append_data(runtime->current_chunks, ";
+static char symbol_528[] = "x";
+static char symbol_529[] = ", 0, NULL);\n";
+static char symbol_530[] = "#";
+static char symbol_531[] = "x";
+static char symbol_532[] = "(";
+static char symbol_533[] = "y";
+static char symbol_534[] = " ";
+static char symbol_535[] = "z";
+static char symbol_536[] = ")";
+static char symbol_537[] = "runtime->W_";
+static char symbol_538[] = "y";
+static char symbol_539[] = " = ";
+static char symbol_540[] = "x";
+static char symbol_541[] = "(runtime->W_";
+static char symbol_542[] = "y";
+static char symbol_543[] = " ? runtime->W_";
+static char symbol_544[] = "y";
+static char symbol_545[] = " : 0, ";
+static char symbol_546[] = "z";
+static char symbol_547[] = ");\n";
+static char symbol_548[] = ">";
+static char symbol_549[] = "xs";
+static char symbol_550[] = "<";
+static char symbol_551[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_552[] = "xs";
+static char symbol_553[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_554[] = "x";
 static char symbol_555[] = "x";
-static char symbol_556[] = "x";
-static char symbol_557[] = "struct Chunks* named_chunks_";
-static char symbol_558[] = "x";
-static char symbol_559[] = ";\n";
+static char symbol_556[] = "struct Chunks* named_chunks_";
+static char symbol_557[] = "x";
+static char symbol_558[] = ";\n";
+static char symbol_559[] = "x";
 static char symbol_560[] = "x";
 static char symbol_561[] = "x";
-static char symbol_562[] = "x";
-static char symbol_563[] = "0";
-static char symbol_564[] = "1";
-static char symbol_565[] = "2";
-static char symbol_566[] = "3";
-static char symbol_567[] = "4";
-static char symbol_568[] = "5";
-static char symbol_569[] = "6";
-static char symbol_570[] = "7";
-static char symbol_571[] = "8";
-static char symbol_572[] = "9";
-static char symbol_573[] = "{";
-static char symbol_574[] = "x";
-static char symbol_575[] = "*";
-static char symbol_576[] = "y";
-static char symbol_577[] = "}";
-static char symbol_578[] = "for (int i=0; i < ";
-static char symbol_579[] = "y";
-static char symbol_580[] = "; i++) {\n";
-static char symbol_581[] = "append_data(runtime->current_chunks, ";
-static char symbol_582[] = "x";
-static char symbol_583[] = ", 0, NULL);\n";
-static char symbol_584[] = "}\n";
-static char symbol_585[] = "x";
-static char symbol_586[] = "(runtime->W_";
-static char symbol_587[] = "x";
-static char symbol_588[] = " ? runtime->W_";
-static char symbol_589[] = "x";
-static char symbol_590[] = " : 0)";
-static char symbol_591[] = "(";
-static char symbol_592[] = "x";
-static char symbol_593[] = "-";
-static char symbol_594[] = "y";
-static char symbol_595[] = ")";
-static char symbol_596[] = "((runtime->W_";
-static char symbol_597[] = "x";
-static char symbol_598[] = " ? runtime->W_";
-static char symbol_599[] = "x";
-static char symbol_600[] = " : 0)-";
-static char symbol_601[] = "y";
-static char symbol_602[] = ")";
-static char symbol_603[] = "\"";
-static char symbol_604[] = "xs";
-static char symbol_605[] = "\"";
-static char symbol_606[] = "static char symbol_";
-static char symbol_607[] = "[] = \"";
-static char symbol_608[] = "xs";
-static char symbol_609[] = "\";\n";
-static char symbol_610[] = "buffer_from_cstring(symbol_";
-static char symbol_611[] = ", sizeof(symbol_";
-static char symbol_612[] = ")-1)";
-static char symbol_613[] = "x";
-static char symbol_614[] = "xs";
-static char symbol_615[] = "lookup_action(variables, ";
-static char symbol_616[] = "x";
-static char symbol_617[] = ")";
-static char symbol_618[] = "xs";
-static char symbol_619[] = ".";
-static char symbol_620[] = "x";
-static char symbol_621[] = "->";
-static char symbol_622[] = "x";
-static char symbol_623[] = "W[";
-static char symbol_624[] = "x";
-static char symbol_625[] = "]";
-static char symbol_626[] = "x";
-static char symbol_627[] = "unsigned int W_";
-static char symbol_628[] = "x";
-static char symbol_629[] = ";\n";
-static char symbol_630[] = "x";
-static char symbol_631[] = "\\\"";
-static char symbol_632[] = "\"";
-static char symbol_633[] = "xs";
-static char symbol_634[] = "static char symbol_";
-static char symbol_635[] = "[] = \"";
-static char symbol_636[] = "xs";
-static char symbol_637[] = "\";\n";
-static char symbol_638[] = "buffer_from_cstring(symbol_";
-static char symbol_639[] = ", sizeof(symbol_";
-static char symbol_640[] = ")-1)";
-static char symbol_641[] = "\'";
-static char symbol_642[] = "\\\'";
-static char symbol_643[] = "\"";
-static char symbol_644[] = "\\\"";
-static char symbol_645[] = "x";
-static char symbol_646[] = "static char symbol_";
-static char symbol_647[] = "[] = \"";
-static char symbol_648[] = "x";
-static char symbol_649[] = "\";\n";
-static char symbol_650[] = "buffer_from_cstring(symbol_";
-static char symbol_651[] = ", sizeof(symbol_";
-static char symbol_652[] = ")-1)";
-static char symbol_653[] = "a";
-static char symbol_654[] = "b";
-static char symbol_655[] = "c";
-static char symbol_656[] = "d";
-static char symbol_657[] = "e";
-static char symbol_658[] = "f";
-static char symbol_659[] = "g";
-static char symbol_660[] = "h";
-static char symbol_661[] = "i";
-static char symbol_662[] = "j";
-static char symbol_663[] = "k";
-static char symbol_664[] = "l";
-static char symbol_665[] = "m";
-static char symbol_666[] = "n";
-static char symbol_667[] = "o";
-static char symbol_668[] = "p";
-static char symbol_669[] = "q";
-static char symbol_670[] = "r";
-static char symbol_671[] = "s";
-static char symbol_672[] = "t";
-static char symbol_673[] = "u";
-static char symbol_674[] = "v";
-static char symbol_675[] = "w";
-static char symbol_676[] = "x";
-static char symbol_677[] = "y";
-static char symbol_678[] = "z";
-static char symbol_679[] = "A";
-static char symbol_680[] = "B";
-static char symbol_681[] = "C";
-static char symbol_682[] = "D";
-static char symbol_683[] = "E";
-static char symbol_684[] = "F";
-static char symbol_685[] = "G";
-static char symbol_686[] = "H";
-static char symbol_687[] = "I";
-static char symbol_688[] = "J";
-static char symbol_689[] = "K";
-static char symbol_690[] = "L";
-static char symbol_691[] = "M";
-static char symbol_692[] = "N";
-static char symbol_693[] = "O";
-static char symbol_694[] = "P";
-static char symbol_695[] = "Q";
-static char symbol_696[] = "R";
-static char symbol_697[] = "S";
-static char symbol_698[] = "T";
-static char symbol_699[] = "U";
-static char symbol_700[] = "V";
-static char symbol_701[] = "W";
-static char symbol_702[] = "X";
-static char symbol_703[] = "Y";
-static char symbol_704[] = "Z";
-static char symbol_705[] = " ";
-static char symbol_706[] = "\n";
+static char symbol_562[] = "0";
+static char symbol_563[] = "1";
+static char symbol_564[] = "2";
+static char symbol_565[] = "3";
+static char symbol_566[] = "4";
+static char symbol_567[] = "5";
+static char symbol_568[] = "6";
+static char symbol_569[] = "7";
+static char symbol_570[] = "8";
+static char symbol_571[] = "9";
+static char symbol_572[] = "{";
+static char symbol_573[] = "x";
+static char symbol_574[] = "*";
+static char symbol_575[] = "y";
+static char symbol_576[] = "}";
+static char symbol_577[] = "for (int i=0; i < ";
+static char symbol_578[] = "y";
+static char symbol_579[] = "; i++) {\n";
+static char symbol_580[] = "append_data(runtime->current_chunks, ";
+static char symbol_581[] = "x";
+static char symbol_582[] = ", 0, NULL);\n";
+static char symbol_583[] = "}\n";
+static char symbol_584[] = "x";
+static char symbol_585[] = "(runtime->W_";
+static char symbol_586[] = "x";
+static char symbol_587[] = " ? runtime->W_";
+static char symbol_588[] = "x";
+static char symbol_589[] = " : 0)";
+static char symbol_590[] = "(";
+static char symbol_591[] = "x";
+static char symbol_592[] = "-";
+static char symbol_593[] = "y";
+static char symbol_594[] = ")";
+static char symbol_595[] = "((runtime->W_";
+static char symbol_596[] = "x";
+static char symbol_597[] = " ? runtime->W_";
+static char symbol_598[] = "x";
+static char symbol_599[] = " : 0)-";
+static char symbol_600[] = "y";
+static char symbol_601[] = ")";
+static char symbol_602[] = "\"";
+static char symbol_603[] = "xs";
+static char symbol_604[] = "\"";
+static char symbol_605[] = "static char symbol_";
+static char symbol_606[] = "[] = \"";
+static char symbol_607[] = "xs";
+static char symbol_608[] = "\";\n";
+static char symbol_609[] = "buffer_from_cstring(symbol_";
+static char symbol_610[] = ", sizeof(symbol_";
+static char symbol_611[] = ")-1)";
+static char symbol_612[] = "x";
+static char symbol_613[] = "xs";
+static char symbol_614[] = "lookup_action(variables, ";
+static char symbol_615[] = "x";
+static char symbol_616[] = ")";
+static char symbol_617[] = "xs";
+static char symbol_618[] = ".";
+static char symbol_619[] = "x";
+static char symbol_620[] = "->";
+static char symbol_621[] = "x";
+static char symbol_622[] = "W[";
+static char symbol_623[] = "x";
+static char symbol_624[] = "]";
+static char symbol_625[] = "x";
+static char symbol_626[] = "unsigned int W_";
+static char symbol_627[] = "x";
+static char symbol_628[] = ";\n";
+static char symbol_629[] = "x";
+static char symbol_630[] = "\\\"";
+static char symbol_631[] = "\"";
+static char symbol_632[] = "xs";
+static char symbol_633[] = "static char symbol_";
+static char symbol_634[] = "[] = \"";
+static char symbol_635[] = "xs";
+static char symbol_636[] = "\";\n";
+static char symbol_637[] = "buffer_from_cstring(symbol_";
+static char symbol_638[] = ", sizeof(symbol_";
+static char symbol_639[] = ")-1)";
+static char symbol_640[] = "\'";
+static char symbol_641[] = "\\\'";
+static char symbol_642[] = "\"";
+static char symbol_643[] = "\\\"";
+static char symbol_644[] = "x";
+static char symbol_645[] = "static char symbol_";
+static char symbol_646[] = "[] = \"";
+static char symbol_647[] = "x";
+static char symbol_648[] = "\";\n";
+static char symbol_649[] = "buffer_from_cstring(symbol_";
+static char symbol_650[] = ", sizeof(symbol_";
+static char symbol_651[] = ")-1)";
+static char symbol_652[] = "a";
+static char symbol_653[] = "b";
+static char symbol_654[] = "c";
+static char symbol_655[] = "d";
+static char symbol_656[] = "e";
+static char symbol_657[] = "f";
+static char symbol_658[] = "g";
+static char symbol_659[] = "h";
+static char symbol_660[] = "i";
+static char symbol_661[] = "j";
+static char symbol_662[] = "k";
+static char symbol_663[] = "l";
+static char symbol_664[] = "m";
+static char symbol_665[] = "n";
+static char symbol_666[] = "o";
+static char symbol_667[] = "p";
+static char symbol_668[] = "q";
+static char symbol_669[] = "r";
+static char symbol_670[] = "s";
+static char symbol_671[] = "t";
+static char symbol_672[] = "u";
+static char symbol_673[] = "v";
+static char symbol_674[] = "w";
+static char symbol_675[] = "x";
+static char symbol_676[] = "y";
+static char symbol_677[] = "z";
+static char symbol_678[] = "A";
+static char symbol_679[] = "B";
+static char symbol_680[] = "C";
+static char symbol_681[] = "D";
+static char symbol_682[] = "E";
+static char symbol_683[] = "F";
+static char symbol_684[] = "G";
+static char symbol_685[] = "H";
+static char symbol_686[] = "I";
+static char symbol_687[] = "J";
+static char symbol_688[] = "K";
+static char symbol_689[] = "L";
+static char symbol_690[] = "M";
+static char symbol_691[] = "N";
+static char symbol_692[] = "O";
+static char symbol_693[] = "P";
+static char symbol_694[] = "Q";
+static char symbol_695[] = "R";
+static char symbol_696[] = "S";
+static char symbol_697[] = "T";
+static char symbol_698[] = "U";
+static char symbol_699[] = "V";
+static char symbol_700[] = "W";
+static char symbol_701[] = "X";
+static char symbol_702[] = "Y";
+static char symbol_703[] = "Z";
+static char symbol_704[] = " ";
+static char symbol_705[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1396,36 +1394,36 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_263, sizeof(symbol_263)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_264, sizeof(symbol_264)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_265, sizeof(symbol_265)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_266, sizeof(symbol_266)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_267, sizeof(symbol_267)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_268, sizeof(symbol_268)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_269, sizeof(symbol_269)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_270, sizeof(symbol_270)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_271, sizeof(symbol_271)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_272, sizeof(symbol_272)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_273, sizeof(symbol_273)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_274, sizeof(symbol_274)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_symbols = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
     chunks = create_chunks();
     runtime->named_chunks_definitions = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_275, sizeof(symbol_275)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_274, sizeof(symbol_274)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actions = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
     chunks = create_chunks();
     runtime->named_chunks_placeholders = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_276, sizeof(symbol_276)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_277, sizeof(symbol_277)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_275, sizeof(symbol_275)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_276, sizeof(symbol_276)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_277, sizeof(symbol_277)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_278, sizeof(symbol_278)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_279, sizeof(symbol_279)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_280, sizeof(symbol_280)-1), 0, NULL);
@@ -1435,24 +1433,23 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_284, sizeof(symbol_284)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_285, sizeof(symbol_285)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_286, sizeof(symbol_286)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_287, sizeof(symbol_287)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_287, sizeof(symbol_287)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_288, sizeof(symbol_288)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_289, sizeof(symbol_289)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_289, sizeof(symbol_289)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_290, sizeof(symbol_290)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_291, sizeof(symbol_291)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_292, sizeof(symbol_292)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_293, sizeof(symbol_293)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_293, sizeof(symbol_293)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_294, sizeof(symbol_294)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_295, sizeof(symbol_295)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_296, sizeof(symbol_296)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_296, sizeof(symbol_296)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_297, sizeof(symbol_297)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_298, sizeof(symbol_298)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_298, sizeof(symbol_298)-1), 0, NULL);
 }
 
 void action_3(struct Runtime* runtime, struct Variables* variables) {
@@ -1461,35 +1458,35 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_305, sizeof(symbol_305)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_306, sizeof(symbol_306)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_303, sizeof(symbol_303)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_304, sizeof(symbol_304)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_305, sizeof(symbol_305)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_308, sizeof(symbol_308)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_309, sizeof(symbol_309)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_306, sizeof(symbol_306)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_307, sizeof(symbol_307)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_308, sizeof(symbol_308)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_309, sizeof(symbol_309)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_310, sizeof(symbol_310)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_311, sizeof(symbol_311)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_ruleVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
 }
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1)), runtime);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1)), runtime);
 }
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
@@ -1497,25 +1494,25 @@ void action_6(struct Runtime* runtime, struct Variables* variables) {
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_orInit = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1)), runtime);
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1), 0, NULL);
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
@@ -1524,22 +1521,22 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1548,33 +1545,33 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1)), runtime);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1586,51 +1583,51 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1640,13 +1637,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1655,39 +1652,39 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1696,23 +1693,23 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1722,39 +1719,39 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_orInit;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1763,30 +1760,30 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
@@ -1795,20 +1792,20 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1817,27 +1814,27 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
@@ -1847,60 +1844,60 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1910,48 +1907,48 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -1961,29 +1958,29 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -1993,14 +1990,14 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
@@ -2010,21 +2007,21 @@ void action_47(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
@@ -2034,17 +2031,17 @@ void action_49(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2127,11 +2124,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_300, sizeof(symbol_300)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_299, sizeof(symbol_299)-1), _);
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_301, sizeof(symbol_301)-1);
+                data = buffer_from_cstring(symbol_300, sizeof(symbol_300)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2142,11 +2139,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
                     _ = rule_space(parse_state);
                     if (_) {
                         _ = rule_ors(parse_state);
-                        append_named_action(variables, buffer_from_cstring(symbol_302, sizeof(symbol_302)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_301, sizeof(symbol_301)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_303, sizeof(symbol_303)-1);
+                                data = buffer_from_cstring(symbol_302, sizeof(symbol_302)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2181,7 +2178,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
     _ = rule_maybeorbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), _);
         if (_) {
             star_variables = create_variables();
             star_start_pos = parse_state->pos;
@@ -2195,7 +2192,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), _);
             if (_) {
                 return create_action(action_4, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2216,7 +2213,7 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
     _ = rule_orbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1), _);
         if (_) {
             return create_action(action_5, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2253,7 +2250,7 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_324, sizeof(symbol_324)-1);
+        data = buffer_from_cstring(symbol_323, sizeof(symbol_323)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2277,7 +2274,7 @@ struct Action* rule_orcase(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchAnd(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), _);
     if (_) {
         return create_action(action_7, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2296,10 +2293,10 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_matchExpr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), _);
         if (_) {
             _ = rule_matchAnd(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), _);
             if (_) {
                 return create_action(action_8, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2309,7 +2306,7 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_action(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), _);
     if (_) {
         return create_action(action_9, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2326,7 +2323,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_337, sizeof(symbol_337)-1);
+    data = buffer_from_cstring(symbol_336, sizeof(symbol_336)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2335,7 +2332,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), _);
         if (_) {
             return create_action(action_10, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2343,7 +2340,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_349, sizeof(symbol_349)-1);
+    data = buffer_from_cstring(symbol_348, sizeof(symbol_348)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2352,7 +2349,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2361,10 +2358,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2382,7 +2379,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_365, sizeof(symbol_365)-1);
+    data = buffer_from_cstring(symbol_364, sizeof(symbol_364)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2391,7 +2388,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2414,9 +2411,9 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_371, sizeof(symbol_371)-1);
+        data = buffer_from_cstring(symbol_370, sizeof(symbol_370)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2431,7 +2428,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2455,7 +2452,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_392, sizeof(symbol_392)-1);
+        data = buffer_from_cstring(symbol_391, sizeof(symbol_391)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2471,7 +2468,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2489,7 +2486,7 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2513,7 +2510,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_400, sizeof(symbol_400)-1);
+    data = buffer_from_cstring(symbol_399, sizeof(symbol_399)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2526,7 +2523,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_401, sizeof(symbol_401)-1);
+    data = buffer_from_cstring(symbol_400, sizeof(symbol_400)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2553,14 +2550,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_407, sizeof(symbol_407)-1);
+    data = buffer_from_cstring(symbol_406, sizeof(symbol_406)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2580,7 +2577,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2588,7 +2585,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_422, sizeof(symbol_422)-1);
+    data = buffer_from_cstring(symbol_421, sizeof(symbol_421)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2602,7 +2599,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2624,7 +2621,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_441, sizeof(symbol_441)-1);
+        data = buffer_from_cstring(symbol_440, sizeof(symbol_440)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2634,7 +2631,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_442, sizeof(symbol_442)-1);
+                data = buffer_from_cstring(symbol_441, sizeof(symbol_441)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2654,11 +2651,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_444, sizeof(symbol_444)-1);
+                            data = buffer_from_cstring(symbol_443, sizeof(symbol_443)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2696,7 +2693,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_457, sizeof(symbol_457)-1);
+        data = buffer_from_cstring(symbol_456, sizeof(symbol_456)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2705,9 +2702,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
+                data = buffer_from_cstring(symbol_458, sizeof(symbol_458)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2727,11 +2724,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
+                            data = buffer_from_cstring(symbol_460, sizeof(symbol_460)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2752,7 +2749,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_470, sizeof(symbol_470)-1);
+        data = buffer_from_cstring(symbol_469, sizeof(symbol_469)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2761,9 +2758,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_472, sizeof(symbol_472)-1);
+                data = buffer_from_cstring(symbol_471, sizeof(symbol_471)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2781,7 +2778,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_480, sizeof(symbol_480)-1);
+        data = buffer_from_cstring(symbol_479, sizeof(symbol_479)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2790,11 +2787,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_482, sizeof(symbol_482)-1);
+                    data = buffer_from_cstring(symbol_481, sizeof(symbol_481)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2814,11 +2811,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_484, sizeof(symbol_484)-1);
+                                data = buffer_from_cstring(symbol_483, sizeof(symbol_483)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2840,7 +2837,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_496, sizeof(symbol_496)-1);
+        data = buffer_from_cstring(symbol_495, sizeof(symbol_495)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2849,7 +2846,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2861,7 +2858,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2872,7 +2869,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2883,7 +2880,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2894,7 +2891,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2904,7 +2901,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_531, sizeof(symbol_531)-1);
+        data = buffer_from_cstring(symbol_530, sizeof(symbol_530)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2913,9 +2910,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_533, sizeof(symbol_533)-1);
+                data = buffer_from_cstring(symbol_532, sizeof(symbol_532)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2924,9 +2921,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_535, sizeof(symbol_535)-1);
+                        data = buffer_from_cstring(symbol_534, sizeof(symbol_534)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2935,9 +2932,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_537, sizeof(symbol_537)-1);
+                                data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2959,7 +2956,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_549, sizeof(symbol_549)-1);
+        data = buffer_from_cstring(symbol_548, sizeof(symbol_548)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2979,11 +2976,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_551, sizeof(symbol_551)-1);
+                    data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3010,7 +3007,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3027,7 +3024,7 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3048,7 +3045,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
+    data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3060,7 +3057,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
+    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3072,7 +3069,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
+    data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3084,7 +3081,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
+    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3096,7 +3093,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
+    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3108,7 +3105,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
+    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3120,7 +3117,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
+    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3132,7 +3129,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
+    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3144,7 +3141,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
+    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3156,7 +3153,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
+    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3179,7 +3176,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
+    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3190,9 +3187,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
+                data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3201,11 +3198,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_577, sizeof(symbol_577)-1);
+                            data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3235,14 +3232,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_591, sizeof(symbol_591)-1);
+    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3251,9 +3248,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
+            data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3262,9 +3259,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
+                    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3294,7 +3291,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_603, sizeof(symbol_603)-1);
+    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3314,9 +3311,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_605, sizeof(symbol_605)-1);
+            data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3344,7 +3341,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3358,7 +3355,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3376,7 +3373,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_619, sizeof(symbol_619)-1);
+    data = buffer_from_cstring(symbol_618, sizeof(symbol_618)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3385,7 +3382,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3403,7 +3400,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_623, sizeof(symbol_623)-1);
+    data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3417,9 +3414,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_625, sizeof(symbol_625)-1);
+            data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3443,7 +3440,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
+    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3456,7 +3453,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
+    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3509,7 +3506,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3528,7 +3525,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
+    data = buffer_from_cstring(symbol_640, sizeof(symbol_640)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3551,7 +3548,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
+    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3564,7 +3561,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
+    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3608,7 +3605,7 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3674,6 +3671,18 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
+    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
     data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3972,6 +3981,15 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    return NULL;
+}
+
+struct Action* rule_upper(struct ParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    struct Action* _;
+    struct Buffer* data;
+    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
@@ -3984,15 +4002,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    return NULL;
-}
-
-struct Action* rule_upper(struct ParseState* parse_state) {
-    unsigned int or_backtrack_pos;
-    unsigned int action_start_pos;
-    struct Action* _;
-    struct Buffer* data;
-    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
@@ -4293,18 +4302,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
     return NULL;
 }
 
@@ -4344,7 +4341,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4356,7 +4353,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(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 0f8a666..4a05bd3 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -265,7 +265,6 @@ file = rule*:xs space !. -> {
                         < "}\n"
                         "*last_char = chunk->data->buffer[i];\n"
                         "putchar(*last_char);\n"
-                        "fflush(stdout);\n"
                     < "}\n"
                 < "}\n"
                 "render_chunks(chunk->chunks, last_char, indent);\n"

commit 8d600cccb5ff8e1c55bf06165086faeaf50c5607
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Wed Nov 5 20:38:24 2025 +0100

    Add fork example

diff --git a/make.sh b/make.sh
index 825fe31..c4bad87 100755
--- a/make.sh
+++ b/make.sh
@@ -13,6 +13,7 @@ experiments() {
     experiment sizes
     experiment strings
     experiment bitmanipulation
+    experiment fork
 }
 
 experiment() {
diff --git a/src/experiments/fork.c b/src/experiments/fork.c
new file mode 100644
index 0000000..27e32d7
--- /dev/null
+++ b/src/experiments/fork.c
@@ -0,0 +1,17 @@
+#include <stdio.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+int main(void) {
+    pid_t pid = fork();
+    if (pid) {
+        int status;
+        printf("in parent\n");
+        waitpid(pid, &status, 0);
+        printf("status = %d\n", WEXITSTATUS(status));
+        return 0;
+    } else {
+        printf("in fork\n");
+        return 2;
+    }
+}

2025-11-04 23:04 Rickard pushed to rlworkbench

commit f06b498f99d835d7021e3683767309dca2f3fadc
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 23:00:13 2025 +0100

    Replace unseen(string) with unique(string)

diff --git a/src/meta/meta.c b/src/meta/meta.c
index a34d682..ee90119 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -618,413 +618,374 @@ static char symbol_335[] = "y";
 static char symbol_336[] = "y";
 static char symbol_337[] = "!";
 static char symbol_338[] = "x";
-static char symbol_339[] = "nlookahead_pos";
-static char symbol_340[] = "unsigned int ";
-static char symbol_341[] = "nlookahead_pos";
-static char symbol_342[] = ";\n";
-static char symbol_343[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_344[] = "x";
-static char symbol_345[] = "if (_ == NULL) {\n";
-static char symbol_346[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_347[] = "} else {\n";
-static char symbol_348[] = "_ = NULL;\n";
-static char symbol_349[] = "}\n";
-static char symbol_350[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_351[] = "&";
-static char symbol_352[] = "x";
-static char symbol_353[] = "lookahead_pos";
-static char symbol_354[] = "unsigned int ";
-static char symbol_355[] = "lookahead_pos";
-static char symbol_356[] = ";\n";
-static char symbol_357[] = "lookahead_pos = parse_state->pos;\n";
-static char symbol_358[] = "x";
-static char symbol_359[] = "if (_ == NULL) {\n";
-static char symbol_360[] = "_ = NULL;\n";
-static char symbol_361[] = "} else {\n";
-static char symbol_362[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_363[] = "}\n";
-static char symbol_364[] = "parse_state->pos = lookahead_pos;\n";
-static char symbol_365[] = "x";
-static char symbol_366[] = "y";
-static char symbol_367[] = "x";
-static char symbol_368[] = "y";
-static char symbol_369[] = ":";
+static char symbol_339[] = "unsigned int nlookahead_pos;\n";
+static char symbol_340[] = "unsigned int nlookahead_pos;\n";
+static char symbol_341[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_342[] = "x";
+static char symbol_343[] = "if (_ == NULL) {\n";
+static char symbol_344[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_345[] = "} else {\n";
+static char symbol_346[] = "_ = NULL;\n";
+static char symbol_347[] = "}\n";
+static char symbol_348[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_349[] = "&";
+static char symbol_350[] = "x";
+static char symbol_351[] = "unsigned int lookahead_pos;\n";
+static char symbol_352[] = "unsigned int lookahead_pos;\n";
+static char symbol_353[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_354[] = "x";
+static char symbol_355[] = "if (_ == NULL) {\n";
+static char symbol_356[] = "_ = NULL;\n";
+static char symbol_357[] = "} else {\n";
+static char symbol_358[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_359[] = "}\n";
+static char symbol_360[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_361[] = "x";
+static char symbol_362[] = "y";
+static char symbol_363[] = "x";
+static char symbol_364[] = "y";
+static char symbol_365[] = ":";
+static char symbol_366[] = "x";
+static char symbol_367[] = "append_named_action(variables, ";
+static char symbol_368[] = "x";
+static char symbol_369[] = ", _);\n";
 static char symbol_370[] = "x";
-static char symbol_371[] = "append_named_action(variables, ";
-static char symbol_372[] = "x";
-static char symbol_373[] = ", _);\n";
-static char symbol_374[] = "x";
-static char symbol_375[] = "*";
-static char symbol_376[] = "star_variables";
-static char symbol_377[] = "struct Variables* ";
-static char symbol_378[] = "star_variables";
-static char symbol_379[] = ";\n";
-static char symbol_380[] = "star_pos";
-static char symbol_381[] = "unsigned int ";
-static char symbol_382[] = "star_pos";
-static char symbol_383[] = ";\n";
-static char symbol_384[] = "star_start_pos";
-static char symbol_385[] = "unsigned int ";
-static char symbol_386[] = "star_start_pos";
-static char symbol_387[] = ";\n";
-static char symbol_388[] = "star_variables = create_variables();\n";
-static char symbol_389[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_390[] = "while (1) {\n";
-static char symbol_391[] = "star_pos = parse_state->pos;\n";
-static char symbol_392[] = "x";
-static char symbol_393[] = "if (_ == NULL) {\n";
-static char symbol_394[] = "parse_state->pos = star_pos;\n";
-static char symbol_395[] = "break;\n";
-static char symbol_396[] = "}\n";
-static char symbol_397[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_398[] = "}\n";
-static char symbol_399[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char symbol_400[] = "x";
-static char symbol_401[] = "x";
-static char symbol_402[] = "_";
+static char symbol_371[] = "*";
+static char symbol_372[] = "struct Variables* star_variables;\n";
+static char symbol_373[] = "struct Variables* star_variables;\n";
+static char symbol_374[] = "unsigned int star_pos;\n";
+static char symbol_375[] = "unsigned int star_pos;\n";
+static char symbol_376[] = "unsigned int star_start_pos;\n";
+static char symbol_377[] = "unsigned int star_start_pos;\n";
+static char symbol_378[] = "star_variables = create_variables();\n";
+static char symbol_379[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_380[] = "while (1) {\n";
+static char symbol_381[] = "star_pos = parse_state->pos;\n";
+static char symbol_382[] = "x";
+static char symbol_383[] = "if (_ == NULL) {\n";
+static char symbol_384[] = "parse_state->pos = star_pos;\n";
+static char symbol_385[] = "break;\n";
+static char symbol_386[] = "}\n";
+static char symbol_387[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_388[] = "}\n";
+static char symbol_389[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char symbol_390[] = "x";
+static char symbol_391[] = "x";
+static char symbol_392[] = "_";
+static char symbol_393[] = "x";
+static char symbol_394[] = "bitpattern <<= 1;\n";
+static char symbol_395[] = "bitmask <<= 1;\n";
+static char symbol_396[] = "x";
+static char symbol_397[] = "x";
+static char symbol_398[] = "x";
+static char symbol_399[] = "bitmask |= 1;\n";
+static char symbol_400[] = "0";
+static char symbol_401[] = "1";
+static char symbol_402[] = "bitpattern |= 1;\n";
 static char symbol_403[] = "x";
-static char symbol_404[] = "bitpattern <<= 1;\n";
-static char symbol_405[] = "bitmask <<= 1;\n";
-static char symbol_406[] = "x";
-static char symbol_407[] = "x";
-static char symbol_408[] = "x";
-static char symbol_409[] = "bitmask |= 1;\n";
-static char symbol_410[] = "0";
-static char symbol_411[] = "1";
-static char symbol_412[] = "bitpattern |= 1;\n";
-static char symbol_413[] = "x";
-static char symbol_414[] = "_ = rule_";
-static char symbol_415[] = "x";
-static char symbol_416[] = "(parse_state);\n";
-static char symbol_417[] = "0b";
-static char symbol_418[] = "xs";
-static char symbol_419[] = "bitpattern";
-static char symbol_420[] = "unsigned char ";
-static char symbol_421[] = "bitpattern";
-static char symbol_422[] = ";\n";
-static char symbol_423[] = "bitmask";
-static char symbol_424[] = "unsigned char ";
-static char symbol_425[] = "bitmask";
-static char symbol_426[] = ";\n";
-static char symbol_427[] = "bitpattern = 0;\n";
-static char symbol_428[] = "bitmask = 0;\n";
-static char symbol_429[] = "xs";
-static char symbol_430[] = "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 symbol_431[] = "parse_state->pos += 1;\n";
-static char symbol_432[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_433[] = "} else {\n";
-static char symbol_434[] = "_ = NULL;\n";
-static char symbol_435[] = "}\n";
-static char symbol_436[] = ".";
-static char symbol_437[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_438[] = "parse_state->pos += 1;\n";
-static char symbol_439[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_440[] = "} else {\n";
-static char symbol_441[] = "_ = NULL;\n";
-static char symbol_442[] = "}\n";
-static char symbol_443[] = "x";
-static char symbol_444[] = "data";
-static char symbol_445[] = "struct Buffer* ";
-static char symbol_446[] = "data";
-static char symbol_447[] = ";\n";
-static char symbol_448[] = "data = ";
-static char symbol_449[] = "x";
-static char symbol_450[] = ";\n";
-static char symbol_451[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_452[] = "parse_state->pos += data->size;\n";
-static char symbol_453[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_454[] = "} else {\n";
-static char symbol_455[] = "_ = NULL;\n";
-static char symbol_456[] = "}\n";
-static char symbol_457[] = "->";
-static char symbol_458[] = "{";
-static char symbol_459[] = "xs";
-static char symbol_460[] = "}";
-static char symbol_461[] = "void action_";
-static char symbol_462[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_463[] = "xs";
-static char symbol_464[] = "}\n";
-static char symbol_465[] = "\n";
-static char symbol_466[] = "variables";
-static char symbol_467[] = "struct Variables* ";
-static char symbol_468[] = "variables";
-static char symbol_469[] = ";\n";
-static char symbol_470[] = "variables";
-static char symbol_471[] = "variables";
-static char symbol_472[] = " = create_variables();\n";
-static char symbol_473[] = "return create_action(action_";
-static char symbol_474[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_475[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_476[] = "unseen(";
+static char symbol_404[] = "_ = rule_";
+static char symbol_405[] = "x";
+static char symbol_406[] = "(parse_state);\n";
+static char symbol_407[] = "0b";
+static char symbol_408[] = "xs";
+static char symbol_409[] = "unsigned char bitpattern;\n";
+static char symbol_410[] = "unsigned char bitpattern;\n";
+static char symbol_411[] = "unsigned char bitmask;\n";
+static char symbol_412[] = "unsigned char bitmask;\n";
+static char symbol_413[] = "bitpattern = 0;\n";
+static char symbol_414[] = "bitmask = 0;\n";
+static char symbol_415[] = "xs";
+static char symbol_416[] = "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 symbol_417[] = "parse_state->pos += 1;\n";
+static char symbol_418[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_419[] = "} else {\n";
+static char symbol_420[] = "_ = NULL;\n";
+static char symbol_421[] = "}\n";
+static char symbol_422[] = ".";
+static char symbol_423[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_424[] = "parse_state->pos += 1;\n";
+static char symbol_425[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_426[] = "} else {\n";
+static char symbol_427[] = "_ = NULL;\n";
+static char symbol_428[] = "}\n";
+static char symbol_429[] = "x";
+static char symbol_430[] = "struct Buffer* data;\n";
+static char symbol_431[] = "struct Buffer* data;\n";
+static char symbol_432[] = "data = ";
+static char symbol_433[] = "x";
+static char symbol_434[] = ";\n";
+static char symbol_435[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_436[] = "parse_state->pos += data->size;\n";
+static char symbol_437[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_438[] = "} else {\n";
+static char symbol_439[] = "_ = NULL;\n";
+static char symbol_440[] = "}\n";
+static char symbol_441[] = "->";
+static char symbol_442[] = "{";
+static char symbol_443[] = "xs";
+static char symbol_444[] = "}";
+static char symbol_445[] = "void action_";
+static char symbol_446[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_447[] = "xs";
+static char symbol_448[] = "}\n";
+static char symbol_449[] = "\n";
+static char symbol_450[] = "struct Variables* variables;\n";
+static char symbol_451[] = "struct Variables* variables;\n";
+static char symbol_452[] = "variables = create_variables();\n";
+static char symbol_453[] = "variables = create_variables();\n";
+static char symbol_454[] = "return create_action(action_";
+static char symbol_455[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_456[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_457[] = "unseen(";
+static char symbol_458[] = "x";
+static char symbol_459[] = ") -> {";
+static char symbol_460[] = "ys";
+static char symbol_461[] = "}";
+static char symbol_462[] = "struct Action* action;\n";
+static char symbol_463[] = "struct Action* action;\n";
+static char symbol_464[] = "action = lookup_action(variables, ";
+static char symbol_465[] = "x";
+static char symbol_466[] = ");\n";
+static char symbol_467[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_468[] = "ys";
+static char symbol_469[] = "}\n";
+static char symbol_470[] = "unique(";
+static char symbol_471[] = "x";
+static char symbol_472[] = ")";
+static char symbol_473[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_474[] = "x";
+static char symbol_475[] = ")) {\n";
+static char symbol_476[] = "append_data(runtime->current_chunks, ";
 static char symbol_477[] = "x";
-static char symbol_478[] = ") -> {";
-static char symbol_479[] = "ys";
-static char symbol_480[] = "}";
-static char symbol_481[] = "action";
-static char symbol_482[] = "struct Action* ";
-static char symbol_483[] = "action";
-static char symbol_484[] = ";\n";
-static char symbol_485[] = "action = lookup_action(variables, ";
-static char symbol_486[] = "x";
-static char symbol_487[] = ");\n";
-static char symbol_488[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_489[] = "ys";
-static char symbol_490[] = "}\n";
-static char symbol_491[] = "unseen(";
-static char symbol_492[] = "x";
-static char symbol_493[] = ") -> {";
+static char symbol_478[] = ", 0, NULL);\n";
+static char symbol_479[] = "}\n";
+static char symbol_480[] = ">";
+static char symbol_481[] = "x";
+static char symbol_482[] = "{";
+static char symbol_483[] = "ys";
+static char symbol_484[] = "}";
+static char symbol_485[] = "struct Chunks* last_chunks;\n";
+static char symbol_486[] = "struct Chunks* last_chunks;\n";
+static char symbol_487[] = "struct Chunks* chunks;\n";
+static char symbol_488[] = "struct Chunks* chunks;\n";
+static char symbol_489[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_490[] = "chunks = runtime->named_chunks_";
+static char symbol_491[] = "x";
+static char symbol_492[] = ";\n";
+static char symbol_493[] = "runtime->current_chunks = chunks;\n";
 static char symbol_494[] = "ys";
-static char symbol_495[] = "}";
-static char symbol_496[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_495[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_496[] = "<";
 static char symbol_497[] = "x";
-static char symbol_498[] = ")) {\n";
-static char symbol_499[] = "ys";
-static char symbol_500[] = "}\n";
-static char symbol_501[] = "unique(";
+static char symbol_498[] = "struct Chunks* chunks;\n";
+static char symbol_499[] = "struct Chunks* chunks;\n";
+static char symbol_500[] = "chunks = create_chunks();\n";
+static char symbol_501[] = "runtime->named_chunks_";
 static char symbol_502[] = "x";
-static char symbol_503[] = ")";
-static char symbol_504[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_503[] = " = chunks;\n";
+static char symbol_504[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
 static char symbol_505[] = "x";
-static char symbol_506[] = ")) {\n";
-static char symbol_507[] = "append_data(runtime->current_chunks, ";
-static char symbol_508[] = "x";
-static char symbol_509[] = ", 0, NULL);\n";
-static char symbol_510[] = "}\n";
-static char symbol_511[] = ">";
-static char symbol_512[] = "x";
-static char symbol_513[] = "{";
-static char symbol_514[] = "ys";
-static char symbol_515[] = "}";
-static char symbol_516[] = "last_chunks";
-static char symbol_517[] = "struct Chunks* ";
-static char symbol_518[] = "last_chunks";
-static char symbol_519[] = ";\n";
-static char symbol_520[] = "chunks";
-static char symbol_521[] = "struct Chunks* ";
-static char symbol_522[] = "chunks";
-static char symbol_523[] = ";\n";
-static char symbol_524[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_525[] = "chunks = runtime->named_chunks_";
-static char symbol_526[] = "x";
-static char symbol_527[] = ";\n";
-static char symbol_528[] = "runtime->current_chunks = chunks;\n";
-static char symbol_529[] = "ys";
-static char symbol_530[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_531[] = "<";
+static char symbol_506[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_507[] = "x";
+static char symbol_508[] = "), 0, NULL);\n";
+static char symbol_509[] = "x";
+static char symbol_510[] = "run_action(lookup_action(variables, ";
+static char symbol_511[] = "x";
+static char symbol_512[] = "), runtime);\n";
+static char symbol_513[] = "x";
+static char symbol_514[] = "void placeholder_";
+static char symbol_515[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_516[] = "void placeholder_";
+static char symbol_517[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_518[] = "x";
+static char symbol_519[] = "}\n";
+static char symbol_520[] = "\n";
+static char symbol_521[] = "struct Chunks* chunks;\n";
+static char symbol_522[] = "struct Chunks* chunks;\n";
+static char symbol_523[] = "chunks = create_chunks();\n";
+static char symbol_524[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_525[] = ", variables, NULL, 0, 0));\n";
+static char symbol_526[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_527[] = "x";
+static char symbol_528[] = "append_data(runtime->current_chunks, ";
+static char symbol_529[] = "x";
+static char symbol_530[] = ", 0, NULL);\n";
+static char symbol_531[] = "#";
 static char symbol_532[] = "x";
-static char symbol_533[] = "chunks";
-static char symbol_534[] = "struct Chunks* ";
-static char symbol_535[] = "chunks";
-static char symbol_536[] = ";\n";
-static char symbol_537[] = "chunks = create_chunks();\n";
-static char symbol_538[] = "runtime->named_chunks_";
-static char symbol_539[] = "x";
-static char symbol_540[] = " = chunks;\n";
-static char symbol_541[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_542[] = "x";
-static char symbol_543[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_544[] = "x";
-static char symbol_545[] = "), 0, NULL);\n";
-static char symbol_546[] = "x";
-static char symbol_547[] = "run_action(lookup_action(variables, ";
-static char symbol_548[] = "x";
-static char symbol_549[] = "), runtime);\n";
-static char symbol_550[] = "x";
-static char symbol_551[] = "void placeholder_";
-static char symbol_552[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_553[] = "void placeholder_";
-static char symbol_554[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_533[] = "(";
+static char symbol_534[] = "y";
+static char symbol_535[] = " ";
+static char symbol_536[] = "z";
+static char symbol_537[] = ")";
+static char symbol_538[] = "runtime->W_";
+static char symbol_539[] = "y";
+static char symbol_540[] = " = ";
+static char symbol_541[] = "x";
+static char symbol_542[] = "(runtime->W_";
+static char symbol_543[] = "y";
+static char symbol_544[] = " ? runtime->W_";
+static char symbol_545[] = "y";
+static char symbol_546[] = " : 0, ";
+static char symbol_547[] = "z";
+static char symbol_548[] = ");\n";
+static char symbol_549[] = ">";
+static char symbol_550[] = "xs";
+static char symbol_551[] = "<";
+static char symbol_552[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_553[] = "xs";
+static char symbol_554[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
 static char symbol_555[] = "x";
-static char symbol_556[] = "}\n";
-static char symbol_557[] = "\n";
-static char symbol_558[] = "chunks";
-static char symbol_559[] = "struct Chunks* ";
-static char symbol_560[] = "chunks";
-static char symbol_561[] = ";\n";
-static char symbol_562[] = "chunks = create_chunks();\n";
-static char symbol_563[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_564[] = ", variables, NULL, 0, 0));\n";
-static char symbol_565[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_566[] = "x";
-static char symbol_567[] = "append_data(runtime->current_chunks, ";
-static char symbol_568[] = "x";
-static char symbol_569[] = ", 0, NULL);\n";
-static char symbol_570[] = "#";
-static char symbol_571[] = "x";
-static char symbol_572[] = "(";
-static char symbol_573[] = "y";
-static char symbol_574[] = " ";
-static char symbol_575[] = "z";
-static char symbol_576[] = ")";
-static char symbol_577[] = "runtime->W_";
-static char symbol_578[] = "y";
-static char symbol_579[] = " = ";
-static char symbol_580[] = "x";
-static char symbol_581[] = "(runtime->W_";
-static char symbol_582[] = "y";
-static char symbol_583[] = " ? runtime->W_";
-static char symbol_584[] = "y";
-static char symbol_585[] = " : 0, ";
-static char symbol_586[] = "z";
-static char symbol_587[] = ");\n";
-static char symbol_588[] = ">";
-static char symbol_589[] = "xs";
-static char symbol_590[] = "<";
-static char symbol_591[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_592[] = "xs";
-static char symbol_593[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_594[] = "x";
-static char symbol_595[] = "x";
-static char symbol_596[] = "struct Chunks* named_chunks_";
+static char symbol_556[] = "x";
+static char symbol_557[] = "struct Chunks* named_chunks_";
+static char symbol_558[] = "x";
+static char symbol_559[] = ";\n";
+static char symbol_560[] = "x";
+static char symbol_561[] = "x";
+static char symbol_562[] = "x";
+static char symbol_563[] = "0";
+static char symbol_564[] = "1";
+static char symbol_565[] = "2";
+static char symbol_566[] = "3";
+static char symbol_567[] = "4";
+static char symbol_568[] = "5";
+static char symbol_569[] = "6";
+static char symbol_570[] = "7";
+static char symbol_571[] = "8";
+static char symbol_572[] = "9";
+static char symbol_573[] = "{";
+static char symbol_574[] = "x";
+static char symbol_575[] = "*";
+static char symbol_576[] = "y";
+static char symbol_577[] = "}";
+static char symbol_578[] = "for (int i=0; i < ";
+static char symbol_579[] = "y";
+static char symbol_580[] = "; i++) {\n";
+static char symbol_581[] = "append_data(runtime->current_chunks, ";
+static char symbol_582[] = "x";
+static char symbol_583[] = ", 0, NULL);\n";
+static char symbol_584[] = "}\n";
+static char symbol_585[] = "x";
+static char symbol_586[] = "(runtime->W_";
+static char symbol_587[] = "x";
+static char symbol_588[] = " ? runtime->W_";
+static char symbol_589[] = "x";
+static char symbol_590[] = " : 0)";
+static char symbol_591[] = "(";
+static char symbol_592[] = "x";
+static char symbol_593[] = "-";
+static char symbol_594[] = "y";
+static char symbol_595[] = ")";
+static char symbol_596[] = "((runtime->W_";
 static char symbol_597[] = "x";
-static char symbol_598[] = ";\n";
+static char symbol_598[] = " ? runtime->W_";
 static char symbol_599[] = "x";
-static char symbol_600[] = "x";
-static char symbol_601[] = "x";
-static char symbol_602[] = "0";
-static char symbol_603[] = "1";
-static char symbol_604[] = "2";
-static char symbol_605[] = "3";
-static char symbol_606[] = "4";
-static char symbol_607[] = "5";
-static char symbol_608[] = "6";
-static char symbol_609[] = "7";
-static char symbol_610[] = "8";
-static char symbol_611[] = "9";
-static char symbol_612[] = "{";
+static char symbol_600[] = " : 0)-";
+static char symbol_601[] = "y";
+static char symbol_602[] = ")";
+static char symbol_603[] = "\"";
+static char symbol_604[] = "xs";
+static char symbol_605[] = "\"";
+static char symbol_606[] = "static char symbol_";
+static char symbol_607[] = "[] = \"";
+static char symbol_608[] = "xs";
+static char symbol_609[] = "\";\n";
+static char symbol_610[] = "buffer_from_cstring(symbol_";
+static char symbol_611[] = ", sizeof(symbol_";
+static char symbol_612[] = ")-1)";
 static char symbol_613[] = "x";
-static char symbol_614[] = "*";
-static char symbol_615[] = "y";
-static char symbol_616[] = "}";
-static char symbol_617[] = "for (int i=0; i < ";
-static char symbol_618[] = "y";
-static char symbol_619[] = "; i++) {\n";
-static char symbol_620[] = "append_data(runtime->current_chunks, ";
-static char symbol_621[] = "x";
-static char symbol_622[] = ", 0, NULL);\n";
-static char symbol_623[] = "}\n";
+static char symbol_614[] = "xs";
+static char symbol_615[] = "lookup_action(variables, ";
+static char symbol_616[] = "x";
+static char symbol_617[] = ")";
+static char symbol_618[] = "xs";
+static char symbol_619[] = ".";
+static char symbol_620[] = "x";
+static char symbol_621[] = "->";
+static char symbol_622[] = "x";
+static char symbol_623[] = "W[";
 static char symbol_624[] = "x";
-static char symbol_625[] = "(runtime->W_";
+static char symbol_625[] = "]";
 static char symbol_626[] = "x";
-static char symbol_627[] = " ? runtime->W_";
+static char symbol_627[] = "unsigned int W_";
 static char symbol_628[] = "x";
-static char symbol_629[] = " : 0)";
-static char symbol_630[] = "(";
-static char symbol_631[] = "x";
-static char symbol_632[] = "-";
-static char symbol_633[] = "y";
-static char symbol_634[] = ")";
-static char symbol_635[] = "((runtime->W_";
-static char symbol_636[] = "x";
-static char symbol_637[] = " ? runtime->W_";
-static char symbol_638[] = "x";
-static char symbol_639[] = " : 0)-";
-static char symbol_640[] = "y";
-static char symbol_641[] = ")";
-static char symbol_642[] = "\"";
-static char symbol_643[] = "xs";
-static char symbol_644[] = "\"";
-static char symbol_645[] = "static char symbol_";
-static char symbol_646[] = "[] = \"";
-static char symbol_647[] = "xs";
-static char symbol_648[] = "\";\n";
-static char symbol_649[] = "buffer_from_cstring(symbol_";
-static char symbol_650[] = ", sizeof(symbol_";
-static char symbol_651[] = ")-1)";
-static char symbol_652[] = "x";
-static char symbol_653[] = "xs";
-static char symbol_654[] = "lookup_action(variables, ";
-static char symbol_655[] = "x";
-static char symbol_656[] = ")";
-static char symbol_657[] = "xs";
-static char symbol_658[] = ".";
-static char symbol_659[] = "x";
-static char symbol_660[] = "->";
-static char symbol_661[] = "x";
-static char symbol_662[] = "W[";
-static char symbol_663[] = "x";
-static char symbol_664[] = "]";
-static char symbol_665[] = "x";
-static char symbol_666[] = "unsigned int W_";
-static char symbol_667[] = "x";
-static char symbol_668[] = ";\n";
-static char symbol_669[] = "x";
-static char symbol_670[] = "\\\"";
-static char symbol_671[] = "\"";
-static char symbol_672[] = "xs";
-static char symbol_673[] = "static char symbol_";
-static char symbol_674[] = "[] = \"";
-static char symbol_675[] = "xs";
-static char symbol_676[] = "\";\n";
-static char symbol_677[] = "buffer_from_cstring(symbol_";
-static char symbol_678[] = ", sizeof(symbol_";
-static char symbol_679[] = ")-1)";
-static char symbol_680[] = "\'";
-static char symbol_681[] = "\\\'";
-static char symbol_682[] = "\"";
-static char symbol_683[] = "\\\"";
-static char symbol_684[] = "x";
-static char symbol_685[] = "static char symbol_";
-static char symbol_686[] = "[] = \"";
-static char symbol_687[] = "x";
-static char symbol_688[] = "\";\n";
-static char symbol_689[] = "buffer_from_cstring(symbol_";
-static char symbol_690[] = ", sizeof(symbol_";
-static char symbol_691[] = ")-1)";
-static char symbol_692[] = "a";
-static char symbol_693[] = "b";
-static char symbol_694[] = "c";
-static char symbol_695[] = "d";
-static char symbol_696[] = "e";
-static char symbol_697[] = "f";
-static char symbol_698[] = "g";
-static char symbol_699[] = "h";
-static char symbol_700[] = "i";
-static char symbol_701[] = "j";
-static char symbol_702[] = "k";
-static char symbol_703[] = "l";
-static char symbol_704[] = "m";
-static char symbol_705[] = "n";
-static char symbol_706[] = "o";
-static char symbol_707[] = "p";
-static char symbol_708[] = "q";
-static char symbol_709[] = "r";
-static char symbol_710[] = "s";
-static char symbol_711[] = "t";
-static char symbol_712[] = "u";
-static char symbol_713[] = "v";
-static char symbol_714[] = "w";
-static char symbol_715[] = "x";
-static char symbol_716[] = "y";
-static char symbol_717[] = "z";
-static char symbol_718[] = "A";
-static char symbol_719[] = "B";
-static char symbol_720[] = "C";
-static char symbol_721[] = "D";
-static char symbol_722[] = "E";
-static char symbol_723[] = "F";
-static char symbol_724[] = "G";
-static char symbol_725[] = "H";
-static char symbol_726[] = "I";
-static char symbol_727[] = "J";
-static char symbol_728[] = "K";
-static char symbol_729[] = "L";
-static char symbol_730[] = "M";
-static char symbol_731[] = "N";
-static char symbol_732[] = "O";
-static char symbol_733[] = "P";
-static char symbol_734[] = "Q";
-static char symbol_735[] = "R";
-static char symbol_736[] = "S";
-static char symbol_737[] = "T";
-static char symbol_738[] = "U";
-static char symbol_739[] = "V";
-static char symbol_740[] = "W";
-static char symbol_741[] = "X";
-static char symbol_742[] = "Y";
-static char symbol_743[] = "Z";
-static char symbol_744[] = " ";
-static char symbol_745[] = "\n";
+static char symbol_629[] = ";\n";
+static char symbol_630[] = "x";
+static char symbol_631[] = "\\\"";
+static char symbol_632[] = "\"";
+static char symbol_633[] = "xs";
+static char symbol_634[] = "static char symbol_";
+static char symbol_635[] = "[] = \"";
+static char symbol_636[] = "xs";
+static char symbol_637[] = "\";\n";
+static char symbol_638[] = "buffer_from_cstring(symbol_";
+static char symbol_639[] = ", sizeof(symbol_";
+static char symbol_640[] = ")-1)";
+static char symbol_641[] = "\'";
+static char symbol_642[] = "\\\'";
+static char symbol_643[] = "\"";
+static char symbol_644[] = "\\\"";
+static char symbol_645[] = "x";
+static char symbol_646[] = "static char symbol_";
+static char symbol_647[] = "[] = \"";
+static char symbol_648[] = "x";
+static char symbol_649[] = "\";\n";
+static char symbol_650[] = "buffer_from_cstring(symbol_";
+static char symbol_651[] = ", sizeof(symbol_";
+static char symbol_652[] = ")-1)";
+static char symbol_653[] = "a";
+static char symbol_654[] = "b";
+static char symbol_655[] = "c";
+static char symbol_656[] = "d";
+static char symbol_657[] = "e";
+static char symbol_658[] = "f";
+static char symbol_659[] = "g";
+static char symbol_660[] = "h";
+static char symbol_661[] = "i";
+static char symbol_662[] = "j";
+static char symbol_663[] = "k";
+static char symbol_664[] = "l";
+static char symbol_665[] = "m";
+static char symbol_666[] = "n";
+static char symbol_667[] = "o";
+static char symbol_668[] = "p";
+static char symbol_669[] = "q";
+static char symbol_670[] = "r";
+static char symbol_671[] = "s";
+static char symbol_672[] = "t";
+static char symbol_673[] = "u";
+static char symbol_674[] = "v";
+static char symbol_675[] = "w";
+static char symbol_676[] = "x";
+static char symbol_677[] = "y";
+static char symbol_678[] = "z";
+static char symbol_679[] = "A";
+static char symbol_680[] = "B";
+static char symbol_681[] = "C";
+static char symbol_682[] = "D";
+static char symbol_683[] = "E";
+static char symbol_684[] = "F";
+static char symbol_685[] = "G";
+static char symbol_686[] = "H";
+static char symbol_687[] = "I";
+static char symbol_688[] = "J";
+static char symbol_689[] = "K";
+static char symbol_690[] = "L";
+static char symbol_691[] = "M";
+static char symbol_692[] = "N";
+static char symbol_693[] = "O";
+static char symbol_694[] = "P";
+static char symbol_695[] = "Q";
+static char symbol_696[] = "R";
+static char symbol_697[] = "S";
+static char symbol_698[] = "T";
+static char symbol_699[] = "U";
+static char symbol_700[] = "V";
+static char symbol_701[] = "W";
+static char symbol_702[] = "X";
+static char symbol_703[] = "Y";
+static char symbol_704[] = "Z";
+static char symbol_705[] = " ";
+static char symbol_706[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1565,22 +1526,20 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     runtime->current_chunks = chunks;
     if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1))) {
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1)), runtime);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1589,35 +1548,33 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1629,61 +1586,51 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
     }
-    runtime->current_chunks = last_chunks;
-    last_chunks = runtime->current_chunks;
-    chunks = runtime->named_chunks_ruleVars;
-    runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1693,13 +1640,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1708,47 +1655,39 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), 0, NULL);
     }
-    runtime->current_chunks = last_chunks;
-    last_chunks = runtime->current_chunks;
-    chunks = runtime->named_chunks_ruleVars;
-    runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1757,25 +1696,23 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1785,42 +1722,39 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_orInit;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1829,308 +1763,288 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
-}
-
-void action_31(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
 }
 
-void action_32(struct Runtime* runtime, struct Variables* variables) {
+void action_31(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
 }
 
-void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
+void action_32(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
 }
 
-void action_34(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
+void action_33(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
 }
 
-void action_35(struct Runtime* runtime, struct Variables* variables) {
+void action_34(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_1 = inc(runtime->W_1 ? runtime->W_1 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
+}
+
+void action_35(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), 0, NULL);
-}
-
-void action_39(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1)), runtime);
 }
 
-void action_40(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
+void action_39(struct Runtime* runtime, struct Variables* variables) {
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1)), runtime);
 }
 
-void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
+void action_40(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
 }
 
-void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
+void action_41(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
 }
 
-void action_43(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
+void action_42(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
 }
 
-void action_44(struct Runtime* runtime, struct Variables* variables) {
+void action_43(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
 }
 
-void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1)), runtime);
+void action_44(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
 }
 
-void action_46(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_660, sizeof(symbol_660)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_661, sizeof(symbol_661)-1)), runtime);
+void action_45(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1)), runtime);
 }
 
-void action_47(struct Runtime* runtime, struct Variables* variables) {
+void action_46(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_665, sizeof(symbol_665)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_666, sizeof(symbol_666)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_667, sizeof(symbol_667)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_668, sizeof(symbol_668)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_669, sizeof(symbol_669)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1)), runtime);
 }
 
-void action_48(struct Runtime* runtime, struct Variables* variables) {
+void action_47(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_673, sizeof(symbol_673)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_674, sizeof(symbol_674)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_675, sizeof(symbol_675)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_676, sizeof(symbol_676)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_677, sizeof(symbol_677)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_678, sizeof(symbol_678)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_679, sizeof(symbol_679)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), 0, NULL);
 }
 
-void action_49(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_683, sizeof(symbol_683)-1), 0, NULL);
+void action_48(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
 }
 
-void action_50(struct Runtime* runtime, struct Variables* variables) {
+void action_49(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_685, sizeof(symbol_685)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_686, sizeof(symbol_686)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_687, sizeof(symbol_687)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_688, sizeof(symbol_688)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_689, sizeof(symbol_689)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_690, sizeof(symbol_690)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_691, sizeof(symbol_691)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2429,7 +2343,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_351, sizeof(symbol_351)-1);
+    data = buffer_from_cstring(symbol_349, sizeof(symbol_349)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2438,7 +2352,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2447,10 +2361,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2468,7 +2382,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_369, sizeof(symbol_369)-1);
+    data = buffer_from_cstring(symbol_365, sizeof(symbol_365)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2477,7 +2391,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2500,9 +2414,9 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_375, sizeof(symbol_375)-1);
+        data = buffer_from_cstring(symbol_371, sizeof(symbol_371)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2517,7 +2431,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2541,7 +2455,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_402, sizeof(symbol_402)-1);
+        data = buffer_from_cstring(symbol_392, sizeof(symbol_392)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2557,7 +2471,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2575,7 +2489,7 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2599,7 +2513,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_410, sizeof(symbol_410)-1);
+    data = buffer_from_cstring(symbol_400, sizeof(symbol_400)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2612,7 +2526,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_411, sizeof(symbol_411)-1);
+    data = buffer_from_cstring(symbol_401, sizeof(symbol_401)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2639,14 +2553,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_417, sizeof(symbol_417)-1);
+    data = buffer_from_cstring(symbol_407, sizeof(symbol_407)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2666,7 +2580,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2674,7 +2588,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_436, sizeof(symbol_436)-1);
+    data = buffer_from_cstring(symbol_422, sizeof(symbol_422)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2688,7 +2602,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2710,7 +2624,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_457, sizeof(symbol_457)-1);
+        data = buffer_from_cstring(symbol_441, sizeof(symbol_441)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2720,7 +2634,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_458, sizeof(symbol_458)-1);
+                data = buffer_from_cstring(symbol_442, sizeof(symbol_442)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2740,11 +2654,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_460, sizeof(symbol_460)-1);
+                            data = buffer_from_cstring(symbol_444, sizeof(symbol_444)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2782,7 +2696,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_476, sizeof(symbol_476)-1);
+        data = buffer_from_cstring(symbol_457, sizeof(symbol_457)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2791,9 +2705,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_478, sizeof(symbol_478)-1);
+                data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2813,11 +2727,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_480, sizeof(symbol_480)-1);
+                            data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2838,7 +2752,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_491, sizeof(symbol_491)-1);
+        data = buffer_from_cstring(symbol_470, sizeof(symbol_470)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2847,9 +2761,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_493, sizeof(symbol_493)-1);
+                data = buffer_from_cstring(symbol_472, sizeof(symbol_472)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2857,34 +2771,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                     _ = NULL;
                 }
                 if (_) {
-                    star_variables = create_variables();
-                    star_start_pos = parse_state->pos;
-                    while (1) {
-                        star_pos = parse_state->pos;
-                        _ = rule_actionexpr(parse_state);
-                        if (_ == NULL) {
-                            parse_state->pos = star_pos;
-                            break;
-                        }
-                        append_named_action(star_variables, NULL, _);
-                    }
-                    _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), _);
-                    if (_) {
-                        _ = rule_space(parse_state);
-                        if (_) {
-                            data = buffer_from_cstring(symbol_495, sizeof(symbol_495)-1);
-                            if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-                                parse_state->pos += data->size;
-                                _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-                            } else {
-                                _ = NULL;
-                            }
-                            if (_) {
-                                return create_action(action_29, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
-                            }
-                        }
-                    }
+                    return create_action(action_29, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                 }
             }
         }
@@ -2894,36 +2781,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_501, sizeof(symbol_501)-1);
-        if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-            parse_state->pos += data->size;
-            _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-        } else {
-            _ = NULL;
-        }
-        if (_) {
-            _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
-            if (_) {
-                data = buffer_from_cstring(symbol_503, sizeof(symbol_503)-1);
-                if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-                    parse_state->pos += data->size;
-                    _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-                } else {
-                    _ = NULL;
-                }
-                if (_) {
-                    return create_action(action_30, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
-                }
-            }
-        }
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    variables = create_variables();
-    _ = rule_space(parse_state);
-    if (_) {
-        data = buffer_from_cstring(symbol_511, sizeof(symbol_511)-1);
+        data = buffer_from_cstring(symbol_480, sizeof(symbol_480)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2932,11 +2790,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_513, sizeof(symbol_513)-1);
+                    data = buffer_from_cstring(symbol_482, sizeof(symbol_482)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2956,11 +2814,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_515, sizeof(symbol_515)-1);
+                                data = buffer_from_cstring(symbol_484, sizeof(symbol_484)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2968,7 +2826,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                                     _ = NULL;
                                 }
                                 if (_) {
-                                    return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return create_action(action_30, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -2982,7 +2840,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_531, sizeof(symbol_531)-1);
+        data = buffer_from_cstring(symbol_496, sizeof(symbol_496)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2991,9 +2849,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), _);
             if (_) {
-                return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3003,9 +2861,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), _);
         if (_) {
-            return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -3014,9 +2872,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), _);
         if (_) {
-            return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -3025,9 +2883,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), _);
         if (_) {
-            return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -3036,9 +2894,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), _);
         if (_) {
-            return create_action(action_36, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -3046,7 +2904,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
+        data = buffer_from_cstring(symbol_531, sizeof(symbol_531)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3055,9 +2913,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
+                data = buffer_from_cstring(symbol_533, sizeof(symbol_533)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3066,9 +2924,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
+                        data = buffer_from_cstring(symbol_535, sizeof(symbol_535)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3077,9 +2935,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
+                                data = buffer_from_cstring(symbol_537, sizeof(symbol_537)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3087,7 +2945,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                                     _ = NULL;
                                 }
                                 if (_) {
-                                    return create_action(action_37, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return create_action(action_36, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -3101,7 +2959,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
+        data = buffer_from_cstring(symbol_549, sizeof(symbol_549)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3121,11 +2979,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
+                    data = buffer_from_cstring(symbol_551, sizeof(symbol_551)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3133,7 +2991,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         _ = NULL;
                     }
                     if (_) {
-                        return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                        return create_action(action_37, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
@@ -3152,9 +3010,9 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), _);
     if (_) {
-        return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return NULL;
 }
@@ -3169,9 +3027,9 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), _);
     if (_) {
-        return create_action(action_40, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3190,7 +3048,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
+    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3202,7 +3060,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_603, sizeof(symbol_603)-1);
+    data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3214,7 +3072,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
+    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3226,7 +3084,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_605, sizeof(symbol_605)-1);
+    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3238,7 +3096,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_606, sizeof(symbol_606)-1);
+    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3250,7 +3108,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_607, sizeof(symbol_607)-1);
+    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3262,7 +3120,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_608, sizeof(symbol_608)-1);
+    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3274,7 +3132,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_609, sizeof(symbol_609)-1);
+    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3286,7 +3144,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
+    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3298,7 +3156,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_611, sizeof(symbol_611)-1);
+    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3321,7 +3179,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_612, sizeof(symbol_612)-1);
+    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3332,9 +3190,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_614, sizeof(symbol_614)-1);
+                data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3343,11 +3201,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_616, sizeof(symbol_616)-1);
+                            data = buffer_from_cstring(symbol_577, sizeof(symbol_577)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3355,7 +3213,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                                 _ = NULL;
                             }
                             if (_) {
-                                return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                return create_action(action_40, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                             }
                         }
                     }
@@ -3377,14 +3235,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), _);
     if (_) {
-        return create_action(action_42, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
+    data = buffer_from_cstring(symbol_591, sizeof(symbol_591)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3393,9 +3251,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
+            data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3404,9 +3262,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_634, sizeof(symbol_634)-1);
+                    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3414,7 +3272,7 @@ struct Action* rule_expr(struct ParseState* parse_state) {
                         _ = NULL;
                     }
                     if (_) {
-                        return create_action(action_43, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                        return create_action(action_42, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
@@ -3436,7 +3294,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
+    data = buffer_from_cstring(symbol_603, sizeof(symbol_603)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3456,9 +3314,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_644, sizeof(symbol_644)-1);
+            data = buffer_from_cstring(symbol_605, sizeof(symbol_605)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3466,7 +3324,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
                 _ = NULL;
             }
             if (_) {
-                return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_43, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3486,7 +3344,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3500,9 +3358,9 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), _);
         if (_) {
-            return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return NULL;
@@ -3518,7 +3376,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
+    data = buffer_from_cstring(symbol_619, sizeof(symbol_619)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3527,9 +3385,9 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), _);
         if (_) {
-            return create_action(action_46, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return NULL;
@@ -3545,7 +3403,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
+    data = buffer_from_cstring(symbol_623, sizeof(symbol_623)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3559,9 +3417,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
+            data = buffer_from_cstring(symbol_625, sizeof(symbol_625)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3569,7 +3427,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
                 _ = NULL;
             }
             if (_) {
-                return create_action(action_47, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_46, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3585,7 +3443,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3598,7 +3456,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
+    data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3651,11 +3509,11 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_672, sizeof(symbol_672)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
-                return create_action(action_48, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_47, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3670,7 +3528,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
+    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3693,7 +3551,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
+    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3706,7 +3564,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
+    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3714,7 +3572,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
         _ = NULL;
     }
     if (_) {
-        return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_48, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3750,9 +3608,9 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_684, sizeof(symbol_684)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), _);
     if (_) {
-        return create_action(action_50, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return NULL;
 }
@@ -3816,7 +3674,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
+    data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3828,7 +3686,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
+    data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3840,7 +3698,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
+    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3852,7 +3710,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
+    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3864,7 +3722,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
+    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3876,7 +3734,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
+    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3888,7 +3746,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
+    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3900,7 +3758,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
+    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3912,7 +3770,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
+    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3924,7 +3782,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
+    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3936,7 +3794,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
+    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3948,7 +3806,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
+    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3960,7 +3818,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
+    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3972,7 +3830,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
+    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3984,7 +3842,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
+    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3996,7 +3854,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
+    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4008,7 +3866,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
+    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4020,7 +3878,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
+    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4032,7 +3890,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
+    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4044,7 +3902,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
+    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4056,7 +3914,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
+    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4068,7 +3926,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
+    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4080,7 +3938,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_714, sizeof(symbol_714)-1);
+    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4092,7 +3950,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_715, sizeof(symbol_715)-1);
+    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4104,7 +3962,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_716, sizeof(symbol_716)-1);
+    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4116,7 +3974,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_717, sizeof(symbol_717)-1);
+    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4137,7 +3995,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_718, sizeof(symbol_718)-1);
+    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4149,7 +4007,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_719, sizeof(symbol_719)-1);
+    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4161,7 +4019,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_720, sizeof(symbol_720)-1);
+    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4173,7 +4031,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_721, sizeof(symbol_721)-1);
+    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4185,7 +4043,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_722, sizeof(symbol_722)-1);
+    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4197,7 +4055,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_723, sizeof(symbol_723)-1);
+    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4209,7 +4067,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_724, sizeof(symbol_724)-1);
+    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4221,7 +4079,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_725, sizeof(symbol_725)-1);
+    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4233,7 +4091,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_726, sizeof(symbol_726)-1);
+    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4245,7 +4103,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_727, sizeof(symbol_727)-1);
+    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4257,7 +4115,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_728, sizeof(symbol_728)-1);
+    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4269,7 +4127,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_729, sizeof(symbol_729)-1);
+    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4281,7 +4139,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_730, sizeof(symbol_730)-1);
+    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4293,7 +4151,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_731, sizeof(symbol_731)-1);
+    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4305,7 +4163,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_732, sizeof(symbol_732)-1);
+    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4317,7 +4175,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_733, sizeof(symbol_733)-1);
+    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4329,7 +4187,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_734, sizeof(symbol_734)-1);
+    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4341,7 +4199,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_735, sizeof(symbol_735)-1);
+    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4353,7 +4211,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_736, sizeof(symbol_736)-1);
+    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4365,7 +4223,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_737, sizeof(symbol_737)-1);
+    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4377,7 +4235,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_738, sizeof(symbol_738)-1);
+    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4389,7 +4247,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_739, sizeof(symbol_739)-1);
+    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4401,7 +4259,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_740, sizeof(symbol_740)-1);
+    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4413,7 +4271,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_741, sizeof(symbol_741)-1);
+    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4425,7 +4283,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_742, sizeof(symbol_742)-1);
+    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4437,7 +4295,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_743, sizeof(symbol_743)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4486,7 +4344,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_744, sizeof(symbol_744)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4498,7 +4356,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_745, sizeof(symbol_745)-1);
+    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(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 dad3e25..0f8a666 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -352,9 +352,7 @@ matchAnd =
 matchExpr =
     | '!' matchExprPrimitive:x -> {
         >ruleVars {
-            unseen("nlookahead_pos") -> {
-                "unsigned int " "nlookahead_pos" ";\n"
-            }
+            unique("unsigned int nlookahead_pos;\n")
         }
         "nlookahead_pos = parse_state->pos;\n"
         x
@@ -367,9 +365,7 @@ matchExpr =
     }
     | '&' matchExprPrimitive:x -> {
         >ruleVars {
-            unseen("lookahead_pos") -> {
-                "unsigned int " "lookahead_pos" ";\n"
-            }
+            unique("unsigned int lookahead_pos;\n")
         }
         "lookahead_pos = parse_state->pos;\n"
         x
@@ -391,19 +387,11 @@ matchAssign =
 matchExprRepeat =
     | matchExprPrimitive:x '*' -> {
         >ruleVars {
-            unseen("star_variables") -> {
-                "struct Variables* " "star_variables" ";\n"
-            }
+            unique("struct Variables* star_variables;\n")
         }
         >ruleVars {
-            unseen("star_pos") -> {
-                "unsigned int " "star_pos" ";\n"
-            }
-        }
-        >ruleVars {
-            unseen("star_start_pos") -> {
-                "unsigned int " "star_start_pos" ";\n"
-            }
+            unique("unsigned int star_pos;\n")
+            unique("unsigned int star_start_pos;\n")
         }
         "star_variables = create_variables();\n"
         "star_start_pos = parse_state->pos;\n"
@@ -445,14 +433,8 @@ matchExprPrimitive =
     }
     | '0b' sepBit*:xs -> {
         >ruleVars {
-            unseen("bitpattern") -> {
-                "unsigned char " "bitpattern" ";\n"
-            }
-        }
-        >ruleVars {
-            unseen("bitmask") -> {
-                "unsigned char " "bitmask" ";\n"
-            }
+            unique("unsigned char bitpattern;\n")
+            unique("unsigned char bitmask;\n")
         }
         "bitpattern = 0;\n"
         "bitmask = 0;\n"
@@ -474,9 +456,7 @@ matchExprPrimitive =
     }
     | charstring:x -> {
         >ruleVars {
-            unseen("data") -> {
-                "struct Buffer* " "data" ";\n"
-            }
+            unique("struct Buffer* data;\n")
         }
         "data = " x ";\n"
         "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n" >
@@ -499,14 +479,10 @@ action =
             "\n"
         }
         >ruleVars {
-            unseen("variables") -> {
-                "struct Variables* " "variables" ";\n"
-            }
+            unique("struct Variables* variables;\n")
         }
         >orInit {
-            unseen("variables") -> {
-                "variables" " = create_variables();\n"
-            }
+            unique("variables = create_variables();\n")
         }
         "return create_action(action_" W[0] ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"
     }
@@ -518,20 +494,13 @@ action =
 actionexpr =
     | space 'unseen(' nameAsSymbol:x ') -> {' actionexpr*:ys space '}' -> {
         >actionVars {
-            unseen("action") -> {
-                "struct Action* " "action" ";\n"
-            }
+            unique("struct Action* action;\n")
         }
         "action = lookup_action(variables, " x ");\n"
         "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n" >
             ys
         < "}\n"
     }
-    | space 'unseen(' string:x ') -> {' actionexpr*:ys space '}' -> {
-        "if (!seen(runtime->current_chunks, " x ")) {\n" >
-            ys
-        < "}\n"
-    }
     | space 'unique(' string:x ')' -> {
         "if (!seen(runtime->current_chunks, " x ")) {\n" >
             "append_data(runtime->current_chunks, " x ", 0, NULL);\n"
@@ -539,12 +508,8 @@ actionexpr =
     }
     | space '>' chunkName:x space '{' actionexpr*:ys space '}' -> {
         >actionVars {
-            unseen("last_chunks") -> {
-                "struct Chunks* " "last_chunks" ";\n"
-            }
-            unseen("chunks") -> {
-                "struct Chunks* " "chunks" ";\n"
-            }
+            unique("struct Chunks* last_chunks;\n")
+            unique("struct Chunks* chunks;\n")
         }
         "last_chunks = runtime->current_chunks;\n"
         "chunks = runtime->named_chunks_" x ";\n"
@@ -554,9 +519,7 @@ actionexpr =
     }
     | space '<' chunkName:x -> {
         >actionVars {
-            unseen("chunks") -> {
-                "struct Chunks* " "chunks" ";\n"
-            }
+            unique("struct Chunks* chunks;\n")
         }
         "chunks = create_chunks();\n"
         "runtime->named_chunks_" x " = chunks;\n"
@@ -580,9 +543,7 @@ actionexpr =
             "\n"
         }
         >actionVars {
-            unseen("chunks") -> {
-                "struct Chunks* " "chunks" ";\n"
-            }
+            unique("struct Chunks* chunks;\n")
         }
         "chunks = create_chunks();\n"
         "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_" W[1] ", variables, NULL, 0, 0));\n"

commit 533c10a2bfc63bc7853d85cb22dfd2b144c47c14
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 22:52:32 2025 +0100

    Support unique

diff --git a/src/meta/meta.c b/src/meta/meta.c
index 2daff03..a34d682 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -780,241 +780,251 @@ static char symbol_497[] = "x";
 static char symbol_498[] = ")) {\n";
 static char symbol_499[] = "ys";
 static char symbol_500[] = "}\n";
-static char symbol_501[] = ">";
+static char symbol_501[] = "unique(";
 static char symbol_502[] = "x";
-static char symbol_503[] = "{";
-static char symbol_504[] = "ys";
-static char symbol_505[] = "}";
-static char symbol_506[] = "last_chunks";
-static char symbol_507[] = "struct Chunks* ";
-static char symbol_508[] = "last_chunks";
-static char symbol_509[] = ";\n";
-static char symbol_510[] = "chunks";
-static char symbol_511[] = "struct Chunks* ";
-static char symbol_512[] = "chunks";
-static char symbol_513[] = ";\n";
-static char symbol_514[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_515[] = "chunks = runtime->named_chunks_";
-static char symbol_516[] = "x";
-static char symbol_517[] = ";\n";
-static char symbol_518[] = "runtime->current_chunks = chunks;\n";
-static char symbol_519[] = "ys";
-static char symbol_520[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_521[] = "<";
-static char symbol_522[] = "x";
-static char symbol_523[] = "chunks";
-static char symbol_524[] = "struct Chunks* ";
-static char symbol_525[] = "chunks";
-static char symbol_526[] = ";\n";
-static char symbol_527[] = "chunks = create_chunks();\n";
-static char symbol_528[] = "runtime->named_chunks_";
-static char symbol_529[] = "x";
-static char symbol_530[] = " = chunks;\n";
-static char symbol_531[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_503[] = ")";
+static char symbol_504[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_505[] = "x";
+static char symbol_506[] = ")) {\n";
+static char symbol_507[] = "append_data(runtime->current_chunks, ";
+static char symbol_508[] = "x";
+static char symbol_509[] = ", 0, NULL);\n";
+static char symbol_510[] = "}\n";
+static char symbol_511[] = ">";
+static char symbol_512[] = "x";
+static char symbol_513[] = "{";
+static char symbol_514[] = "ys";
+static char symbol_515[] = "}";
+static char symbol_516[] = "last_chunks";
+static char symbol_517[] = "struct Chunks* ";
+static char symbol_518[] = "last_chunks";
+static char symbol_519[] = ";\n";
+static char symbol_520[] = "chunks";
+static char symbol_521[] = "struct Chunks* ";
+static char symbol_522[] = "chunks";
+static char symbol_523[] = ";\n";
+static char symbol_524[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_525[] = "chunks = runtime->named_chunks_";
+static char symbol_526[] = "x";
+static char symbol_527[] = ";\n";
+static char symbol_528[] = "runtime->current_chunks = chunks;\n";
+static char symbol_529[] = "ys";
+static char symbol_530[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_531[] = "<";
 static char symbol_532[] = "x";
-static char symbol_533[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_534[] = "x";
-static char symbol_535[] = "), 0, NULL);\n";
-static char symbol_536[] = "x";
-static char symbol_537[] = "run_action(lookup_action(variables, ";
-static char symbol_538[] = "x";
-static char symbol_539[] = "), runtime);\n";
-static char symbol_540[] = "x";
-static char symbol_541[] = "void placeholder_";
-static char symbol_542[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_543[] = "void placeholder_";
-static char symbol_544[] = "(struct Runtime* runtime, struct Variables* variables) {";
-static char symbol_545[] = "x";
-static char symbol_546[] = "}\n";
-static char symbol_547[] = "\n";
-static char symbol_548[] = "chunks";
-static char symbol_549[] = "struct Chunks* ";
-static char symbol_550[] = "chunks";
-static char symbol_551[] = ";\n";
-static char symbol_552[] = "chunks = create_chunks();\n";
-static char symbol_553[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_554[] = ", variables, NULL, 0, 0));\n";
-static char symbol_555[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_556[] = "x";
-static char symbol_557[] = "append_data(runtime->current_chunks, ";
-static char symbol_558[] = "x";
-static char symbol_559[] = ", 0, NULL);\n";
-static char symbol_560[] = "#";
-static char symbol_561[] = "x";
-static char symbol_562[] = "(";
-static char symbol_563[] = "y";
-static char symbol_564[] = " ";
-static char symbol_565[] = "z";
-static char symbol_566[] = ")";
-static char symbol_567[] = "runtime->W_";
-static char symbol_568[] = "y";
-static char symbol_569[] = " = ";
-static char symbol_570[] = "x";
-static char symbol_571[] = "(runtime->W_";
-static char symbol_572[] = "y";
-static char symbol_573[] = " ? runtime->W_";
-static char symbol_574[] = "y";
-static char symbol_575[] = " : 0, ";
-static char symbol_576[] = "z";
-static char symbol_577[] = ");\n";
-static char symbol_578[] = ">";
-static char symbol_579[] = "xs";
-static char symbol_580[] = "<";
-static char symbol_581[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_582[] = "xs";
-static char symbol_583[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_584[] = "x";
-static char symbol_585[] = "x";
-static char symbol_586[] = "struct Chunks* named_chunks_";
-static char symbol_587[] = "x";
-static char symbol_588[] = ";\n";
-static char symbol_589[] = "x";
-static char symbol_590[] = "x";
-static char symbol_591[] = "x";
-static char symbol_592[] = "0";
-static char symbol_593[] = "1";
-static char symbol_594[] = "2";
-static char symbol_595[] = "3";
-static char symbol_596[] = "4";
-static char symbol_597[] = "5";
-static char symbol_598[] = "6";
-static char symbol_599[] = "7";
-static char symbol_600[] = "8";
-static char symbol_601[] = "9";
-static char symbol_602[] = "{";
-static char symbol_603[] = "x";
-static char symbol_604[] = "*";
-static char symbol_605[] = "y";
-static char symbol_606[] = "}";
-static char symbol_607[] = "for (int i=0; i < ";
-static char symbol_608[] = "y";
-static char symbol_609[] = "; i++) {\n";
-static char symbol_610[] = "append_data(runtime->current_chunks, ";
-static char symbol_611[] = "x";
-static char symbol_612[] = ", 0, NULL);\n";
-static char symbol_613[] = "}\n";
-static char symbol_614[] = "x";
-static char symbol_615[] = "(runtime->W_";
-static char symbol_616[] = "x";
-static char symbol_617[] = " ? runtime->W_";
-static char symbol_618[] = "x";
-static char symbol_619[] = " : 0)";
-static char symbol_620[] = "(";
+static char symbol_533[] = "chunks";
+static char symbol_534[] = "struct Chunks* ";
+static char symbol_535[] = "chunks";
+static char symbol_536[] = ";\n";
+static char symbol_537[] = "chunks = create_chunks();\n";
+static char symbol_538[] = "runtime->named_chunks_";
+static char symbol_539[] = "x";
+static char symbol_540[] = " = chunks;\n";
+static char symbol_541[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_542[] = "x";
+static char symbol_543[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_544[] = "x";
+static char symbol_545[] = "), 0, NULL);\n";
+static char symbol_546[] = "x";
+static char symbol_547[] = "run_action(lookup_action(variables, ";
+static char symbol_548[] = "x";
+static char symbol_549[] = "), runtime);\n";
+static char symbol_550[] = "x";
+static char symbol_551[] = "void placeholder_";
+static char symbol_552[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_553[] = "void placeholder_";
+static char symbol_554[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_555[] = "x";
+static char symbol_556[] = "}\n";
+static char symbol_557[] = "\n";
+static char symbol_558[] = "chunks";
+static char symbol_559[] = "struct Chunks* ";
+static char symbol_560[] = "chunks";
+static char symbol_561[] = ";\n";
+static char symbol_562[] = "chunks = create_chunks();\n";
+static char symbol_563[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_564[] = ", variables, NULL, 0, 0));\n";
+static char symbol_565[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_566[] = "x";
+static char symbol_567[] = "append_data(runtime->current_chunks, ";
+static char symbol_568[] = "x";
+static char symbol_569[] = ", 0, NULL);\n";
+static char symbol_570[] = "#";
+static char symbol_571[] = "x";
+static char symbol_572[] = "(";
+static char symbol_573[] = "y";
+static char symbol_574[] = " ";
+static char symbol_575[] = "z";
+static char symbol_576[] = ")";
+static char symbol_577[] = "runtime->W_";
+static char symbol_578[] = "y";
+static char symbol_579[] = " = ";
+static char symbol_580[] = "x";
+static char symbol_581[] = "(runtime->W_";
+static char symbol_582[] = "y";
+static char symbol_583[] = " ? runtime->W_";
+static char symbol_584[] = "y";
+static char symbol_585[] = " : 0, ";
+static char symbol_586[] = "z";
+static char symbol_587[] = ");\n";
+static char symbol_588[] = ">";
+static char symbol_589[] = "xs";
+static char symbol_590[] = "<";
+static char symbol_591[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_592[] = "xs";
+static char symbol_593[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_594[] = "x";
+static char symbol_595[] = "x";
+static char symbol_596[] = "struct Chunks* named_chunks_";
+static char symbol_597[] = "x";
+static char symbol_598[] = ";\n";
+static char symbol_599[] = "x";
+static char symbol_600[] = "x";
+static char symbol_601[] = "x";
+static char symbol_602[] = "0";
+static char symbol_603[] = "1";
+static char symbol_604[] = "2";
+static char symbol_605[] = "3";
+static char symbol_606[] = "4";
+static char symbol_607[] = "5";
+static char symbol_608[] = "6";
+static char symbol_609[] = "7";
+static char symbol_610[] = "8";
+static char symbol_611[] = "9";
+static char symbol_612[] = "{";
+static char symbol_613[] = "x";
+static char symbol_614[] = "*";
+static char symbol_615[] = "y";
+static char symbol_616[] = "}";
+static char symbol_617[] = "for (int i=0; i < ";
+static char symbol_618[] = "y";
+static char symbol_619[] = "; i++) {\n";
+static char symbol_620[] = "append_data(runtime->current_chunks, ";
 static char symbol_621[] = "x";
-static char symbol_622[] = "-";
-static char symbol_623[] = "y";
-static char symbol_624[] = ")";
-static char symbol_625[] = "((runtime->W_";
+static char symbol_622[] = ", 0, NULL);\n";
+static char symbol_623[] = "}\n";
+static char symbol_624[] = "x";
+static char symbol_625[] = "(runtime->W_";
 static char symbol_626[] = "x";
 static char symbol_627[] = " ? runtime->W_";
 static char symbol_628[] = "x";
-static char symbol_629[] = " : 0)-";
-static char symbol_630[] = "y";
-static char symbol_631[] = ")";
-static char symbol_632[] = "\"";
-static char symbol_633[] = "xs";
-static char symbol_634[] = "\"";
-static char symbol_635[] = "static char symbol_";
-static char symbol_636[] = "[] = \"";
-static char symbol_637[] = "xs";
-static char symbol_638[] = "\";\n";
-static char symbol_639[] = "buffer_from_cstring(symbol_";
-static char symbol_640[] = ", sizeof(symbol_";
-static char symbol_641[] = ")-1)";
-static char symbol_642[] = "x";
+static char symbol_629[] = " : 0)";
+static char symbol_630[] = "(";
+static char symbol_631[] = "x";
+static char symbol_632[] = "-";
+static char symbol_633[] = "y";
+static char symbol_634[] = ")";
+static char symbol_635[] = "((runtime->W_";
+static char symbol_636[] = "x";
+static char symbol_637[] = " ? runtime->W_";
+static char symbol_638[] = "x";
+static char symbol_639[] = " : 0)-";
+static char symbol_640[] = "y";
+static char symbol_641[] = ")";
+static char symbol_642[] = "\"";
 static char symbol_643[] = "xs";
-static char symbol_644[] = "lookup_action(variables, ";
-static char symbol_645[] = "x";
-static char symbol_646[] = ")";
+static char symbol_644[] = "\"";
+static char symbol_645[] = "static char symbol_";
+static char symbol_646[] = "[] = \"";
 static char symbol_647[] = "xs";
-static char symbol_648[] = ".";
-static char symbol_649[] = "x";
-static char symbol_650[] = "->";
-static char symbol_651[] = "x";
-static char symbol_652[] = "W[";
-static char symbol_653[] = "x";
-static char symbol_654[] = "]";
+static char symbol_648[] = "\";\n";
+static char symbol_649[] = "buffer_from_cstring(symbol_";
+static char symbol_650[] = ", sizeof(symbol_";
+static char symbol_651[] = ")-1)";
+static char symbol_652[] = "x";
+static char symbol_653[] = "xs";
+static char symbol_654[] = "lookup_action(variables, ";
 static char symbol_655[] = "x";
-static char symbol_656[] = "unsigned int W_";
-static char symbol_657[] = "x";
-static char symbol_658[] = ";\n";
+static char symbol_656[] = ")";
+static char symbol_657[] = "xs";
+static char symbol_658[] = ".";
 static char symbol_659[] = "x";
-static char symbol_660[] = "\\\"";
-static char symbol_661[] = "\"";
-static char symbol_662[] = "xs";
-static char symbol_663[] = "static char symbol_";
-static char symbol_664[] = "[] = \"";
-static char symbol_665[] = "xs";
-static char symbol_666[] = "\";\n";
-static char symbol_667[] = "buffer_from_cstring(symbol_";
-static char symbol_668[] = ", sizeof(symbol_";
-static char symbol_669[] = ")-1)";
-static char symbol_670[] = "\'";
-static char symbol_671[] = "\\\'";
-static char symbol_672[] = "\"";
-static char symbol_673[] = "\\\"";
-static char symbol_674[] = "x";
-static char symbol_675[] = "static char symbol_";
-static char symbol_676[] = "[] = \"";
-static char symbol_677[] = "x";
-static char symbol_678[] = "\";\n";
-static char symbol_679[] = "buffer_from_cstring(symbol_";
-static char symbol_680[] = ", sizeof(symbol_";
-static char symbol_681[] = ")-1)";
-static char symbol_682[] = "a";
-static char symbol_683[] = "b";
-static char symbol_684[] = "c";
-static char symbol_685[] = "d";
-static char symbol_686[] = "e";
-static char symbol_687[] = "f";
-static char symbol_688[] = "g";
-static char symbol_689[] = "h";
-static char symbol_690[] = "i";
-static char symbol_691[] = "j";
-static char symbol_692[] = "k";
-static char symbol_693[] = "l";
-static char symbol_694[] = "m";
-static char symbol_695[] = "n";
-static char symbol_696[] = "o";
-static char symbol_697[] = "p";
-static char symbol_698[] = "q";
-static char symbol_699[] = "r";
-static char symbol_700[] = "s";
-static char symbol_701[] = "t";
-static char symbol_702[] = "u";
-static char symbol_703[] = "v";
-static char symbol_704[] = "w";
-static char symbol_705[] = "x";
-static char symbol_706[] = "y";
-static char symbol_707[] = "z";
-static char symbol_708[] = "A";
-static char symbol_709[] = "B";
-static char symbol_710[] = "C";
-static char symbol_711[] = "D";
-static char symbol_712[] = "E";
-static char symbol_713[] = "F";
-static char symbol_714[] = "G";
-static char symbol_715[] = "H";
-static char symbol_716[] = "I";
-static char symbol_717[] = "J";
-static char symbol_718[] = "K";
-static char symbol_719[] = "L";
-static char symbol_720[] = "M";
-static char symbol_721[] = "N";
-static char symbol_722[] = "O";
-static char symbol_723[] = "P";
-static char symbol_724[] = "Q";
-static char symbol_725[] = "R";
-static char symbol_726[] = "S";
-static char symbol_727[] = "T";
-static char symbol_728[] = "U";
-static char symbol_729[] = "V";
-static char symbol_730[] = "W";
-static char symbol_731[] = "X";
-static char symbol_732[] = "Y";
-static char symbol_733[] = "Z";
-static char symbol_734[] = " ";
-static char symbol_735[] = "\n";
+static char symbol_660[] = "->";
+static char symbol_661[] = "x";
+static char symbol_662[] = "W[";
+static char symbol_663[] = "x";
+static char symbol_664[] = "]";
+static char symbol_665[] = "x";
+static char symbol_666[] = "unsigned int W_";
+static char symbol_667[] = "x";
+static char symbol_668[] = ";\n";
+static char symbol_669[] = "x";
+static char symbol_670[] = "\\\"";
+static char symbol_671[] = "\"";
+static char symbol_672[] = "xs";
+static char symbol_673[] = "static char symbol_";
+static char symbol_674[] = "[] = \"";
+static char symbol_675[] = "xs";
+static char symbol_676[] = "\";\n";
+static char symbol_677[] = "buffer_from_cstring(symbol_";
+static char symbol_678[] = ", sizeof(symbol_";
+static char symbol_679[] = ")-1)";
+static char symbol_680[] = "\'";
+static char symbol_681[] = "\\\'";
+static char symbol_682[] = "\"";
+static char symbol_683[] = "\\\"";
+static char symbol_684[] = "x";
+static char symbol_685[] = "static char symbol_";
+static char symbol_686[] = "[] = \"";
+static char symbol_687[] = "x";
+static char symbol_688[] = "\";\n";
+static char symbol_689[] = "buffer_from_cstring(symbol_";
+static char symbol_690[] = ", sizeof(symbol_";
+static char symbol_691[] = ")-1)";
+static char symbol_692[] = "a";
+static char symbol_693[] = "b";
+static char symbol_694[] = "c";
+static char symbol_695[] = "d";
+static char symbol_696[] = "e";
+static char symbol_697[] = "f";
+static char symbol_698[] = "g";
+static char symbol_699[] = "h";
+static char symbol_700[] = "i";
+static char symbol_701[] = "j";
+static char symbol_702[] = "k";
+static char symbol_703[] = "l";
+static char symbol_704[] = "m";
+static char symbol_705[] = "n";
+static char symbol_706[] = "o";
+static char symbol_707[] = "p";
+static char symbol_708[] = "q";
+static char symbol_709[] = "r";
+static char symbol_710[] = "s";
+static char symbol_711[] = "t";
+static char symbol_712[] = "u";
+static char symbol_713[] = "v";
+static char symbol_714[] = "w";
+static char symbol_715[] = "x";
+static char symbol_716[] = "y";
+static char symbol_717[] = "z";
+static char symbol_718[] = "A";
+static char symbol_719[] = "B";
+static char symbol_720[] = "C";
+static char symbol_721[] = "D";
+static char symbol_722[] = "E";
+static char symbol_723[] = "F";
+static char symbol_724[] = "G";
+static char symbol_725[] = "H";
+static char symbol_726[] = "I";
+static char symbol_727[] = "J";
+static char symbol_728[] = "K";
+static char symbol_729[] = "L";
+static char symbol_730[] = "M";
+static char symbol_731[] = "N";
+static char symbol_732[] = "O";
+static char symbol_733[] = "P";
+static char symbol_734[] = "Q";
+static char symbol_735[] = "R";
+static char symbol_736[] = "S";
+static char symbol_737[] = "T";
+static char symbol_738[] = "U";
+static char symbol_739[] = "V";
+static char symbol_740[] = "W";
+static char symbol_741[] = "X";
+static char symbol_742[] = "Y";
+static char symbol_743[] = "Z";
+static char symbol_744[] = " ";
+static char symbol_745[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1846,29 +1856,15 @@ void action_29(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* last_chunks;
-    struct Chunks* chunks;
-    last_chunks = runtime->current_chunks;
-    chunks = runtime->named_chunks_actionVars;
-    runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
-    }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
-    }
-    runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1877,135 +1873,153 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    }
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
+    struct Chunks* last_chunks;
+    struct Chunks* chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_actionVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
+}
+
+void action_35(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_1 = inc(runtime->W_1 ? runtime->W_1 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), 0, NULL);
-}
-
-void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), 0, NULL);
+}
+
+void action_39(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
-}
-
-void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
@@ -2014,101 +2028,109 @@ void action_42(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
+}
+
+void action_44(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
-}
-
-void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_660, sizeof(symbol_660)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_661, sizeof(symbol_661)-1)), runtime);
+}
+
+void action_47(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_665, sizeof(symbol_665)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_658, sizeof(symbol_658)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_666, sizeof(symbol_666)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_667, sizeof(symbol_667)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_668, sizeof(symbol_668)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_669, sizeof(symbol_669)-1)), runtime);
 }
 
-void action_47(struct Runtime* runtime, struct Variables* variables) {
+void action_48(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_673, sizeof(symbol_673)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_664, sizeof(symbol_664)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_665, sizeof(symbol_665)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_666, sizeof(symbol_666)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_674, sizeof(symbol_674)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_675, sizeof(symbol_675)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_676, sizeof(symbol_676)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_667, sizeof(symbol_667)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_677, sizeof(symbol_677)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_668, sizeof(symbol_668)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_678, sizeof(symbol_678)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_669, sizeof(symbol_669)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_679, sizeof(symbol_679)-1), 0, NULL);
 }
 
-void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_673, sizeof(symbol_673)-1), 0, NULL);
+void action_49(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_683, sizeof(symbol_683)-1), 0, NULL);
 }
 
-void action_49(struct Runtime* runtime, struct Variables* variables) {
+void action_50(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_675, sizeof(symbol_675)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_685, sizeof(symbol_685)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_676, sizeof(symbol_676)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_677, sizeof(symbol_677)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_678, sizeof(symbol_678)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_686, sizeof(symbol_686)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_687, sizeof(symbol_687)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_688, sizeof(symbol_688)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_679, sizeof(symbol_679)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_689, sizeof(symbol_689)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_680, sizeof(symbol_680)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_690, sizeof(symbol_690)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_681, sizeof(symbol_681)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_691, sizeof(symbol_691)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2880,12 +2902,41 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
             _ = NULL;
         }
         if (_) {
-            _ = rule_chunkName(parse_state);
+            _ = rule_string(parse_state);
             append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
+            if (_) {
+                data = buffer_from_cstring(symbol_503, sizeof(symbol_503)-1);
+                if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                    parse_state->pos += data->size;
+                    _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                } else {
+                    _ = NULL;
+                }
+                if (_) {
+                    return create_action(action_30, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                }
+            }
+        }
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    variables = create_variables();
+    _ = rule_space(parse_state);
+    if (_) {
+        data = buffer_from_cstring(symbol_511, sizeof(symbol_511)-1);
+        if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+            parse_state->pos += data->size;
+            _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        } else {
+            _ = NULL;
+        }
+        if (_) {
+            _ = rule_chunkName(parse_state);
+            append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_503, sizeof(symbol_503)-1);
+                    data = buffer_from_cstring(symbol_513, sizeof(symbol_513)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2905,11 +2956,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_505, sizeof(symbol_505)-1);
+                                data = buffer_from_cstring(symbol_515, sizeof(symbol_515)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2917,7 +2968,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                                     _ = NULL;
                                 }
                                 if (_) {
-                                    return create_action(action_30, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -2931,7 +2982,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_521, sizeof(symbol_521)-1);
+        data = buffer_from_cstring(symbol_531, sizeof(symbol_531)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2940,9 +2991,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
             if (_) {
-                return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -2952,9 +3003,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), _);
         if (_) {
-            return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2963,9 +3014,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), _);
         if (_) {
-            return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2974,9 +3025,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), _);
         if (_) {
-            return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2985,9 +3036,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), _);
         if (_) {
-            return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_36, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2995,7 +3046,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_560, sizeof(symbol_560)-1);
+        data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3004,9 +3055,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
+                data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3015,9 +3066,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
+                        data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3026,9 +3077,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
+                                data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3036,7 +3087,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                                     _ = NULL;
                                 }
                                 if (_) {
-                                    return create_action(action_36, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return create_action(action_37, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -3050,7 +3101,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
+        data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3070,11 +3121,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_580, sizeof(symbol_580)-1);
+                    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3082,7 +3133,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         _ = NULL;
                     }
                     if (_) {
-                        return create_action(action_37, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                        return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
@@ -3101,9 +3152,9 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), _);
     if (_) {
-        return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return NULL;
 }
@@ -3118,9 +3169,9 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), _);
     if (_) {
-        return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_40, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3139,7 +3190,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
+    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3151,7 +3202,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
+    data = buffer_from_cstring(symbol_603, sizeof(symbol_603)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3163,7 +3214,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
+    data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3175,7 +3226,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
+    data = buffer_from_cstring(symbol_605, sizeof(symbol_605)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3187,7 +3238,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_596, sizeof(symbol_596)-1);
+    data = buffer_from_cstring(symbol_606, sizeof(symbol_606)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3199,7 +3250,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_597, sizeof(symbol_597)-1);
+    data = buffer_from_cstring(symbol_607, sizeof(symbol_607)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3211,7 +3262,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_598, sizeof(symbol_598)-1);
+    data = buffer_from_cstring(symbol_608, sizeof(symbol_608)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3223,7 +3274,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_599, sizeof(symbol_599)-1);
+    data = buffer_from_cstring(symbol_609, sizeof(symbol_609)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3235,7 +3286,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_600, sizeof(symbol_600)-1);
+    data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3247,7 +3298,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_601, sizeof(symbol_601)-1);
+    data = buffer_from_cstring(symbol_611, sizeof(symbol_611)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3270,7 +3321,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
+    data = buffer_from_cstring(symbol_612, sizeof(symbol_612)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3281,9 +3332,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
+                data = buffer_from_cstring(symbol_614, sizeof(symbol_614)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3292,11 +3343,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_606, sizeof(symbol_606)-1);
+                            data = buffer_from_cstring(symbol_616, sizeof(symbol_616)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3304,7 +3355,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                                 _ = NULL;
                             }
                             if (_) {
-                                return create_action(action_40, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                             }
                         }
                     }
@@ -3326,14 +3377,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), _);
     if (_) {
-        return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_42, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_620, sizeof(symbol_620)-1);
+    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3342,9 +3393,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
+            data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3353,9 +3404,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
+                    data = buffer_from_cstring(symbol_634, sizeof(symbol_634)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3363,7 +3414,7 @@ struct Action* rule_expr(struct ParseState* parse_state) {
                         _ = NULL;
                     }
                     if (_) {
-                        return create_action(action_42, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                        return create_action(action_43, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
@@ -3385,7 +3436,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
+    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3405,9 +3456,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_634, sizeof(symbol_634)-1);
+            data = buffer_from_cstring(symbol_644, sizeof(symbol_644)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3415,7 +3466,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
                 _ = NULL;
             }
             if (_) {
-                return create_action(action_43, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3435,7 +3486,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3449,9 +3500,9 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), _);
         if (_) {
-            return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return NULL;
@@ -3467,7 +3518,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
+    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3476,9 +3527,9 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1), _);
         if (_) {
-            return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_46, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return NULL;
@@ -3494,7 +3545,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
+    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3508,9 +3559,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
+            data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3518,7 +3569,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
                 _ = NULL;
             }
             if (_) {
-                return create_action(action_46, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_47, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3534,7 +3585,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
+    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3547,7 +3598,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
+    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3600,11 +3651,11 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_662, sizeof(symbol_662)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_672, sizeof(symbol_672)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
-                return create_action(action_47, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_48, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3619,7 +3670,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3642,7 +3693,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
+    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3655,7 +3706,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
+    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3663,7 +3714,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
         _ = NULL;
     }
     if (_) {
-        return create_action(action_48, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3699,9 +3750,9 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_674, sizeof(symbol_674)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_684, sizeof(symbol_684)-1), _);
     if (_) {
-        return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_50, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return NULL;
 }
@@ -3765,7 +3816,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
+    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3777,7 +3828,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
+    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3789,7 +3840,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
+    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3801,7 +3852,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
+    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3813,7 +3864,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
+    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3825,7 +3876,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
+    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3837,7 +3888,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
+    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3849,7 +3900,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
+    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3861,7 +3912,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
+    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3873,7 +3924,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
+    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3885,7 +3936,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
+    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3897,7 +3948,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
+    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3909,7 +3960,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3921,7 +3972,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3933,7 +3984,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
+    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3945,7 +3996,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
+    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3957,7 +4008,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
+    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3969,7 +4020,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
+    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3981,7 +4032,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
+    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3993,7 +4044,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
+    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4005,7 +4056,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
+    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4017,7 +4068,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
+    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4029,7 +4080,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
+    data = buffer_from_cstring(symbol_714, sizeof(symbol_714)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4041,7 +4092,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
+    data = buffer_from_cstring(symbol_715, sizeof(symbol_715)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4053,7 +4104,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
+    data = buffer_from_cstring(symbol_716, sizeof(symbol_716)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4065,7 +4116,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
+    data = buffer_from_cstring(symbol_717, sizeof(symbol_717)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4086,7 +4137,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
+    data = buffer_from_cstring(symbol_718, sizeof(symbol_718)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4098,7 +4149,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
+    data = buffer_from_cstring(symbol_719, sizeof(symbol_719)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4110,7 +4161,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
+    data = buffer_from_cstring(symbol_720, sizeof(symbol_720)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4122,7 +4173,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
+    data = buffer_from_cstring(symbol_721, sizeof(symbol_721)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4134,7 +4185,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
+    data = buffer_from_cstring(symbol_722, sizeof(symbol_722)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4146,7 +4197,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
+    data = buffer_from_cstring(symbol_723, sizeof(symbol_723)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4158,7 +4209,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_714, sizeof(symbol_714)-1);
+    data = buffer_from_cstring(symbol_724, sizeof(symbol_724)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4170,7 +4221,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_715, sizeof(symbol_715)-1);
+    data = buffer_from_cstring(symbol_725, sizeof(symbol_725)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4182,7 +4233,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_716, sizeof(symbol_716)-1);
+    data = buffer_from_cstring(symbol_726, sizeof(symbol_726)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4194,7 +4245,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_717, sizeof(symbol_717)-1);
+    data = buffer_from_cstring(symbol_727, sizeof(symbol_727)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4206,7 +4257,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_718, sizeof(symbol_718)-1);
+    data = buffer_from_cstring(symbol_728, sizeof(symbol_728)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4218,7 +4269,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_719, sizeof(symbol_719)-1);
+    data = buffer_from_cstring(symbol_729, sizeof(symbol_729)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4230,7 +4281,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_720, sizeof(symbol_720)-1);
+    data = buffer_from_cstring(symbol_730, sizeof(symbol_730)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4242,7 +4293,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_721, sizeof(symbol_721)-1);
+    data = buffer_from_cstring(symbol_731, sizeof(symbol_731)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4254,7 +4305,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_722, sizeof(symbol_722)-1);
+    data = buffer_from_cstring(symbol_732, sizeof(symbol_732)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4266,7 +4317,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_723, sizeof(symbol_723)-1);
+    data = buffer_from_cstring(symbol_733, sizeof(symbol_733)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4278,7 +4329,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_724, sizeof(symbol_724)-1);
+    data = buffer_from_cstring(symbol_734, sizeof(symbol_734)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4290,7 +4341,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_725, sizeof(symbol_725)-1);
+    data = buffer_from_cstring(symbol_735, sizeof(symbol_735)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4302,7 +4353,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_726, sizeof(symbol_726)-1);
+    data = buffer_from_cstring(symbol_736, sizeof(symbol_736)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4314,7 +4365,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_727, sizeof(symbol_727)-1);
+    data = buffer_from_cstring(symbol_737, sizeof(symbol_737)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4326,7 +4377,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_728, sizeof(symbol_728)-1);
+    data = buffer_from_cstring(symbol_738, sizeof(symbol_738)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4338,7 +4389,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_729, sizeof(symbol_729)-1);
+    data = buffer_from_cstring(symbol_739, sizeof(symbol_739)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4350,7 +4401,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_730, sizeof(symbol_730)-1);
+    data = buffer_from_cstring(symbol_740, sizeof(symbol_740)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4362,7 +4413,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_731, sizeof(symbol_731)-1);
+    data = buffer_from_cstring(symbol_741, sizeof(symbol_741)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4374,7 +4425,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_732, sizeof(symbol_732)-1);
+    data = buffer_from_cstring(symbol_742, sizeof(symbol_742)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4386,7 +4437,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_733, sizeof(symbol_733)-1);
+    data = buffer_from_cstring(symbol_743, sizeof(symbol_743)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4435,7 +4486,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_734, sizeof(symbol_734)-1);
+    data = buffer_from_cstring(symbol_744, sizeof(symbol_744)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4447,7 +4498,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_735, sizeof(symbol_735)-1);
+    data = buffer_from_cstring(symbol_745, sizeof(symbol_745)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(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 38e5c21..dad3e25 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -532,6 +532,11 @@ actionexpr =
             ys
         < "}\n"
     }
+    | space 'unique(' string:x ')' -> {
+        "if (!seen(runtime->current_chunks, " x ")) {\n" >
+            "append_data(runtime->current_chunks, " x ", 0, NULL);\n"
+        < "}\n"
+    }
     | space '>' chunkName:x space '{' actionexpr*:ys space '}' -> {
         >actionVars {
             unseen("last_chunks") -> {

2025-11-04 22:41 Rickard pushed to rlworkbench

commit 51aa99649e291f67f3c75526e8d7b254c9454d75
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 22:37:46 2025 +0100

    Only generate variables if used (enables -Wall!!)

diff --git a/make.sh b/make.sh
index cfef204..825fe31 100755
--- a/make.sh
+++ b/make.sh
@@ -76,7 +76,7 @@ meta_compile() {
 
 c_compile() {
     echo "Compiling $1 -> $2"
-    gcc -Wfatal-errors -Werror -o $2 $1
+    gcc -Wfatal-errors -Wall -Werror -o $2 $1
 }
 
 main
diff --git a/src/meta/meta.c b/src/meta/meta.c
index a5cafbb..2daff03 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -22,6 +22,7 @@ struct Runtime {
     struct Chunks* named_chunks_actions;
     struct Chunks* named_chunks_placeholders;
     struct Chunks* named_chunks_ruleVars;
+    struct Chunks* named_chunks_orInit;
     struct Chunks* named_chunks_actionVars;
     struct Chunks* current_chunks;
     unsigned int W_0;
@@ -604,414 +605,416 @@ static char symbol_322[] = "x";
 static char symbol_323[] = "x";
 static char symbol_324[] = "|";
 static char symbol_325[] = "x";
-static char symbol_326[] = "variables";
-static char symbol_327[] = "struct Variables* ";
-static char symbol_328[] = "variables";
-static char symbol_329[] = ";\n";
-static char symbol_330[] = "parse_state->pos = or_backtrack_pos;\n";
-static char symbol_331[] = "action_start_pos = parse_state->pos;\n";
-static char symbol_332[] = "variables = create_variables();\n";
-static char symbol_333[] = "x";
-static char symbol_334[] = "x";
+static char symbol_326[] = "parse_state->pos = or_backtrack_pos;\n";
+static char symbol_327[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_328[] = "x";
+static char symbol_329[] = "x";
+static char symbol_330[] = "y";
+static char symbol_331[] = "x";
+static char symbol_332[] = "if (_) {\n";
+static char symbol_333[] = "y";
+static char symbol_334[] = "}\n";
 static char symbol_335[] = "y";
-static char symbol_336[] = "x";
-static char symbol_337[] = "if (_) {\n";
-static char symbol_338[] = "y";
-static char symbol_339[] = "}\n";
-static char symbol_340[] = "y";
-static char symbol_341[] = "y";
-static char symbol_342[] = "!";
-static char symbol_343[] = "x";
-static char symbol_344[] = "nlookahead_pos";
-static char symbol_345[] = "unsigned int ";
-static char symbol_346[] = "nlookahead_pos";
-static char symbol_347[] = ";\n";
-static char symbol_348[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_349[] = "x";
-static char symbol_350[] = "if (_ == NULL) {\n";
-static char symbol_351[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_352[] = "} else {\n";
-static char symbol_353[] = "_ = NULL;\n";
-static char symbol_354[] = "}\n";
-static char symbol_355[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_356[] = "&";
-static char symbol_357[] = "x";
-static char symbol_358[] = "lookahead_pos";
-static char symbol_359[] = "unsigned int ";
-static char symbol_360[] = "lookahead_pos";
-static char symbol_361[] = ";\n";
-static char symbol_362[] = "lookahead_pos = parse_state->pos;\n";
-static char symbol_363[] = "x";
-static char symbol_364[] = "if (_ == NULL) {\n";
-static char symbol_365[] = "_ = NULL;\n";
-static char symbol_366[] = "} else {\n";
-static char symbol_367[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_368[] = "}\n";
-static char symbol_369[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_336[] = "y";
+static char symbol_337[] = "!";
+static char symbol_338[] = "x";
+static char symbol_339[] = "nlookahead_pos";
+static char symbol_340[] = "unsigned int ";
+static char symbol_341[] = "nlookahead_pos";
+static char symbol_342[] = ";\n";
+static char symbol_343[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_344[] = "x";
+static char symbol_345[] = "if (_ == NULL) {\n";
+static char symbol_346[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_347[] = "} else {\n";
+static char symbol_348[] = "_ = NULL;\n";
+static char symbol_349[] = "}\n";
+static char symbol_350[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_351[] = "&";
+static char symbol_352[] = "x";
+static char symbol_353[] = "lookahead_pos";
+static char symbol_354[] = "unsigned int ";
+static char symbol_355[] = "lookahead_pos";
+static char symbol_356[] = ";\n";
+static char symbol_357[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_358[] = "x";
+static char symbol_359[] = "if (_ == NULL) {\n";
+static char symbol_360[] = "_ = NULL;\n";
+static char symbol_361[] = "} else {\n";
+static char symbol_362[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_363[] = "}\n";
+static char symbol_364[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_365[] = "x";
+static char symbol_366[] = "y";
+static char symbol_367[] = "x";
+static char symbol_368[] = "y";
+static char symbol_369[] = ":";
 static char symbol_370[] = "x";
-static char symbol_371[] = "y";
+static char symbol_371[] = "append_named_action(variables, ";
 static char symbol_372[] = "x";
-static char symbol_373[] = "y";
-static char symbol_374[] = ":";
-static char symbol_375[] = "x";
-static char symbol_376[] = "append_named_action(variables, ";
-static char symbol_377[] = "x";
-static char symbol_378[] = ", _);\n";
-static char symbol_379[] = "x";
-static char symbol_380[] = "*";
-static char symbol_381[] = "star_variables";
-static char symbol_382[] = "struct Variables* ";
-static char symbol_383[] = "star_variables";
-static char symbol_384[] = ";\n";
-static char symbol_385[] = "star_pos";
-static char symbol_386[] = "unsigned int ";
-static char symbol_387[] = "star_pos";
-static char symbol_388[] = ";\n";
-static char symbol_389[] = "star_start_pos";
-static char symbol_390[] = "unsigned int ";
-static char symbol_391[] = "star_start_pos";
-static char symbol_392[] = ";\n";
-static char symbol_393[] = "star_variables = create_variables();\n";
-static char symbol_394[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_395[] = "while (1) {\n";
-static char symbol_396[] = "star_pos = parse_state->pos;\n";
-static char symbol_397[] = "x";
-static char symbol_398[] = "if (_ == NULL) {\n";
-static char symbol_399[] = "parse_state->pos = star_pos;\n";
-static char symbol_400[] = "break;\n";
-static char symbol_401[] = "}\n";
-static char symbol_402[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_403[] = "}\n";
-static char symbol_404[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char symbol_405[] = "x";
+static char symbol_373[] = ", _);\n";
+static char symbol_374[] = "x";
+static char symbol_375[] = "*";
+static char symbol_376[] = "star_variables";
+static char symbol_377[] = "struct Variables* ";
+static char symbol_378[] = "star_variables";
+static char symbol_379[] = ";\n";
+static char symbol_380[] = "star_pos";
+static char symbol_381[] = "unsigned int ";
+static char symbol_382[] = "star_pos";
+static char symbol_383[] = ";\n";
+static char symbol_384[] = "star_start_pos";
+static char symbol_385[] = "unsigned int ";
+static char symbol_386[] = "star_start_pos";
+static char symbol_387[] = ";\n";
+static char symbol_388[] = "star_variables = create_variables();\n";
+static char symbol_389[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_390[] = "while (1) {\n";
+static char symbol_391[] = "star_pos = parse_state->pos;\n";
+static char symbol_392[] = "x";
+static char symbol_393[] = "if (_ == NULL) {\n";
+static char symbol_394[] = "parse_state->pos = star_pos;\n";
+static char symbol_395[] = "break;\n";
+static char symbol_396[] = "}\n";
+static char symbol_397[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_398[] = "}\n";
+static char symbol_399[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
+static char symbol_400[] = "x";
+static char symbol_401[] = "x";
+static char symbol_402[] = "_";
+static char symbol_403[] = "x";
+static char symbol_404[] = "bitpattern <<= 1;\n";
+static char symbol_405[] = "bitmask <<= 1;\n";
 static char symbol_406[] = "x";
-static char symbol_407[] = "_";
+static char symbol_407[] = "x";
 static char symbol_408[] = "x";
-static char symbol_409[] = "bitpattern <<= 1;\n";
-static char symbol_410[] = "bitmask <<= 1;\n";
-static char symbol_411[] = "x";
-static char symbol_412[] = "x";
+static char symbol_409[] = "bitmask |= 1;\n";
+static char symbol_410[] = "0";
+static char symbol_411[] = "1";
+static char symbol_412[] = "bitpattern |= 1;\n";
 static char symbol_413[] = "x";
-static char symbol_414[] = "bitmask |= 1;\n";
-static char symbol_415[] = "0";
-static char symbol_416[] = "1";
-static char symbol_417[] = "bitpattern |= 1;\n";
-static char symbol_418[] = "x";
-static char symbol_419[] = "_ = rule_";
-static char symbol_420[] = "x";
-static char symbol_421[] = "(parse_state);\n";
-static char symbol_422[] = "0b";
-static char symbol_423[] = "xs";
-static char symbol_424[] = "bitpattern";
-static char symbol_425[] = "unsigned char ";
-static char symbol_426[] = "bitpattern";
-static char symbol_427[] = ";\n";
-static char symbol_428[] = "bitmask";
-static char symbol_429[] = "unsigned char ";
-static char symbol_430[] = "bitmask";
-static char symbol_431[] = ";\n";
-static char symbol_432[] = "bitpattern = 0;\n";
-static char symbol_433[] = "bitmask = 0;\n";
-static char symbol_434[] = "xs";
-static char symbol_435[] = "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 symbol_436[] = "parse_state->pos += 1;\n";
-static char symbol_437[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_438[] = "} else {\n";
-static char symbol_439[] = "_ = NULL;\n";
-static char symbol_440[] = "}\n";
-static char symbol_441[] = ".";
-static char symbol_442[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_443[] = "parse_state->pos += 1;\n";
-static char symbol_444[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_445[] = "} else {\n";
-static char symbol_446[] = "_ = NULL;\n";
-static char symbol_447[] = "}\n";
-static char symbol_448[] = "x";
-static char symbol_449[] = "data";
-static char symbol_450[] = "struct Buffer* ";
-static char symbol_451[] = "data";
-static char symbol_452[] = ";\n";
-static char symbol_453[] = "data = ";
-static char symbol_454[] = "x";
-static char symbol_455[] = ";\n";
-static char symbol_456[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_457[] = "parse_state->pos += data->size;\n";
-static char symbol_458[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_459[] = "} else {\n";
-static char symbol_460[] = "_ = NULL;\n";
-static char symbol_461[] = "}\n";
-static char symbol_462[] = "->";
-static char symbol_463[] = "{";
-static char symbol_464[] = "xs";
-static char symbol_465[] = "}";
-static char symbol_466[] = "void action_";
-static char symbol_467[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_468[] = "xs";
-static char symbol_469[] = "}\n";
-static char symbol_470[] = "\n";
-static char symbol_471[] = "return create_action(action_";
-static char symbol_472[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_473[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_474[] = "unseen(";
-static char symbol_475[] = "x";
-static char symbol_476[] = ") -> {";
-static char symbol_477[] = "ys";
-static char symbol_478[] = "}";
-static char symbol_479[] = "action";
-static char symbol_480[] = "struct Action* ";
+static char symbol_414[] = "_ = rule_";
+static char symbol_415[] = "x";
+static char symbol_416[] = "(parse_state);\n";
+static char symbol_417[] = "0b";
+static char symbol_418[] = "xs";
+static char symbol_419[] = "bitpattern";
+static char symbol_420[] = "unsigned char ";
+static char symbol_421[] = "bitpattern";
+static char symbol_422[] = ";\n";
+static char symbol_423[] = "bitmask";
+static char symbol_424[] = "unsigned char ";
+static char symbol_425[] = "bitmask";
+static char symbol_426[] = ";\n";
+static char symbol_427[] = "bitpattern = 0;\n";
+static char symbol_428[] = "bitmask = 0;\n";
+static char symbol_429[] = "xs";
+static char symbol_430[] = "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 symbol_431[] = "parse_state->pos += 1;\n";
+static char symbol_432[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_433[] = "} else {\n";
+static char symbol_434[] = "_ = NULL;\n";
+static char symbol_435[] = "}\n";
+static char symbol_436[] = ".";
+static char symbol_437[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_438[] = "parse_state->pos += 1;\n";
+static char symbol_439[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_440[] = "} else {\n";
+static char symbol_441[] = "_ = NULL;\n";
+static char symbol_442[] = "}\n";
+static char symbol_443[] = "x";
+static char symbol_444[] = "data";
+static char symbol_445[] = "struct Buffer* ";
+static char symbol_446[] = "data";
+static char symbol_447[] = ";\n";
+static char symbol_448[] = "data = ";
+static char symbol_449[] = "x";
+static char symbol_450[] = ";\n";
+static char symbol_451[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_452[] = "parse_state->pos += data->size;\n";
+static char symbol_453[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_454[] = "} else {\n";
+static char symbol_455[] = "_ = NULL;\n";
+static char symbol_456[] = "}\n";
+static char symbol_457[] = "->";
+static char symbol_458[] = "{";
+static char symbol_459[] = "xs";
+static char symbol_460[] = "}";
+static char symbol_461[] = "void action_";
+static char symbol_462[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_463[] = "xs";
+static char symbol_464[] = "}\n";
+static char symbol_465[] = "\n";
+static char symbol_466[] = "variables";
+static char symbol_467[] = "struct Variables* ";
+static char symbol_468[] = "variables";
+static char symbol_469[] = ";\n";
+static char symbol_470[] = "variables";
+static char symbol_471[] = "variables";
+static char symbol_472[] = " = create_variables();\n";
+static char symbol_473[] = "return create_action(action_";
+static char symbol_474[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_475[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_476[] = "unseen(";
+static char symbol_477[] = "x";
+static char symbol_478[] = ") -> {";
+static char symbol_479[] = "ys";
+static char symbol_480[] = "}";
 static char symbol_481[] = "action";
-static char symbol_482[] = ";\n";
-static char symbol_483[] = "action = lookup_action(variables, ";
-static char symbol_484[] = "x";
-static char symbol_485[] = ");\n";
-static char symbol_486[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_487[] = "ys";
-static char symbol_488[] = "}\n";
-static char symbol_489[] = "unseen(";
-static char symbol_490[] = "x";
-static char symbol_491[] = ") -> {";
-static char symbol_492[] = "ys";
-static char symbol_493[] = "}";
-static char symbol_494[] = "if (!seen(runtime->current_chunks, ";
-static char symbol_495[] = "x";
-static char symbol_496[] = ")) {\n";
-static char symbol_497[] = "ys";
-static char symbol_498[] = "}\n";
-static char symbol_499[] = ">";
-static char symbol_500[] = "x";
-static char symbol_501[] = "{";
-static char symbol_502[] = "ys";
-static char symbol_503[] = "}";
-static char symbol_504[] = "last_chunks";
-static char symbol_505[] = "struct Chunks* ";
+static char symbol_482[] = "struct Action* ";
+static char symbol_483[] = "action";
+static char symbol_484[] = ";\n";
+static char symbol_485[] = "action = lookup_action(variables, ";
+static char symbol_486[] = "x";
+static char symbol_487[] = ");\n";
+static char symbol_488[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_489[] = "ys";
+static char symbol_490[] = "}\n";
+static char symbol_491[] = "unseen(";
+static char symbol_492[] = "x";
+static char symbol_493[] = ") -> {";
+static char symbol_494[] = "ys";
+static char symbol_495[] = "}";
+static char symbol_496[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_497[] = "x";
+static char symbol_498[] = ")) {\n";
+static char symbol_499[] = "ys";
+static char symbol_500[] = "}\n";
+static char symbol_501[] = ">";
+static char symbol_502[] = "x";
+static char symbol_503[] = "{";
+static char symbol_504[] = "ys";
+static char symbol_505[] = "}";
 static char symbol_506[] = "last_chunks";
-static char symbol_507[] = ";\n";
-static char symbol_508[] = "chunks";
-static char symbol_509[] = "struct Chunks* ";
+static char symbol_507[] = "struct Chunks* ";
+static char symbol_508[] = "last_chunks";
+static char symbol_509[] = ";\n";
 static char symbol_510[] = "chunks";
-static char symbol_511[] = ";\n";
-static char symbol_512[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_513[] = "chunks = runtime->named_chunks_";
-static char symbol_514[] = "x";
-static char symbol_515[] = ";\n";
-static char symbol_516[] = "runtime->current_chunks = chunks;\n";
-static char symbol_517[] = "ys";
-static char symbol_518[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_519[] = "<";
-static char symbol_520[] = "x";
-static char symbol_521[] = "chunks";
-static char symbol_522[] = "struct Chunks* ";
+static char symbol_511[] = "struct Chunks* ";
+static char symbol_512[] = "chunks";
+static char symbol_513[] = ";\n";
+static char symbol_514[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_515[] = "chunks = runtime->named_chunks_";
+static char symbol_516[] = "x";
+static char symbol_517[] = ";\n";
+static char symbol_518[] = "runtime->current_chunks = chunks;\n";
+static char symbol_519[] = "ys";
+static char symbol_520[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_521[] = "<";
+static char symbol_522[] = "x";
 static char symbol_523[] = "chunks";
-static char symbol_524[] = ";\n";
-static char symbol_525[] = "chunks = create_chunks();\n";
-static char symbol_526[] = "runtime->named_chunks_";
-static char symbol_527[] = "x";
-static char symbol_528[] = " = chunks;\n";
-static char symbol_529[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_530[] = "x";
-static char symbol_531[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_524[] = "struct Chunks* ";
+static char symbol_525[] = "chunks";
+static char symbol_526[] = ";\n";
+static char symbol_527[] = "chunks = create_chunks();\n";
+static char symbol_528[] = "runtime->named_chunks_";
+static char symbol_529[] = "x";
+static char symbol_530[] = " = chunks;\n";
+static char symbol_531[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
 static char symbol_532[] = "x";
-static char symbol_533[] = "), 0, NULL);\n";
+static char symbol_533[] = "append_data(runtime->current_chunks, buffer_from_integer(";
 static char symbol_534[] = "x";
-static char symbol_535[] = "run_action(lookup_action(variables, ";
+static char symbol_535[] = "), 0, NULL);\n";
 static char symbol_536[] = "x";
-static char symbol_537[] = "), runtime);\n";
+static char symbol_537[] = "run_action(lookup_action(variables, ";
 static char symbol_538[] = "x";
-static char symbol_539[] = "void placeholder_";
-static char symbol_540[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_539[] = "), runtime);\n";
+static char symbol_540[] = "x";
 static char symbol_541[] = "void placeholder_";
-static char symbol_542[] = "(struct Runtime* runtime, struct Variables* variables) {";
-static char symbol_543[] = "x";
-static char symbol_544[] = "}\n";
-static char symbol_545[] = "\n";
-static char symbol_546[] = "chunks";
-static char symbol_547[] = "struct Chunks* ";
+static char symbol_542[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_543[] = "void placeholder_";
+static char symbol_544[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_545[] = "x";
+static char symbol_546[] = "}\n";
+static char symbol_547[] = "\n";
 static char symbol_548[] = "chunks";
-static char symbol_549[] = ";\n";
-static char symbol_550[] = "chunks = create_chunks();\n";
-static char symbol_551[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_552[] = ", variables, NULL, 0, 0));\n";
-static char symbol_553[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_554[] = "x";
-static char symbol_555[] = "append_data(runtime->current_chunks, ";
+static char symbol_549[] = "struct Chunks* ";
+static char symbol_550[] = "chunks";
+static char symbol_551[] = ";\n";
+static char symbol_552[] = "chunks = create_chunks();\n";
+static char symbol_553[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_554[] = ", variables, NULL, 0, 0));\n";
+static char symbol_555[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
 static char symbol_556[] = "x";
-static char symbol_557[] = ", 0, NULL);\n";
-static char symbol_558[] = "#";
-static char symbol_559[] = "x";
-static char symbol_560[] = "(";
-static char symbol_561[] = "y";
-static char symbol_562[] = " ";
-static char symbol_563[] = "z";
-static char symbol_564[] = ")";
-static char symbol_565[] = "runtime->W_";
-static char symbol_566[] = "y";
-static char symbol_567[] = " = ";
-static char symbol_568[] = "x";
-static char symbol_569[] = "(runtime->W_";
-static char symbol_570[] = "y";
-static char symbol_571[] = " ? runtime->W_";
+static char symbol_557[] = "append_data(runtime->current_chunks, ";
+static char symbol_558[] = "x";
+static char symbol_559[] = ", 0, NULL);\n";
+static char symbol_560[] = "#";
+static char symbol_561[] = "x";
+static char symbol_562[] = "(";
+static char symbol_563[] = "y";
+static char symbol_564[] = " ";
+static char symbol_565[] = "z";
+static char symbol_566[] = ")";
+static char symbol_567[] = "runtime->W_";
+static char symbol_568[] = "y";
+static char symbol_569[] = " = ";
+static char symbol_570[] = "x";
+static char symbol_571[] = "(runtime->W_";
 static char symbol_572[] = "y";
-static char symbol_573[] = " : 0, ";
-static char symbol_574[] = "z";
-static char symbol_575[] = ");\n";
-static char symbol_576[] = ">";
-static char symbol_577[] = "xs";
-static char symbol_578[] = "<";
-static char symbol_579[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_580[] = "xs";
-static char symbol_581[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_582[] = "x";
-static char symbol_583[] = "x";
-static char symbol_584[] = "struct Chunks* named_chunks_";
+static char symbol_573[] = " ? runtime->W_";
+static char symbol_574[] = "y";
+static char symbol_575[] = " : 0, ";
+static char symbol_576[] = "z";
+static char symbol_577[] = ");\n";
+static char symbol_578[] = ">";
+static char symbol_579[] = "xs";
+static char symbol_580[] = "<";
+static char symbol_581[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_582[] = "xs";
+static char symbol_583[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_584[] = "x";
 static char symbol_585[] = "x";
-static char symbol_586[] = ";\n";
+static char symbol_586[] = "struct Chunks* named_chunks_";
 static char symbol_587[] = "x";
-static char symbol_588[] = "x";
+static char symbol_588[] = ";\n";
 static char symbol_589[] = "x";
-static char symbol_590[] = "0";
-static char symbol_591[] = "1";
-static char symbol_592[] = "2";
-static char symbol_593[] = "3";
-static char symbol_594[] = "4";
-static char symbol_595[] = "5";
-static char symbol_596[] = "6";
-static char symbol_597[] = "7";
-static char symbol_598[] = "8";
-static char symbol_599[] = "9";
-static char symbol_600[] = "{";
-static char symbol_601[] = "x";
-static char symbol_602[] = "*";
-static char symbol_603[] = "y";
-static char symbol_604[] = "}";
-static char symbol_605[] = "for (int i=0; i < ";
-static char symbol_606[] = "y";
-static char symbol_607[] = "; i++) {\n";
-static char symbol_608[] = "append_data(runtime->current_chunks, ";
-static char symbol_609[] = "x";
-static char symbol_610[] = ", 0, NULL);\n";
-static char symbol_611[] = "}\n";
-static char symbol_612[] = "x";
-static char symbol_613[] = "(runtime->W_";
+static char symbol_590[] = "x";
+static char symbol_591[] = "x";
+static char symbol_592[] = "0";
+static char symbol_593[] = "1";
+static char symbol_594[] = "2";
+static char symbol_595[] = "3";
+static char symbol_596[] = "4";
+static char symbol_597[] = "5";
+static char symbol_598[] = "6";
+static char symbol_599[] = "7";
+static char symbol_600[] = "8";
+static char symbol_601[] = "9";
+static char symbol_602[] = "{";
+static char symbol_603[] = "x";
+static char symbol_604[] = "*";
+static char symbol_605[] = "y";
+static char symbol_606[] = "}";
+static char symbol_607[] = "for (int i=0; i < ";
+static char symbol_608[] = "y";
+static char symbol_609[] = "; i++) {\n";
+static char symbol_610[] = "append_data(runtime->current_chunks, ";
+static char symbol_611[] = "x";
+static char symbol_612[] = ", 0, NULL);\n";
+static char symbol_613[] = "}\n";
 static char symbol_614[] = "x";
-static char symbol_615[] = " ? runtime->W_";
+static char symbol_615[] = "(runtime->W_";
 static char symbol_616[] = "x";
-static char symbol_617[] = " : 0)";
-static char symbol_618[] = "(";
-static char symbol_619[] = "x";
-static char symbol_620[] = "-";
-static char symbol_621[] = "y";
-static char symbol_622[] = ")";
-static char symbol_623[] = "((runtime->W_";
-static char symbol_624[] = "x";
-static char symbol_625[] = " ? runtime->W_";
+static char symbol_617[] = " ? runtime->W_";
+static char symbol_618[] = "x";
+static char symbol_619[] = " : 0)";
+static char symbol_620[] = "(";
+static char symbol_621[] = "x";
+static char symbol_622[] = "-";
+static char symbol_623[] = "y";
+static char symbol_624[] = ")";
+static char symbol_625[] = "((runtime->W_";
 static char symbol_626[] = "x";
-static char symbol_627[] = " : 0)-";
-static char symbol_628[] = "y";
-static char symbol_629[] = ")";
-static char symbol_630[] = "\"";
-static char symbol_631[] = "xs";
+static char symbol_627[] = " ? runtime->W_";
+static char symbol_628[] = "x";
+static char symbol_629[] = " : 0)-";
+static char symbol_630[] = "y";
+static char symbol_631[] = ")";
 static char symbol_632[] = "\"";
-static char symbol_633[] = "static char symbol_";
-static char symbol_634[] = "[] = \"";
-static char symbol_635[] = "xs";
-static char symbol_636[] = "\";\n";
-static char symbol_637[] = "buffer_from_cstring(symbol_";
-static char symbol_638[] = ", sizeof(symbol_";
-static char symbol_639[] = ")-1)";
-static char symbol_640[] = "x";
-static char symbol_641[] = "xs";
-static char symbol_642[] = "lookup_action(variables, ";
-static char symbol_643[] = "x";
-static char symbol_644[] = ")";
-static char symbol_645[] = "xs";
-static char symbol_646[] = ".";
-static char symbol_647[] = "x";
-static char symbol_648[] = "->";
+static char symbol_633[] = "xs";
+static char symbol_634[] = "\"";
+static char symbol_635[] = "static char symbol_";
+static char symbol_636[] = "[] = \"";
+static char symbol_637[] = "xs";
+static char symbol_638[] = "\";\n";
+static char symbol_639[] = "buffer_from_cstring(symbol_";
+static char symbol_640[] = ", sizeof(symbol_";
+static char symbol_641[] = ")-1)";
+static char symbol_642[] = "x";
+static char symbol_643[] = "xs";
+static char symbol_644[] = "lookup_action(variables, ";
+static char symbol_645[] = "x";
+static char symbol_646[] = ")";
+static char symbol_647[] = "xs";
+static char symbol_648[] = ".";
 static char symbol_649[] = "x";
-static char symbol_650[] = "W[";
+static char symbol_650[] = "->";
 static char symbol_651[] = "x";
-static char symbol_652[] = "]";
+static char symbol_652[] = "W[";
 static char symbol_653[] = "x";
-static char symbol_654[] = "unsigned int W_";
+static char symbol_654[] = "]";
 static char symbol_655[] = "x";
-static char symbol_656[] = ";\n";
+static char symbol_656[] = "unsigned int W_";
 static char symbol_657[] = "x";
-static char symbol_658[] = "\\\"";
-static char symbol_659[] = "\"";
-static char symbol_660[] = "xs";
-static char symbol_661[] = "static char symbol_";
-static char symbol_662[] = "[] = \"";
-static char symbol_663[] = "xs";
-static char symbol_664[] = "\";\n";
-static char symbol_665[] = "buffer_from_cstring(symbol_";
-static char symbol_666[] = ", sizeof(symbol_";
-static char symbol_667[] = ")-1)";
-static char symbol_668[] = "\'";
-static char symbol_669[] = "\\\'";
-static char symbol_670[] = "\"";
-static char symbol_671[] = "\\\"";
-static char symbol_672[] = "x";
-static char symbol_673[] = "static char symbol_";
-static char symbol_674[] = "[] = \"";
-static char symbol_675[] = "x";
-static char symbol_676[] = "\";\n";
-static char symbol_677[] = "buffer_from_cstring(symbol_";
-static char symbol_678[] = ", sizeof(symbol_";
-static char symbol_679[] = ")-1)";
-static char symbol_680[] = "a";
-static char symbol_681[] = "b";
-static char symbol_682[] = "c";
-static char symbol_683[] = "d";
-static char symbol_684[] = "e";
-static char symbol_685[] = "f";
-static char symbol_686[] = "g";
-static char symbol_687[] = "h";
-static char symbol_688[] = "i";
-static char symbol_689[] = "j";
-static char symbol_690[] = "k";
-static char symbol_691[] = "l";
-static char symbol_692[] = "m";
-static char symbol_693[] = "n";
-static char symbol_694[] = "o";
-static char symbol_695[] = "p";
-static char symbol_696[] = "q";
-static char symbol_697[] = "r";
-static char symbol_698[] = "s";
-static char symbol_699[] = "t";
-static char symbol_700[] = "u";
-static char symbol_701[] = "v";
-static char symbol_702[] = "w";
-static char symbol_703[] = "x";
-static char symbol_704[] = "y";
-static char symbol_705[] = "z";
-static char symbol_706[] = "A";
-static char symbol_707[] = "B";
-static char symbol_708[] = "C";
-static char symbol_709[] = "D";
-static char symbol_710[] = "E";
-static char symbol_711[] = "F";
-static char symbol_712[] = "G";
-static char symbol_713[] = "H";
-static char symbol_714[] = "I";
-static char symbol_715[] = "J";
-static char symbol_716[] = "K";
-static char symbol_717[] = "L";
-static char symbol_718[] = "M";
-static char symbol_719[] = "N";
-static char symbol_720[] = "O";
-static char symbol_721[] = "P";
-static char symbol_722[] = "Q";
-static char symbol_723[] = "R";
-static char symbol_724[] = "S";
-static char symbol_725[] = "T";
-static char symbol_726[] = "U";
-static char symbol_727[] = "V";
-static char symbol_728[] = "W";
-static char symbol_729[] = "X";
-static char symbol_730[] = "Y";
-static char symbol_731[] = "Z";
-static char symbol_732[] = " ";
-static char symbol_733[] = "\n";
+static char symbol_658[] = ";\n";
+static char symbol_659[] = "x";
+static char symbol_660[] = "\\\"";
+static char symbol_661[] = "\"";
+static char symbol_662[] = "xs";
+static char symbol_663[] = "static char symbol_";
+static char symbol_664[] = "[] = \"";
+static char symbol_665[] = "xs";
+static char symbol_666[] = "\";\n";
+static char symbol_667[] = "buffer_from_cstring(symbol_";
+static char symbol_668[] = ", sizeof(symbol_";
+static char symbol_669[] = ")-1)";
+static char symbol_670[] = "\'";
+static char symbol_671[] = "\\\'";
+static char symbol_672[] = "\"";
+static char symbol_673[] = "\\\"";
+static char symbol_674[] = "x";
+static char symbol_675[] = "static char symbol_";
+static char symbol_676[] = "[] = \"";
+static char symbol_677[] = "x";
+static char symbol_678[] = "\";\n";
+static char symbol_679[] = "buffer_from_cstring(symbol_";
+static char symbol_680[] = ", sizeof(symbol_";
+static char symbol_681[] = ")-1)";
+static char symbol_682[] = "a";
+static char symbol_683[] = "b";
+static char symbol_684[] = "c";
+static char symbol_685[] = "d";
+static char symbol_686[] = "e";
+static char symbol_687[] = "f";
+static char symbol_688[] = "g";
+static char symbol_689[] = "h";
+static char symbol_690[] = "i";
+static char symbol_691[] = "j";
+static char symbol_692[] = "k";
+static char symbol_693[] = "l";
+static char symbol_694[] = "m";
+static char symbol_695[] = "n";
+static char symbol_696[] = "o";
+static char symbol_697[] = "p";
+static char symbol_698[] = "q";
+static char symbol_699[] = "r";
+static char symbol_700[] = "s";
+static char symbol_701[] = "t";
+static char symbol_702[] = "u";
+static char symbol_703[] = "v";
+static char symbol_704[] = "w";
+static char symbol_705[] = "x";
+static char symbol_706[] = "y";
+static char symbol_707[] = "z";
+static char symbol_708[] = "A";
+static char symbol_709[] = "B";
+static char symbol_710[] = "C";
+static char symbol_711[] = "D";
+static char symbol_712[] = "E";
+static char symbol_713[] = "F";
+static char symbol_714[] = "G";
+static char symbol_715[] = "H";
+static char symbol_716[] = "I";
+static char symbol_717[] = "J";
+static char symbol_718[] = "K";
+static char symbol_719[] = "L";
+static char symbol_720[] = "M";
+static char symbol_721[] = "N";
+static char symbol_722[] = "O";
+static char symbol_723[] = "P";
+static char symbol_724[] = "Q";
+static char symbol_725[] = "R";
+static char symbol_726[] = "S";
+static char symbol_727[] = "T";
+static char symbol_728[] = "U";
+static char symbol_729[] = "V";
+static char symbol_730[] = "W";
+static char symbol_731[] = "X";
+static char symbol_732[] = "Y";
+static char symbol_733[] = "Z";
+static char symbol_734[] = " ";
+static char symbol_735[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1522,34 +1525,26 @@ void action_6(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* last_chunks;
     struct Chunks* chunks;
-    last_chunks = runtime->current_chunks;
-    chunks = runtime->named_chunks_ruleVars;
-    runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), 0, NULL);
-    }
-    runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
+    chunks = create_chunks();
+    runtime->named_chunks_orInit = chunks;
+    append_data(runtime->current_chunks, NULL, 0, chunks);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1)), runtime);
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
@@ -1558,24 +1553,24 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1584,35 +1579,35 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1624,61 +1619,61 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1688,13 +1683,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1703,47 +1698,47 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1752,25 +1747,25 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1780,25 +1775,42 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
+    runtime->current_chunks = last_chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_ruleVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_orInit;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
+    }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1807,30 +1819,30 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1))) {
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1)), runtime);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1)), runtime);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
@@ -1839,24 +1851,24 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1))) {
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
-    }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
+    }
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1))) {
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1865,29 +1877,29 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1))) {
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
@@ -1897,47 +1909,45 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1))) {
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1), 0, NULL);
@@ -1947,12 +1957,14 @@ void action_36(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1962,48 +1974,48 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1)), runtime);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -2013,29 +2025,29 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -2045,14 +2057,14 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1)), runtime);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_658, sizeof(symbol_658)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
@@ -2062,21 +2074,21 @@ void action_47(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_661, sizeof(symbol_661)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_662, sizeof(symbol_662)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_664, sizeof(symbol_664)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_665, sizeof(symbol_665)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_666, sizeof(symbol_666)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_665, sizeof(symbol_665)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_667, sizeof(symbol_667)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_666, sizeof(symbol_666)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_668, sizeof(symbol_668)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_667, sizeof(symbol_667)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_669, sizeof(symbol_669)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_671, sizeof(symbol_671)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_673, sizeof(symbol_673)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
@@ -2086,17 +2098,17 @@ void action_49(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_673, sizeof(symbol_673)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_675, sizeof(symbol_675)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_674, sizeof(symbol_674)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_675, sizeof(symbol_675)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_676, sizeof(symbol_676)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_677, sizeof(symbol_677)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_678, sizeof(symbol_678)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_677, sizeof(symbol_677)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_679, sizeof(symbol_679)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_678, sizeof(symbol_678)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_680, sizeof(symbol_680)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_679, sizeof(symbol_679)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_681, sizeof(symbol_681)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2120,11 +2132,11 @@ struct Action* rule_file(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
     unsigned int nlookahead_pos;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2170,8 +2182,8 @@ struct Action* rule_rule(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2222,10 +2234,10 @@ struct Action* rule_ors(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2284,7 +2296,6 @@ struct Action* rule_maybeorbar(struct ParseState* parse_state) {
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     _ = rule_orbar(parse_state);
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
@@ -2300,12 +2311,10 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
         data = buffer_from_cstring(symbol_324, sizeof(symbol_324)-1);
@@ -2351,10 +2360,10 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_matchExpr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), _);
         if (_) {
             _ = rule_matchAnd(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1), _);
             if (_) {
                 return create_action(action_8, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2364,7 +2373,7 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_action(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), _);
     if (_) {
         return create_action(action_9, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2375,13 +2384,13 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_342, sizeof(symbol_342)-1);
+    data = buffer_from_cstring(symbol_337, sizeof(symbol_337)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2390,7 +2399,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1), _);
         if (_) {
             return create_action(action_10, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2398,7 +2407,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_356, sizeof(symbol_356)-1);
+    data = buffer_from_cstring(symbol_351, sizeof(symbol_351)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2407,7 +2416,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2416,10 +2425,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2431,13 +2440,13 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_374, sizeof(symbol_374)-1);
+    data = buffer_from_cstring(symbol_369, sizeof(symbol_369)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2446,7 +2455,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2462,16 +2471,16 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_380, sizeof(symbol_380)-1);
+        data = buffer_from_cstring(symbol_375, sizeof(symbol_375)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2486,7 +2495,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2497,11 +2506,11 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
     struct Buffer* data;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2510,7 +2519,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_407, sizeof(symbol_407)-1);
+        data = buffer_from_cstring(symbol_402, sizeof(symbol_402)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2526,7 +2535,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2544,7 +2553,7 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2562,13 +2571,13 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_415, sizeof(symbol_415)-1);
+    data = buffer_from_cstring(symbol_410, sizeof(symbol_410)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2581,7 +2590,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_416, sizeof(symbol_416)-1);
+    data = buffer_from_cstring(symbol_411, sizeof(symbol_411)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2608,14 +2617,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_422, sizeof(symbol_422)-1);
+    data = buffer_from_cstring(symbol_417, sizeof(symbol_417)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2635,7 +2644,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2643,7 +2652,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_441, sizeof(symbol_441)-1);
+    data = buffer_from_cstring(symbol_436, sizeof(symbol_436)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2657,7 +2666,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2668,18 +2677,18 @@ struct Action* rule_action(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_462, sizeof(symbol_462)-1);
+        data = buffer_from_cstring(symbol_457, sizeof(symbol_457)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2689,7 +2698,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
+                data = buffer_from_cstring(symbol_458, sizeof(symbol_458)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2709,11 +2718,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_465, sizeof(symbol_465)-1);
+                            data = buffer_from_cstring(symbol_460, sizeof(symbol_460)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2740,18 +2749,18 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_474, sizeof(symbol_474)-1);
+        data = buffer_from_cstring(symbol_476, sizeof(symbol_476)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2760,9 +2769,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_476, sizeof(symbol_476)-1);
+                data = buffer_from_cstring(symbol_478, sizeof(symbol_478)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2782,11 +2791,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_478, sizeof(symbol_478)-1);
+                            data = buffer_from_cstring(symbol_480, sizeof(symbol_480)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2807,7 +2816,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_489, sizeof(symbol_489)-1);
+        data = buffer_from_cstring(symbol_491, sizeof(symbol_491)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2816,9 +2825,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_491, sizeof(symbol_491)-1);
+                data = buffer_from_cstring(symbol_493, sizeof(symbol_493)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2838,11 +2847,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_493, sizeof(symbol_493)-1);
+                            data = buffer_from_cstring(symbol_495, sizeof(symbol_495)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2863,7 +2872,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_499, sizeof(symbol_499)-1);
+        data = buffer_from_cstring(symbol_501, sizeof(symbol_501)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2872,11 +2881,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_501, sizeof(symbol_501)-1);
+                    data = buffer_from_cstring(symbol_503, sizeof(symbol_503)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2896,11 +2905,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_503, sizeof(symbol_503)-1);
+                                data = buffer_from_cstring(symbol_505, sizeof(symbol_505)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2922,7 +2931,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_519, sizeof(symbol_519)-1);
+        data = buffer_from_cstring(symbol_521, sizeof(symbol_521)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2931,7 +2940,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2943,7 +2952,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2954,7 +2963,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2965,7 +2974,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2976,7 +2985,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2986,7 +2995,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_558, sizeof(symbol_558)-1);
+        data = buffer_from_cstring(symbol_560, sizeof(symbol_560)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2995,9 +3004,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_560, sizeof(symbol_560)-1);
+                data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3006,9 +3015,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
+                        data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3017,9 +3026,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
+                                data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3041,7 +3050,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
+        data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3061,11 +3070,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
+                    data = buffer_from_cstring(symbol_580, sizeof(symbol_580)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3092,7 +3101,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3109,13 +3118,12 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     _ = rule_digit(parse_state);
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
@@ -3127,13 +3135,11 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
+    data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3145,8 +3151,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_591, sizeof(symbol_591)-1);
+    data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3158,8 +3163,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
+    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3171,8 +3175,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
+    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3184,8 +3187,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
+    data = buffer_from_cstring(symbol_596, sizeof(symbol_596)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3197,8 +3199,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
+    data = buffer_from_cstring(symbol_597, sizeof(symbol_597)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3210,8 +3211,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_596, sizeof(symbol_596)-1);
+    data = buffer_from_cstring(symbol_598, sizeof(symbol_598)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3223,8 +3223,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_597, sizeof(symbol_597)-1);
+    data = buffer_from_cstring(symbol_599, sizeof(symbol_599)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3236,8 +3235,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_598, sizeof(symbol_598)-1);
+    data = buffer_from_cstring(symbol_600, sizeof(symbol_600)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3249,8 +3247,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_599, sizeof(symbol_599)-1);
+    data = buffer_from_cstring(symbol_601, sizeof(symbol_601)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3267,13 +3264,13 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_600, sizeof(symbol_600)-1);
+    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3284,9 +3281,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
+                data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3295,11 +3292,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
+                            data = buffer_from_cstring(symbol_606, sizeof(symbol_606)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3329,14 +3326,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_618, sizeof(symbol_618)-1);
+    data = buffer_from_cstring(symbol_620, sizeof(symbol_620)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3345,9 +3342,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_620, sizeof(symbol_620)-1);
+            data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3356,9 +3353,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
+                    data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3379,16 +3376,16 @@ struct Action* rule_string(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
+    data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3408,9 +3405,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
+            data = buffer_from_cstring(symbol_634, sizeof(symbol_634)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3429,16 +3426,16 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3452,7 +3449,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3464,13 +3461,13 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_646, sizeof(symbol_646)-1);
+    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3479,7 +3476,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3491,13 +3488,13 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_650, sizeof(symbol_650)-1);
+    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3511,9 +3508,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
+            data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3532,14 +3529,12 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
+    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3551,9 +3546,8 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
+    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3584,10 +3578,10 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3606,7 +3600,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_660, sizeof(symbol_660)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_662, sizeof(symbol_662)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3621,13 +3615,11 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
+    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3644,14 +3636,13 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
+    struct Variables* variables;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
+    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3664,7 +3655,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3676,7 +3667,6 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     nlookahead_pos = parse_state->pos;
     _ = rule_quote(parse_state);
     if (_ == NULL) {
@@ -3709,7 +3699,7 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_672, sizeof(symbol_672)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_674, sizeof(symbol_674)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3720,14 +3710,12 @@ struct Action* rule_name(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     _ = rule_char(parse_state);
     if (_) {
         star_variables = create_variables();
@@ -3753,18 +3741,15 @@ struct Action* rule_char(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     _ = rule_lower(parse_state);
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     _ = rule_upper(parse_state);
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
@@ -3776,38 +3761,10 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3820,7 +3777,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3833,7 +3789,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3846,7 +3801,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3859,7 +3813,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3872,7 +3825,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3885,7 +3837,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3898,7 +3849,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3911,7 +3861,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3924,7 +3873,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3937,7 +3885,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3950,7 +3897,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3963,7 +3909,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3976,7 +3921,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -3989,7 +3933,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4002,7 +3945,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4015,7 +3957,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4028,7 +3969,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4041,7 +3981,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4054,7 +3993,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4067,7 +4005,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4080,7 +4017,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4093,7 +4029,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4106,7 +4041,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4117,19 +4051,8 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    return NULL;
-}
-
-struct Action* rule_upper(struct ParseState* parse_state) {
-    unsigned int or_backtrack_pos;
-    unsigned int action_start_pos;
-    struct Action* _;
-    struct Variables* variables;
-    struct Buffer* data;
-    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4142,7 +4065,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4153,9 +4075,17 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    return NULL;
+}
+
+struct Action* rule_upper(struct ParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    struct Action* _;
+    struct Buffer* data;
+    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4168,7 +4098,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4181,7 +4110,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4194,7 +4122,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4207,7 +4134,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4220,7 +4146,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4233,7 +4158,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_714, sizeof(symbol_714)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4246,7 +4170,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_715, sizeof(symbol_715)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4259,7 +4182,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_716, sizeof(symbol_716)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4272,7 +4194,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_717, sizeof(symbol_717)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4285,7 +4206,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_718, sizeof(symbol_718)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4298,7 +4218,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_719, sizeof(symbol_719)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4311,7 +4230,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_720, sizeof(symbol_720)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4324,7 +4242,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_721, sizeof(symbol_721)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4337,7 +4254,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_722, sizeof(symbol_722)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4350,7 +4266,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_723, sizeof(symbol_723)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4363,7 +4278,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_724, sizeof(symbol_724)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4376,7 +4290,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_725, sizeof(symbol_725)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4389,7 +4302,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_726, sizeof(symbol_726)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4402,7 +4314,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_727, sizeof(symbol_727)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4415,7 +4326,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_728, sizeof(symbol_728)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4428,7 +4338,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_729, sizeof(symbol_729)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4441,7 +4350,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_730, sizeof(symbol_730)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4454,7 +4362,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_731, sizeof(symbol_731)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4465,6 +4372,30 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    data = buffer_from_cstring(symbol_732, sizeof(symbol_732)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    data = buffer_from_cstring(symbol_733, sizeof(symbol_733)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
     return NULL;
 }
 
@@ -4472,14 +4403,12 @@ struct Action* rule_space(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
     star_variables = create_variables();
     star_start_pos = parse_state->pos;
     while (1) {
@@ -4502,13 +4431,11 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
     struct Action* _;
-    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_732, sizeof(symbol_732)-1);
+    data = buffer_from_cstring(symbol_734, sizeof(symbol_734)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4520,8 +4447,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_733, sizeof(symbol_733)-1);
+    data = buffer_from_cstring(symbol_735, sizeof(symbol_735)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(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 17c2c73..38e5c21 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -333,14 +333,9 @@ maybeorbar = orbar | -> {};
 orbar = space '|';
 
 orcase = matchAnd:x -> {
-    >ruleVars {
-        unseen("variables") -> {
-            "struct Variables* " "variables" ";\n"
-        }
-    }
     "parse_state->pos = or_backtrack_pos;\n"
     "action_start_pos = parse_state->pos;\n"
-    "variables = create_variables();\n"
+    <orInit
     x
 };
 
@@ -503,6 +498,16 @@ action =
             < "}\n"
             "\n"
         }
+        >ruleVars {
+            unseen("variables") -> {
+                "struct Variables* " "variables" ";\n"
+            }
+        }
+        >orInit {
+            unseen("variables") -> {
+                "variables" " = create_variables();\n"
+            }
+        }
         "return create_action(action_" W[0] ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"
     }
     | -> {

commit 50f34ee3d1d487e284848abd5c0ef6493b10a9b6
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 22:33:52 2025 +0100

    Towards variables only if needed

diff --git a/src/meta/meta.c b/src/meta/meta.c
index 2b24adb..a5cafbb 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -590,425 +590,428 @@ static char symbol_308[] = "x";
 static char symbol_309[] = "(struct ParseState* parse_state) {\n";
 static char symbol_310[] = "unsigned int or_backtrack_pos;\n";
 static char symbol_311[] = "unsigned int action_start_pos;\n";
-static char symbol_312[] = "struct Variables* variables;\n";
-static char symbol_313[] = "struct Action* _;\n";
-static char symbol_314[] = "y";
-static char symbol_315[] = "return NULL;\n";
-static char symbol_316[] = "}\n";
-static char symbol_317[] = "\n";
-static char symbol_318[] = "x";
-static char symbol_319[] = "xs";
-static char symbol_320[] = "or_backtrack_pos = parse_state->pos;\n";
-static char symbol_321[] = "x";
-static char symbol_322[] = "xs";
+static char symbol_312[] = "struct Action* _;\n";
+static char symbol_313[] = "y";
+static char symbol_314[] = "return NULL;\n";
+static char symbol_315[] = "}\n";
+static char symbol_316[] = "\n";
+static char symbol_317[] = "x";
+static char symbol_318[] = "xs";
+static char symbol_319[] = "or_backtrack_pos = parse_state->pos;\n";
+static char symbol_320[] = "x";
+static char symbol_321[] = "xs";
+static char symbol_322[] = "x";
 static char symbol_323[] = "x";
-static char symbol_324[] = "x";
-static char symbol_325[] = "|";
-static char symbol_326[] = "x";
-static char symbol_327[] = "parse_state->pos = or_backtrack_pos;\n";
-static char symbol_328[] = "action_start_pos = parse_state->pos;\n";
-static char symbol_329[] = "variables = create_variables();\n";
-static char symbol_330[] = "x";
-static char symbol_331[] = "x";
-static char symbol_332[] = "y";
+static char symbol_324[] = "|";
+static char symbol_325[] = "x";
+static char symbol_326[] = "variables";
+static char symbol_327[] = "struct Variables* ";
+static char symbol_328[] = "variables";
+static char symbol_329[] = ";\n";
+static char symbol_330[] = "parse_state->pos = or_backtrack_pos;\n";
+static char symbol_331[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_332[] = "variables = create_variables();\n";
 static char symbol_333[] = "x";
-static char symbol_334[] = "if (_) {\n";
+static char symbol_334[] = "x";
 static char symbol_335[] = "y";
-static char symbol_336[] = "}\n";
-static char symbol_337[] = "y";
+static char symbol_336[] = "x";
+static char symbol_337[] = "if (_) {\n";
 static char symbol_338[] = "y";
-static char symbol_339[] = "!";
-static char symbol_340[] = "x";
-static char symbol_341[] = "nlookahead_pos";
-static char symbol_342[] = "unsigned int ";
-static char symbol_343[] = "nlookahead_pos";
-static char symbol_344[] = ";\n";
-static char symbol_345[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_346[] = "x";
-static char symbol_347[] = "if (_ == NULL) {\n";
-static char symbol_348[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_349[] = "} else {\n";
-static char symbol_350[] = "_ = NULL;\n";
-static char symbol_351[] = "}\n";
-static char symbol_352[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_353[] = "&";
-static char symbol_354[] = "x";
-static char symbol_355[] = "lookahead_pos";
-static char symbol_356[] = "unsigned int ";
-static char symbol_357[] = "lookahead_pos";
-static char symbol_358[] = ";\n";
-static char symbol_359[] = "lookahead_pos = parse_state->pos;\n";
-static char symbol_360[] = "x";
-static char symbol_361[] = "if (_ == NULL) {\n";
-static char symbol_362[] = "_ = NULL;\n";
-static char symbol_363[] = "} else {\n";
-static char symbol_364[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_365[] = "}\n";
-static char symbol_366[] = "parse_state->pos = lookahead_pos;\n";
-static char symbol_367[] = "x";
-static char symbol_368[] = "y";
-static char symbol_369[] = "x";
-static char symbol_370[] = "y";
-static char symbol_371[] = ":";
+static char symbol_339[] = "}\n";
+static char symbol_340[] = "y";
+static char symbol_341[] = "y";
+static char symbol_342[] = "!";
+static char symbol_343[] = "x";
+static char symbol_344[] = "nlookahead_pos";
+static char symbol_345[] = "unsigned int ";
+static char symbol_346[] = "nlookahead_pos";
+static char symbol_347[] = ";\n";
+static char symbol_348[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_349[] = "x";
+static char symbol_350[] = "if (_ == NULL) {\n";
+static char symbol_351[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_352[] = "} else {\n";
+static char symbol_353[] = "_ = NULL;\n";
+static char symbol_354[] = "}\n";
+static char symbol_355[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_356[] = "&";
+static char symbol_357[] = "x";
+static char symbol_358[] = "lookahead_pos";
+static char symbol_359[] = "unsigned int ";
+static char symbol_360[] = "lookahead_pos";
+static char symbol_361[] = ";\n";
+static char symbol_362[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_363[] = "x";
+static char symbol_364[] = "if (_ == NULL) {\n";
+static char symbol_365[] = "_ = NULL;\n";
+static char symbol_366[] = "} else {\n";
+static char symbol_367[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_368[] = "}\n";
+static char symbol_369[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_370[] = "x";
+static char symbol_371[] = "y";
 static char symbol_372[] = "x";
-static char symbol_373[] = "append_named_action(variables, ";
-static char symbol_374[] = "x";
-static char symbol_375[] = ", _);\n";
-static char symbol_376[] = "x";
-static char symbol_377[] = "*";
-static char symbol_378[] = "star_variables";
-static char symbol_379[] = "struct Variables* ";
-static char symbol_380[] = "star_variables";
-static char symbol_381[] = ";\n";
-static char symbol_382[] = "star_pos";
-static char symbol_383[] = "unsigned int ";
-static char symbol_384[] = "star_pos";
-static char symbol_385[] = ";\n";
-static char symbol_386[] = "star_start_pos";
-static char symbol_387[] = "unsigned int ";
-static char symbol_388[] = "star_start_pos";
-static char symbol_389[] = ";\n";
-static char symbol_390[] = "star_variables = create_variables();\n";
-static char symbol_391[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_392[] = "while (1) {\n";
-static char symbol_393[] = "star_pos = parse_state->pos;\n";
-static char symbol_394[] = "x";
-static char symbol_395[] = "if (_ == NULL) {\n";
-static char symbol_396[] = "parse_state->pos = star_pos;\n";
-static char symbol_397[] = "break;\n";
-static char symbol_398[] = "}\n";
-static char symbol_399[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_400[] = "}\n";
-static char symbol_401[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char symbol_402[] = "x";
-static char symbol_403[] = "x";
-static char symbol_404[] = "_";
+static char symbol_373[] = "y";
+static char symbol_374[] = ":";
+static char symbol_375[] = "x";
+static char symbol_376[] = "append_named_action(variables, ";
+static char symbol_377[] = "x";
+static char symbol_378[] = ", _);\n";
+static char symbol_379[] = "x";
+static char symbol_380[] = "*";
+static char symbol_381[] = "star_variables";
+static char symbol_382[] = "struct Variables* ";
+static char symbol_383[] = "star_variables";
+static char symbol_384[] = ";\n";
+static char symbol_385[] = "star_pos";
+static char symbol_386[] = "unsigned int ";
+static char symbol_387[] = "star_pos";
+static char symbol_388[] = ";\n";
+static char symbol_389[] = "star_start_pos";
+static char symbol_390[] = "unsigned int ";
+static char symbol_391[] = "star_start_pos";
+static char symbol_392[] = ";\n";
+static char symbol_393[] = "star_variables = create_variables();\n";
+static char symbol_394[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_395[] = "while (1) {\n";
+static char symbol_396[] = "star_pos = parse_state->pos;\n";
+static char symbol_397[] = "x";
+static char symbol_398[] = "if (_ == NULL) {\n";
+static char symbol_399[] = "parse_state->pos = star_pos;\n";
+static char symbol_400[] = "break;\n";
+static char symbol_401[] = "}\n";
+static char symbol_402[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_403[] = "}\n";
+static char symbol_404[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
 static char symbol_405[] = "x";
-static char symbol_406[] = "bitpattern <<= 1;\n";
-static char symbol_407[] = "bitmask <<= 1;\n";
+static char symbol_406[] = "x";
+static char symbol_407[] = "_";
 static char symbol_408[] = "x";
-static char symbol_409[] = "x";
-static char symbol_410[] = "x";
-static char symbol_411[] = "bitmask |= 1;\n";
-static char symbol_412[] = "0";
-static char symbol_413[] = "1";
-static char symbol_414[] = "bitpattern |= 1;\n";
-static char symbol_415[] = "x";
-static char symbol_416[] = "_ = rule_";
-static char symbol_417[] = "x";
-static char symbol_418[] = "(parse_state);\n";
-static char symbol_419[] = "0b";
-static char symbol_420[] = "xs";
-static char symbol_421[] = "bitpattern";
-static char symbol_422[] = "unsigned char ";
-static char symbol_423[] = "bitpattern";
-static char symbol_424[] = ";\n";
-static char symbol_425[] = "bitmask";
-static char symbol_426[] = "unsigned char ";
-static char symbol_427[] = "bitmask";
-static char symbol_428[] = ";\n";
-static char symbol_429[] = "bitpattern = 0;\n";
-static char symbol_430[] = "bitmask = 0;\n";
-static char symbol_431[] = "xs";
-static char symbol_432[] = "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 symbol_433[] = "parse_state->pos += 1;\n";
-static char symbol_434[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_435[] = "} else {\n";
-static char symbol_436[] = "_ = NULL;\n";
-static char symbol_437[] = "}\n";
-static char symbol_438[] = ".";
-static char symbol_439[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_440[] = "parse_state->pos += 1;\n";
-static char symbol_441[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_442[] = "} else {\n";
-static char symbol_443[] = "_ = NULL;\n";
-static char symbol_444[] = "}\n";
-static char symbol_445[] = "x";
-static char symbol_446[] = "data";
-static char symbol_447[] = "struct Buffer* ";
-static char symbol_448[] = "data";
-static char symbol_449[] = ";\n";
-static char symbol_450[] = "data = ";
-static char symbol_451[] = "x";
+static char symbol_409[] = "bitpattern <<= 1;\n";
+static char symbol_410[] = "bitmask <<= 1;\n";
+static char symbol_411[] = "x";
+static char symbol_412[] = "x";
+static char symbol_413[] = "x";
+static char symbol_414[] = "bitmask |= 1;\n";
+static char symbol_415[] = "0";
+static char symbol_416[] = "1";
+static char symbol_417[] = "bitpattern |= 1;\n";
+static char symbol_418[] = "x";
+static char symbol_419[] = "_ = rule_";
+static char symbol_420[] = "x";
+static char symbol_421[] = "(parse_state);\n";
+static char symbol_422[] = "0b";
+static char symbol_423[] = "xs";
+static char symbol_424[] = "bitpattern";
+static char symbol_425[] = "unsigned char ";
+static char symbol_426[] = "bitpattern";
+static char symbol_427[] = ";\n";
+static char symbol_428[] = "bitmask";
+static char symbol_429[] = "unsigned char ";
+static char symbol_430[] = "bitmask";
+static char symbol_431[] = ";\n";
+static char symbol_432[] = "bitpattern = 0;\n";
+static char symbol_433[] = "bitmask = 0;\n";
+static char symbol_434[] = "xs";
+static char symbol_435[] = "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 symbol_436[] = "parse_state->pos += 1;\n";
+static char symbol_437[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_438[] = "} else {\n";
+static char symbol_439[] = "_ = NULL;\n";
+static char symbol_440[] = "}\n";
+static char symbol_441[] = ".";
+static char symbol_442[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_443[] = "parse_state->pos += 1;\n";
+static char symbol_444[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_445[] = "} else {\n";
+static char symbol_446[] = "_ = NULL;\n";
+static char symbol_447[] = "}\n";
+static char symbol_448[] = "x";
+static char symbol_449[] = "data";
+static char symbol_450[] = "struct Buffer* ";
+static char symbol_451[] = "data";
 static char symbol_452[] = ";\n";
-static char symbol_453[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_454[] = "parse_state->pos += data->size;\n";
-static char symbol_455[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_456[] = "} else {\n";
-static char symbol_457[] = "_ = NULL;\n";
-static char symbol_458[] = "}\n";
-static char symbol_459[] = "->";
-static char symbol_460[] = "{";
-static char symbol_461[] = "xs";
-static char symbol_462[] = "}";
-static char symbol_463[] = "void action_";
-static char symbol_464[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_465[] = "xs";
-static char symbol_466[] = "}\n";
-static char symbol_467[] = "\n";
-static char symbol_468[] = "return create_action(action_";
-static char symbol_469[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_470[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_471[] = "unseen(";
-static char symbol_472[] = "x";
-static char symbol_473[] = ") -> {";
-static char symbol_474[] = "ys";
-static char symbol_475[] = "}";
-static char symbol_476[] = "action";
-static char symbol_477[] = "struct Action* ";
-static char symbol_478[] = "action";
-static char symbol_479[] = ";\n";
-static char symbol_480[] = "action = lookup_action(variables, ";
-static char symbol_481[] = "x";
-static char symbol_482[] = ");\n";
-static char symbol_483[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_484[] = "ys";
-static char symbol_485[] = "}\n";
-static char symbol_486[] = "unseen(";
-static char symbol_487[] = "x";
-static char symbol_488[] = ") -> {";
-static char symbol_489[] = "ys";
-static char symbol_490[] = "}";
-static char symbol_491[] = "if (!seen(runtime->current_chunks, ";
-static char symbol_492[] = "x";
-static char symbol_493[] = ")) {\n";
-static char symbol_494[] = "ys";
-static char symbol_495[] = "}\n";
-static char symbol_496[] = ">";
-static char symbol_497[] = "x";
-static char symbol_498[] = "{";
-static char symbol_499[] = "ys";
-static char symbol_500[] = "}";
-static char symbol_501[] = "last_chunks";
-static char symbol_502[] = "struct Chunks* ";
-static char symbol_503[] = "last_chunks";
-static char symbol_504[] = ";\n";
-static char symbol_505[] = "chunks";
-static char symbol_506[] = "struct Chunks* ";
-static char symbol_507[] = "chunks";
-static char symbol_508[] = ";\n";
-static char symbol_509[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_510[] = "chunks = runtime->named_chunks_";
-static char symbol_511[] = "x";
-static char symbol_512[] = ";\n";
-static char symbol_513[] = "runtime->current_chunks = chunks;\n";
-static char symbol_514[] = "ys";
-static char symbol_515[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_516[] = "<";
-static char symbol_517[] = "x";
-static char symbol_518[] = "chunks";
-static char symbol_519[] = "struct Chunks* ";
-static char symbol_520[] = "chunks";
-static char symbol_521[] = ";\n";
-static char symbol_522[] = "chunks = create_chunks();\n";
-static char symbol_523[] = "runtime->named_chunks_";
-static char symbol_524[] = "x";
-static char symbol_525[] = " = chunks;\n";
-static char symbol_526[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_453[] = "data = ";
+static char symbol_454[] = "x";
+static char symbol_455[] = ";\n";
+static char symbol_456[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_457[] = "parse_state->pos += data->size;\n";
+static char symbol_458[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_459[] = "} else {\n";
+static char symbol_460[] = "_ = NULL;\n";
+static char symbol_461[] = "}\n";
+static char symbol_462[] = "->";
+static char symbol_463[] = "{";
+static char symbol_464[] = "xs";
+static char symbol_465[] = "}";
+static char symbol_466[] = "void action_";
+static char symbol_467[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_468[] = "xs";
+static char symbol_469[] = "}\n";
+static char symbol_470[] = "\n";
+static char symbol_471[] = "return create_action(action_";
+static char symbol_472[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_473[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_474[] = "unseen(";
+static char symbol_475[] = "x";
+static char symbol_476[] = ") -> {";
+static char symbol_477[] = "ys";
+static char symbol_478[] = "}";
+static char symbol_479[] = "action";
+static char symbol_480[] = "struct Action* ";
+static char symbol_481[] = "action";
+static char symbol_482[] = ";\n";
+static char symbol_483[] = "action = lookup_action(variables, ";
+static char symbol_484[] = "x";
+static char symbol_485[] = ");\n";
+static char symbol_486[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_487[] = "ys";
+static char symbol_488[] = "}\n";
+static char symbol_489[] = "unseen(";
+static char symbol_490[] = "x";
+static char symbol_491[] = ") -> {";
+static char symbol_492[] = "ys";
+static char symbol_493[] = "}";
+static char symbol_494[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_495[] = "x";
+static char symbol_496[] = ")) {\n";
+static char symbol_497[] = "ys";
+static char symbol_498[] = "}\n";
+static char symbol_499[] = ">";
+static char symbol_500[] = "x";
+static char symbol_501[] = "{";
+static char symbol_502[] = "ys";
+static char symbol_503[] = "}";
+static char symbol_504[] = "last_chunks";
+static char symbol_505[] = "struct Chunks* ";
+static char symbol_506[] = "last_chunks";
+static char symbol_507[] = ";\n";
+static char symbol_508[] = "chunks";
+static char symbol_509[] = "struct Chunks* ";
+static char symbol_510[] = "chunks";
+static char symbol_511[] = ";\n";
+static char symbol_512[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_513[] = "chunks = runtime->named_chunks_";
+static char symbol_514[] = "x";
+static char symbol_515[] = ";\n";
+static char symbol_516[] = "runtime->current_chunks = chunks;\n";
+static char symbol_517[] = "ys";
+static char symbol_518[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_519[] = "<";
+static char symbol_520[] = "x";
+static char symbol_521[] = "chunks";
+static char symbol_522[] = "struct Chunks* ";
+static char symbol_523[] = "chunks";
+static char symbol_524[] = ";\n";
+static char symbol_525[] = "chunks = create_chunks();\n";
+static char symbol_526[] = "runtime->named_chunks_";
 static char symbol_527[] = "x";
-static char symbol_528[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_529[] = "x";
-static char symbol_530[] = "), 0, NULL);\n";
-static char symbol_531[] = "x";
-static char symbol_532[] = "run_action(lookup_action(variables, ";
-static char symbol_533[] = "x";
-static char symbol_534[] = "), runtime);\n";
-static char symbol_535[] = "x";
-static char symbol_536[] = "void placeholder_";
-static char symbol_537[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_538[] = "void placeholder_";
-static char symbol_539[] = "(struct Runtime* runtime, struct Variables* variables) {";
-static char symbol_540[] = "x";
-static char symbol_541[] = "}\n";
-static char symbol_542[] = "\n";
-static char symbol_543[] = "chunks";
-static char symbol_544[] = "struct Chunks* ";
-static char symbol_545[] = "chunks";
-static char symbol_546[] = ";\n";
-static char symbol_547[] = "chunks = create_chunks();\n";
-static char symbol_548[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_549[] = ", variables, NULL, 0, 0));\n";
-static char symbol_550[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_551[] = "x";
-static char symbol_552[] = "append_data(runtime->current_chunks, ";
-static char symbol_553[] = "x";
-static char symbol_554[] = ", 0, NULL);\n";
-static char symbol_555[] = "#";
+static char symbol_528[] = " = chunks;\n";
+static char symbol_529[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_530[] = "x";
+static char symbol_531[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_532[] = "x";
+static char symbol_533[] = "), 0, NULL);\n";
+static char symbol_534[] = "x";
+static char symbol_535[] = "run_action(lookup_action(variables, ";
+static char symbol_536[] = "x";
+static char symbol_537[] = "), runtime);\n";
+static char symbol_538[] = "x";
+static char symbol_539[] = "void placeholder_";
+static char symbol_540[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_541[] = "void placeholder_";
+static char symbol_542[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_543[] = "x";
+static char symbol_544[] = "}\n";
+static char symbol_545[] = "\n";
+static char symbol_546[] = "chunks";
+static char symbol_547[] = "struct Chunks* ";
+static char symbol_548[] = "chunks";
+static char symbol_549[] = ";\n";
+static char symbol_550[] = "chunks = create_chunks();\n";
+static char symbol_551[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_552[] = ", variables, NULL, 0, 0));\n";
+static char symbol_553[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_554[] = "x";
+static char symbol_555[] = "append_data(runtime->current_chunks, ";
 static char symbol_556[] = "x";
-static char symbol_557[] = "(";
-static char symbol_558[] = "y";
-static char symbol_559[] = " ";
-static char symbol_560[] = "z";
-static char symbol_561[] = ")";
-static char symbol_562[] = "runtime->W_";
-static char symbol_563[] = "y";
-static char symbol_564[] = " = ";
-static char symbol_565[] = "x";
-static char symbol_566[] = "(runtime->W_";
-static char symbol_567[] = "y";
-static char symbol_568[] = " ? runtime->W_";
-static char symbol_569[] = "y";
-static char symbol_570[] = " : 0, ";
-static char symbol_571[] = "z";
-static char symbol_572[] = ");\n";
-static char symbol_573[] = ">";
-static char symbol_574[] = "xs";
-static char symbol_575[] = "<";
-static char symbol_576[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_557[] = ", 0, NULL);\n";
+static char symbol_558[] = "#";
+static char symbol_559[] = "x";
+static char symbol_560[] = "(";
+static char symbol_561[] = "y";
+static char symbol_562[] = " ";
+static char symbol_563[] = "z";
+static char symbol_564[] = ")";
+static char symbol_565[] = "runtime->W_";
+static char symbol_566[] = "y";
+static char symbol_567[] = " = ";
+static char symbol_568[] = "x";
+static char symbol_569[] = "(runtime->W_";
+static char symbol_570[] = "y";
+static char symbol_571[] = " ? runtime->W_";
+static char symbol_572[] = "y";
+static char symbol_573[] = " : 0, ";
+static char symbol_574[] = "z";
+static char symbol_575[] = ");\n";
+static char symbol_576[] = ">";
 static char symbol_577[] = "xs";
-static char symbol_578[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_579[] = "x";
-static char symbol_580[] = "x";
-static char symbol_581[] = "struct Chunks* named_chunks_";
+static char symbol_578[] = "<";
+static char symbol_579[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_580[] = "xs";
+static char symbol_581[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
 static char symbol_582[] = "x";
-static char symbol_583[] = ";\n";
-static char symbol_584[] = "x";
+static char symbol_583[] = "x";
+static char symbol_584[] = "struct Chunks* named_chunks_";
 static char symbol_585[] = "x";
-static char symbol_586[] = "x";
-static char symbol_587[] = "0";
-static char symbol_588[] = "1";
-static char symbol_589[] = "2";
-static char symbol_590[] = "3";
-static char symbol_591[] = "4";
-static char symbol_592[] = "5";
-static char symbol_593[] = "6";
-static char symbol_594[] = "7";
-static char symbol_595[] = "8";
-static char symbol_596[] = "9";
-static char symbol_597[] = "{";
-static char symbol_598[] = "x";
-static char symbol_599[] = "*";
-static char symbol_600[] = "y";
-static char symbol_601[] = "}";
-static char symbol_602[] = "for (int i=0; i < ";
+static char symbol_586[] = ";\n";
+static char symbol_587[] = "x";
+static char symbol_588[] = "x";
+static char symbol_589[] = "x";
+static char symbol_590[] = "0";
+static char symbol_591[] = "1";
+static char symbol_592[] = "2";
+static char symbol_593[] = "3";
+static char symbol_594[] = "4";
+static char symbol_595[] = "5";
+static char symbol_596[] = "6";
+static char symbol_597[] = "7";
+static char symbol_598[] = "8";
+static char symbol_599[] = "9";
+static char symbol_600[] = "{";
+static char symbol_601[] = "x";
+static char symbol_602[] = "*";
 static char symbol_603[] = "y";
-static char symbol_604[] = "; i++) {\n";
-static char symbol_605[] = "append_data(runtime->current_chunks, ";
-static char symbol_606[] = "x";
-static char symbol_607[] = ", 0, NULL);\n";
-static char symbol_608[] = "}\n";
+static char symbol_604[] = "}";
+static char symbol_605[] = "for (int i=0; i < ";
+static char symbol_606[] = "y";
+static char symbol_607[] = "; i++) {\n";
+static char symbol_608[] = "append_data(runtime->current_chunks, ";
 static char symbol_609[] = "x";
-static char symbol_610[] = "(runtime->W_";
-static char symbol_611[] = "x";
-static char symbol_612[] = " ? runtime->W_";
-static char symbol_613[] = "x";
-static char symbol_614[] = " : 0)";
-static char symbol_615[] = "(";
+static char symbol_610[] = ", 0, NULL);\n";
+static char symbol_611[] = "}\n";
+static char symbol_612[] = "x";
+static char symbol_613[] = "(runtime->W_";
+static char symbol_614[] = "x";
+static char symbol_615[] = " ? runtime->W_";
 static char symbol_616[] = "x";
-static char symbol_617[] = "-";
-static char symbol_618[] = "y";
-static char symbol_619[] = ")";
-static char symbol_620[] = "((runtime->W_";
-static char symbol_621[] = "x";
-static char symbol_622[] = " ? runtime->W_";
-static char symbol_623[] = "x";
-static char symbol_624[] = " : 0)-";
-static char symbol_625[] = "y";
-static char symbol_626[] = ")";
-static char symbol_627[] = "\"";
-static char symbol_628[] = "xs";
-static char symbol_629[] = "\"";
-static char symbol_630[] = "static char symbol_";
-static char symbol_631[] = "[] = \"";
-static char symbol_632[] = "xs";
-static char symbol_633[] = "\";\n";
-static char symbol_634[] = "buffer_from_cstring(symbol_";
-static char symbol_635[] = ", sizeof(symbol_";
-static char symbol_636[] = ")-1)";
-static char symbol_637[] = "x";
-static char symbol_638[] = "xs";
-static char symbol_639[] = "lookup_action(variables, ";
+static char symbol_617[] = " : 0)";
+static char symbol_618[] = "(";
+static char symbol_619[] = "x";
+static char symbol_620[] = "-";
+static char symbol_621[] = "y";
+static char symbol_622[] = ")";
+static char symbol_623[] = "((runtime->W_";
+static char symbol_624[] = "x";
+static char symbol_625[] = " ? runtime->W_";
+static char symbol_626[] = "x";
+static char symbol_627[] = " : 0)-";
+static char symbol_628[] = "y";
+static char symbol_629[] = ")";
+static char symbol_630[] = "\"";
+static char symbol_631[] = "xs";
+static char symbol_632[] = "\"";
+static char symbol_633[] = "static char symbol_";
+static char symbol_634[] = "[] = \"";
+static char symbol_635[] = "xs";
+static char symbol_636[] = "\";\n";
+static char symbol_637[] = "buffer_from_cstring(symbol_";
+static char symbol_638[] = ", sizeof(symbol_";
+static char symbol_639[] = ")-1)";
 static char symbol_640[] = "x";
-static char symbol_641[] = ")";
-static char symbol_642[] = "xs";
-static char symbol_643[] = ".";
-static char symbol_644[] = "x";
-static char symbol_645[] = "->";
-static char symbol_646[] = "x";
-static char symbol_647[] = "W[";
-static char symbol_648[] = "x";
-static char symbol_649[] = "]";
-static char symbol_650[] = "x";
-static char symbol_651[] = "unsigned int W_";
-static char symbol_652[] = "x";
-static char symbol_653[] = ";\n";
-static char symbol_654[] = "x";
-static char symbol_655[] = "\\\"";
-static char symbol_656[] = "\"";
-static char symbol_657[] = "xs";
-static char symbol_658[] = "static char symbol_";
-static char symbol_659[] = "[] = \"";
+static char symbol_641[] = "xs";
+static char symbol_642[] = "lookup_action(variables, ";
+static char symbol_643[] = "x";
+static char symbol_644[] = ")";
+static char symbol_645[] = "xs";
+static char symbol_646[] = ".";
+static char symbol_647[] = "x";
+static char symbol_648[] = "->";
+static char symbol_649[] = "x";
+static char symbol_650[] = "W[";
+static char symbol_651[] = "x";
+static char symbol_652[] = "]";
+static char symbol_653[] = "x";
+static char symbol_654[] = "unsigned int W_";
+static char symbol_655[] = "x";
+static char symbol_656[] = ";\n";
+static char symbol_657[] = "x";
+static char symbol_658[] = "\\\"";
+static char symbol_659[] = "\"";
 static char symbol_660[] = "xs";
-static char symbol_661[] = "\";\n";
-static char symbol_662[] = "buffer_from_cstring(symbol_";
-static char symbol_663[] = ", sizeof(symbol_";
-static char symbol_664[] = ")-1)";
-static char symbol_665[] = "\'";
-static char symbol_666[] = "\\\'";
-static char symbol_667[] = "\"";
-static char symbol_668[] = "\\\"";
-static char symbol_669[] = "x";
-static char symbol_670[] = "static char symbol_";
-static char symbol_671[] = "[] = \"";
+static char symbol_661[] = "static char symbol_";
+static char symbol_662[] = "[] = \"";
+static char symbol_663[] = "xs";
+static char symbol_664[] = "\";\n";
+static char symbol_665[] = "buffer_from_cstring(symbol_";
+static char symbol_666[] = ", sizeof(symbol_";
+static char symbol_667[] = ")-1)";
+static char symbol_668[] = "\'";
+static char symbol_669[] = "\\\'";
+static char symbol_670[] = "\"";
+static char symbol_671[] = "\\\"";
 static char symbol_672[] = "x";
-static char symbol_673[] = "\";\n";
-static char symbol_674[] = "buffer_from_cstring(symbol_";
-static char symbol_675[] = ", sizeof(symbol_";
-static char symbol_676[] = ")-1)";
-static char symbol_677[] = "a";
-static char symbol_678[] = "b";
-static char symbol_679[] = "c";
-static char symbol_680[] = "d";
-static char symbol_681[] = "e";
-static char symbol_682[] = "f";
-static char symbol_683[] = "g";
-static char symbol_684[] = "h";
-static char symbol_685[] = "i";
-static char symbol_686[] = "j";
-static char symbol_687[] = "k";
-static char symbol_688[] = "l";
-static char symbol_689[] = "m";
-static char symbol_690[] = "n";
-static char symbol_691[] = "o";
-static char symbol_692[] = "p";
-static char symbol_693[] = "q";
-static char symbol_694[] = "r";
-static char symbol_695[] = "s";
-static char symbol_696[] = "t";
-static char symbol_697[] = "u";
-static char symbol_698[] = "v";
-static char symbol_699[] = "w";
-static char symbol_700[] = "x";
-static char symbol_701[] = "y";
-static char symbol_702[] = "z";
-static char symbol_703[] = "A";
-static char symbol_704[] = "B";
-static char symbol_705[] = "C";
-static char symbol_706[] = "D";
-static char symbol_707[] = "E";
-static char symbol_708[] = "F";
-static char symbol_709[] = "G";
-static char symbol_710[] = "H";
-static char symbol_711[] = "I";
-static char symbol_712[] = "J";
-static char symbol_713[] = "K";
-static char symbol_714[] = "L";
-static char symbol_715[] = "M";
-static char symbol_716[] = "N";
-static char symbol_717[] = "O";
-static char symbol_718[] = "P";
-static char symbol_719[] = "Q";
-static char symbol_720[] = "R";
-static char symbol_721[] = "S";
-static char symbol_722[] = "T";
-static char symbol_723[] = "U";
-static char symbol_724[] = "V";
-static char symbol_725[] = "W";
-static char symbol_726[] = "X";
-static char symbol_727[] = "Y";
-static char symbol_728[] = "Z";
-static char symbol_729[] = " ";
-static char symbol_730[] = "\n";
+static char symbol_673[] = "static char symbol_";
+static char symbol_674[] = "[] = \"";
+static char symbol_675[] = "x";
+static char symbol_676[] = "\";\n";
+static char symbol_677[] = "buffer_from_cstring(symbol_";
+static char symbol_678[] = ", sizeof(symbol_";
+static char symbol_679[] = ")-1)";
+static char symbol_680[] = "a";
+static char symbol_681[] = "b";
+static char symbol_682[] = "c";
+static char symbol_683[] = "d";
+static char symbol_684[] = "e";
+static char symbol_685[] = "f";
+static char symbol_686[] = "g";
+static char symbol_687[] = "h";
+static char symbol_688[] = "i";
+static char symbol_689[] = "j";
+static char symbol_690[] = "k";
+static char symbol_691[] = "l";
+static char symbol_692[] = "m";
+static char symbol_693[] = "n";
+static char symbol_694[] = "o";
+static char symbol_695[] = "p";
+static char symbol_696[] = "q";
+static char symbol_697[] = "r";
+static char symbol_698[] = "s";
+static char symbol_699[] = "t";
+static char symbol_700[] = "u";
+static char symbol_701[] = "v";
+static char symbol_702[] = "w";
+static char symbol_703[] = "x";
+static char symbol_704[] = "y";
+static char symbol_705[] = "z";
+static char symbol_706[] = "A";
+static char symbol_707[] = "B";
+static char symbol_708[] = "C";
+static char symbol_709[] = "D";
+static char symbol_710[] = "E";
+static char symbol_711[] = "F";
+static char symbol_712[] = "G";
+static char symbol_713[] = "H";
+static char symbol_714[] = "I";
+static char symbol_715[] = "J";
+static char symbol_716[] = "K";
+static char symbol_717[] = "L";
+static char symbol_718[] = "M";
+static char symbol_719[] = "N";
+static char symbol_720[] = "O";
+static char symbol_721[] = "P";
+static char symbol_722[] = "Q";
+static char symbol_723[] = "R";
+static char symbol_724[] = "S";
+static char symbol_725[] = "T";
+static char symbol_726[] = "U";
+static char symbol_727[] = "V";
+static char symbol_728[] = "W";
+static char symbol_729[] = "X";
+static char symbol_730[] = "Y";
+static char symbol_731[] = "Z";
+static char symbol_732[] = " ";
+static char symbol_733[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1495,48 +1498,58 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_310, sizeof(symbol_310)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_311, sizeof(symbol_311)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_ruleVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), 0, NULL);
 }
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1)), runtime);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1)), runtime);
 }
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1)), runtime);
+    struct Chunks* last_chunks;
+    struct Chunks* chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_ruleVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), 0, NULL);
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
@@ -1545,24 +1558,24 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
@@ -1571,35 +1584,35 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
@@ -1611,61 +1624,61 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1675,13 +1688,13 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
@@ -1690,47 +1703,47 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
@@ -1739,25 +1752,25 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_ruleVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1767,25 +1780,25 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1794,30 +1807,30 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1)), runtime);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1)), runtime);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
@@ -1826,24 +1839,24 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
-    }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1))) {
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
+    }
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1852,29 +1865,29 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
@@ -1884,62 +1897,62 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1949,48 +1962,48 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -2000,29 +2013,29 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -2032,14 +2045,14 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_655, sizeof(symbol_655)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_656, sizeof(symbol_656)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
@@ -2049,21 +2062,21 @@ void action_47(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_658, sizeof(symbol_658)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_660, sizeof(symbol_660)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_661, sizeof(symbol_661)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_662, sizeof(symbol_662)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_664, sizeof(symbol_664)-1), 0, NULL);
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_665, sizeof(symbol_665)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_666, sizeof(symbol_666)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_664, sizeof(symbol_664)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_667, sizeof(symbol_667)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_668, sizeof(symbol_668)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_671, sizeof(symbol_671)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
@@ -2073,24 +2086,24 @@ void action_49(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_670, sizeof(symbol_670)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_671, sizeof(symbol_671)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_672, sizeof(symbol_672)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_673, sizeof(symbol_673)-1), 0, NULL);
-    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_674, sizeof(symbol_674)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_675, sizeof(symbol_675)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_676, sizeof(symbol_676)-1), 0, NULL);
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_677, sizeof(symbol_677)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_675, sizeof(symbol_675)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_678, sizeof(symbol_678)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_676, sizeof(symbol_676)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_679, sizeof(symbol_679)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2106,8 +2119,8 @@ struct Action* rule_main(struct ParseState* parse_state) {
 struct Action* rule_file(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -2156,8 +2169,8 @@ struct Action* rule_file(struct ParseState* parse_state) {
 struct Action* rule_rule(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
@@ -2208,8 +2221,8 @@ struct Action* rule_rule(struct ParseState* parse_state) {
 struct Action* rule_ors(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -2220,7 +2233,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
     _ = rule_maybeorbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), _);
         if (_) {
             star_variables = create_variables();
             star_start_pos = parse_state->pos;
@@ -2234,7 +2247,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), _);
             if (_) {
                 return create_action(action_4, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2246,8 +2259,8 @@ struct Action* rule_ors(struct ParseState* parse_state) {
 struct Action* rule_restorcase(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2255,7 +2268,7 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
     _ = rule_orbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1), _);
         if (_) {
             return create_action(action_5, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2266,8 +2279,8 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
 struct Action* rule_maybeorbar(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2286,8 +2299,8 @@ struct Action* rule_maybeorbar(struct ParseState* parse_state) {
 struct Action* rule_orbar(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
@@ -2295,7 +2308,7 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_325, sizeof(symbol_325)-1);
+        data = buffer_from_cstring(symbol_324, sizeof(symbol_324)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2312,14 +2325,14 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
 struct Action* rule_orcase(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchAnd(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1), _);
     if (_) {
         return create_action(action_7, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2329,8 +2342,8 @@ struct Action* rule_orcase(struct ParseState* parse_state) {
 struct Action* rule_matchAnd(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2338,10 +2351,10 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_matchExpr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), _);
         if (_) {
             _ = rule_matchAnd(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), _);
             if (_) {
                 return create_action(action_8, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2351,7 +2364,7 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_action(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
     if (_) {
         return create_action(action_9, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2361,14 +2374,14 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
 struct Action* rule_matchExpr(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_339, sizeof(symbol_339)-1);
+    data = buffer_from_cstring(symbol_342, sizeof(symbol_342)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2377,7 +2390,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), _);
         if (_) {
             return create_action(action_10, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2385,7 +2398,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_353, sizeof(symbol_353)-1);
+    data = buffer_from_cstring(symbol_356, sizeof(symbol_356)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2394,7 +2407,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2403,10 +2416,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2417,14 +2430,14 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
 struct Action* rule_matchAssign(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_371, sizeof(symbol_371)-1);
+    data = buffer_from_cstring(symbol_374, sizeof(symbol_374)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2433,7 +2446,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2448,17 +2461,17 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
 struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_377, sizeof(symbol_377)-1);
+        data = buffer_from_cstring(symbol_380, sizeof(symbol_380)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2473,7 +2486,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2483,8 +2496,8 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
 struct Action* rule_sepBit(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -2497,7 +2510,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_404, sizeof(symbol_404)-1);
+        data = buffer_from_cstring(symbol_407, sizeof(symbol_407)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2513,7 +2526,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2524,14 +2537,14 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
 struct Action* rule_maybeBit(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2548,14 +2561,14 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
 struct Action* rule_bit(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_412, sizeof(symbol_412)-1);
+    data = buffer_from_cstring(symbol_415, sizeof(symbol_415)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2568,7 +2581,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_413, sizeof(symbol_413)-1);
+    data = buffer_from_cstring(symbol_416, sizeof(symbol_416)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2584,8 +2597,8 @@ struct Action* rule_bit(struct ParseState* parse_state) {
 struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     struct Variables* star_variables;
     unsigned int star_pos;
@@ -2595,14 +2608,14 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_419, sizeof(symbol_419)-1);
+    data = buffer_from_cstring(symbol_422, sizeof(symbol_422)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2622,7 +2635,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2630,7 +2643,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_438, sizeof(symbol_438)-1);
+    data = buffer_from_cstring(symbol_441, sizeof(symbol_441)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2644,7 +2657,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2654,8 +2667,8 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
 struct Action* rule_action(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     struct Variables* star_variables;
     unsigned int star_pos;
@@ -2666,7 +2679,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
+        data = buffer_from_cstring(symbol_462, sizeof(symbol_462)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2676,7 +2689,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_460, sizeof(symbol_460)-1);
+                data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2696,11 +2709,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_462, sizeof(symbol_462)-1);
+                            data = buffer_from_cstring(symbol_465, sizeof(symbol_465)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2726,8 +2739,8 @@ struct Action* rule_action(struct ParseState* parse_state) {
 struct Action* rule_actionexpr(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     struct Variables* star_variables;
     unsigned int star_pos;
@@ -2738,7 +2751,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_471, sizeof(symbol_471)-1);
+        data = buffer_from_cstring(symbol_474, sizeof(symbol_474)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2747,9 +2760,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_473, sizeof(symbol_473)-1);
+                data = buffer_from_cstring(symbol_476, sizeof(symbol_476)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2769,11 +2782,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_475, sizeof(symbol_475)-1);
+                            data = buffer_from_cstring(symbol_478, sizeof(symbol_478)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2794,7 +2807,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_486, sizeof(symbol_486)-1);
+        data = buffer_from_cstring(symbol_489, sizeof(symbol_489)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2803,9 +2816,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_488, sizeof(symbol_488)-1);
+                data = buffer_from_cstring(symbol_491, sizeof(symbol_491)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2825,11 +2838,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_490, sizeof(symbol_490)-1);
+                            data = buffer_from_cstring(symbol_493, sizeof(symbol_493)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2850,7 +2863,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_496, sizeof(symbol_496)-1);
+        data = buffer_from_cstring(symbol_499, sizeof(symbol_499)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2859,11 +2872,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_498, sizeof(symbol_498)-1);
+                    data = buffer_from_cstring(symbol_501, sizeof(symbol_501)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2883,11 +2896,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_500, sizeof(symbol_500)-1);
+                                data = buffer_from_cstring(symbol_503, sizeof(symbol_503)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2909,7 +2922,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_516, sizeof(symbol_516)-1);
+        data = buffer_from_cstring(symbol_519, sizeof(symbol_519)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2918,7 +2931,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2930,7 +2943,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2941,7 +2954,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2952,7 +2965,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2963,7 +2976,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2973,7 +2986,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_555, sizeof(symbol_555)-1);
+        data = buffer_from_cstring(symbol_558, sizeof(symbol_558)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2982,9 +2995,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_557, sizeof(symbol_557)-1);
+                data = buffer_from_cstring(symbol_560, sizeof(symbol_560)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2993,9 +3006,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_559, sizeof(symbol_559)-1);
+                        data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3004,9 +3017,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_561, sizeof(symbol_561)-1);
+                                data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3028,7 +3041,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
+        data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3048,11 +3061,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
+                    data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3072,14 +3085,14 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
 struct Action* rule_chunkName(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3089,14 +3102,14 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
 struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3113,14 +3126,14 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
 struct Action* rule_digit(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_587, sizeof(symbol_587)-1);
+    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3133,7 +3146,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
+    data = buffer_from_cstring(symbol_591, sizeof(symbol_591)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3146,7 +3159,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_589, sizeof(symbol_589)-1);
+    data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3159,7 +3172,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
+    data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3172,7 +3185,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_591, sizeof(symbol_591)-1);
+    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3185,7 +3198,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
+    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3198,7 +3211,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
+    data = buffer_from_cstring(symbol_596, sizeof(symbol_596)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3211,7 +3224,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
+    data = buffer_from_cstring(symbol_597, sizeof(symbol_597)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3224,7 +3237,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
+    data = buffer_from_cstring(symbol_598, sizeof(symbol_598)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3237,7 +3250,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_596, sizeof(symbol_596)-1);
+    data = buffer_from_cstring(symbol_599, sizeof(symbol_599)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3253,14 +3266,14 @@ struct Action* rule_digit(struct ParseState* parse_state) {
 struct Action* rule_placeholder(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_597, sizeof(symbol_597)-1);
+    data = buffer_from_cstring(symbol_600, sizeof(symbol_600)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3271,9 +3284,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_599, sizeof(symbol_599)-1);
+                data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3282,11 +3295,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_601, sizeof(symbol_601)-1);
+                            data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3308,22 +3321,22 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
 struct Action* rule_expr(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_615, sizeof(symbol_615)-1);
+    data = buffer_from_cstring(symbol_618, sizeof(symbol_618)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3332,9 +3345,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_617, sizeof(symbol_617)-1);
+            data = buffer_from_cstring(symbol_620, sizeof(symbol_620)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3343,9 +3356,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_619, sizeof(symbol_619)-1);
+                    data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3365,8 +3378,8 @@ struct Action* rule_expr(struct ParseState* parse_state) {
 struct Action* rule_string(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     struct Variables* star_variables;
     unsigned int star_pos;
@@ -3375,7 +3388,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_627, sizeof(symbol_627)-1);
+    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3395,9 +3408,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_629, sizeof(symbol_629)-1);
+            data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3415,8 +3428,8 @@ struct Action* rule_string(struct ParseState* parse_state) {
 struct Action* rule_dotname(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -3425,7 +3438,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3439,7 +3452,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3450,14 +3463,14 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
 struct Action* rule_nextname(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
+    data = buffer_from_cstring(symbol_646, sizeof(symbol_646)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3466,7 +3479,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3477,14 +3490,14 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
 struct Action* rule_wvar(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_647, sizeof(symbol_647)-1);
+    data = buffer_from_cstring(symbol_650, sizeof(symbol_650)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3498,9 +3511,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_649, sizeof(symbol_649)-1);
+            data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3518,15 +3531,15 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
 struct Action* rule_stringinner(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
+    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3540,7 +3553,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
+    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3570,8 +3583,8 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
 struct Action* rule_charstring(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -3593,7 +3606,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_660, sizeof(symbol_660)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3607,14 +3620,14 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
 struct Action* rule_quote(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
+    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3630,15 +3643,15 @@ struct Action* rule_quote(struct ParseState* parse_state) {
 struct Action* rule_innercharstring(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
+    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3651,7 +3664,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
+    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3689,14 +3702,14 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
 struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_669, sizeof(symbol_669)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_672, sizeof(symbol_672)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3706,8 +3719,8 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
 struct Action* rule_name(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -3739,8 +3752,8 @@ struct Action* rule_name(struct ParseState* parse_state) {
 struct Action* rule_char(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3762,52 +3775,13 @@ struct Action* rule_char(struct ParseState* parse_state) {
 struct Action* rule_lower(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    variables = create_variables();
     data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4104,16 +4078,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    return NULL;
-}
-
-struct Action* rule_upper(struct ParseState* parse_state) {
-    unsigned int or_backtrack_pos;
-    unsigned int action_start_pos;
-    struct Variables* variables;
-    struct Action* _;
-    struct Buffer* data;
-    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
@@ -4153,6 +4117,16 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    return NULL;
+}
+
+struct Action* rule_upper(struct ParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    struct Action* _;
+    struct Variables* variables;
+    struct Buffer* data;
+    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
@@ -4452,14 +4426,53 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    variables = create_variables();
+    data = buffer_from_cstring(symbol_729, sizeof(symbol_729)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    variables = create_variables();
+    data = buffer_from_cstring(symbol_730, sizeof(symbol_730)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    variables = create_variables();
+    data = buffer_from_cstring(symbol_731, sizeof(symbol_731)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
     return NULL;
 }
 
 struct Action* rule_space(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Variables* star_variables;
     unsigned int star_pos;
     unsigned int star_start_pos;
@@ -4488,14 +4501,14 @@ struct Action* rule_space(struct ParseState* parse_state) {
 struct Action* rule_spacechar(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    struct Variables* variables;
     struct Action* _;
+    struct Variables* variables;
     struct Buffer* data;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_729, sizeof(symbol_729)-1);
+    data = buffer_from_cstring(symbol_732, sizeof(symbol_732)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4508,7 +4521,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_730, sizeof(symbol_730)-1);
+    data = buffer_from_cstring(symbol_733, sizeof(symbol_733)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(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 a476ff3..17c2c73 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -312,7 +312,6 @@ rule = space name:x space '=' space ors:y space ';' -> {
     "struct Action* rule_" x "(struct ParseState* parse_state) {\n" >
         "unsigned int or_backtrack_pos;\n"
         "unsigned int action_start_pos;\n"
-        "struct Variables* variables;\n"
         "struct Action* _;\n"
         <ruleVars
         y
@@ -334,6 +333,11 @@ maybeorbar = orbar | -> {};
 orbar = space '|';
 
 orcase = matchAnd:x -> {
+    >ruleVars {
+        unseen("variables") -> {
+            "struct Variables* " "variables" ";\n"
+        }
+    }
     "parse_state->pos = or_backtrack_pos;\n"
     "action_start_pos = parse_state->pos;\n"
     "variables = create_variables();\n"

commit dd2f1ca846029fac884b9b78427e4342a7a2866e
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 22:18:27 2025 +0100

    Generate a few more variables only if used

diff --git a/src/meta/meta.c b/src/meta/meta.c
index 8f10e44..2b24adb 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -21,6 +21,7 @@ struct Runtime {
     struct Chunks* named_chunks_definitions;
     struct Chunks* named_chunks_actions;
     struct Chunks* named_chunks_placeholders;
+    struct Chunks* named_chunks_ruleVars;
     struct Chunks* named_chunks_actionVars;
     struct Chunks* current_chunks;
     unsigned int W_0;
@@ -589,400 +590,425 @@ static char symbol_308[] = "x";
 static char symbol_309[] = "(struct ParseState* parse_state) {\n";
 static char symbol_310[] = "unsigned int or_backtrack_pos;\n";
 static char symbol_311[] = "unsigned int action_start_pos;\n";
-static char symbol_312[] = "unsigned int star_start_pos;\n";
-static char symbol_313[] = "unsigned int star_pos;\n";
-static char symbol_314[] = "unsigned int nlookahead_pos;\n";
-static char symbol_315[] = "struct Variables* variables;\n";
-static char symbol_316[] = "struct Variables* star_variables;\n";
-static char symbol_317[] = "struct Action* _;\n";
-static char symbol_318[] = "struct Buffer* data;\n";
-static char symbol_319[] = "unsigned char bitpattern;\n";
-static char symbol_320[] = "unsigned char bitmask;\n";
-static char symbol_321[] = "y";
-static char symbol_322[] = "return NULL;\n";
-static char symbol_323[] = "}\n";
-static char symbol_324[] = "\n";
-static char symbol_325[] = "x";
-static char symbol_326[] = "xs";
-static char symbol_327[] = "or_backtrack_pos = parse_state->pos;\n";
-static char symbol_328[] = "x";
-static char symbol_329[] = "xs";
+static char symbol_312[] = "struct Variables* variables;\n";
+static char symbol_313[] = "struct Action* _;\n";
+static char symbol_314[] = "y";
+static char symbol_315[] = "return NULL;\n";
+static char symbol_316[] = "}\n";
+static char symbol_317[] = "\n";
+static char symbol_318[] = "x";
+static char symbol_319[] = "xs";
+static char symbol_320[] = "or_backtrack_pos = parse_state->pos;\n";
+static char symbol_321[] = "x";
+static char symbol_322[] = "xs";
+static char symbol_323[] = "x";
+static char symbol_324[] = "x";
+static char symbol_325[] = "|";
+static char symbol_326[] = "x";
+static char symbol_327[] = "parse_state->pos = or_backtrack_pos;\n";
+static char symbol_328[] = "action_start_pos = parse_state->pos;\n";
+static char symbol_329[] = "variables = create_variables();\n";
 static char symbol_330[] = "x";
 static char symbol_331[] = "x";
-static char symbol_332[] = "|";
+static char symbol_332[] = "y";
 static char symbol_333[] = "x";
-static char symbol_334[] = "parse_state->pos = or_backtrack_pos;\n";
-static char symbol_335[] = "action_start_pos = parse_state->pos;\n";
-static char symbol_336[] = "variables = create_variables();\n";
-static char symbol_337[] = "x";
-static char symbol_338[] = "x";
-static char symbol_339[] = "y";
+static char symbol_334[] = "if (_) {\n";
+static char symbol_335[] = "y";
+static char symbol_336[] = "}\n";
+static char symbol_337[] = "y";
+static char symbol_338[] = "y";
+static char symbol_339[] = "!";
 static char symbol_340[] = "x";
-static char symbol_341[] = "if (_) {\n";
-static char symbol_342[] = "y";
-static char symbol_343[] = "}\n";
-static char symbol_344[] = "y";
-static char symbol_345[] = "y";
-static char symbol_346[] = "!";
-static char symbol_347[] = "x";
-static char symbol_348[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_349[] = "x";
-static char symbol_350[] = "if (_ == NULL) {\n";
-static char symbol_351[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_352[] = "} else {\n";
-static char symbol_353[] = "_ = NULL;\n";
-static char symbol_354[] = "}\n";
-static char symbol_355[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_356[] = "&";
-static char symbol_357[] = "x";
-static char symbol_358[] = "nlookahead_pos = parse_state->pos;\n";
-static char symbol_359[] = "x";
-static char symbol_360[] = "if (_ == NULL) {\n";
-static char symbol_361[] = "_ = NULL;\n";
-static char symbol_362[] = "} else {\n";
-static char symbol_363[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
-static char symbol_364[] = "}\n";
-static char symbol_365[] = "parse_state->pos = nlookahead_pos;\n";
-static char symbol_366[] = "x";
-static char symbol_367[] = "y";
-static char symbol_368[] = "x";
-static char symbol_369[] = "y";
-static char symbol_370[] = ":";
-static char symbol_371[] = "x";
-static char symbol_372[] = "append_named_action(variables, ";
-static char symbol_373[] = "x";
-static char symbol_374[] = ", _);\n";
-static char symbol_375[] = "x";
-static char symbol_376[] = "*";
-static char symbol_377[] = "star_variables = create_variables();\n";
-static char symbol_378[] = "star_start_pos = parse_state->pos;\n";
-static char symbol_379[] = "while (1) {\n";
-static char symbol_380[] = "star_pos = parse_state->pos;\n";
-static char symbol_381[] = "x";
-static char symbol_382[] = "if (_ == NULL) {\n";
-static char symbol_383[] = "parse_state->pos = star_pos;\n";
-static char symbol_384[] = "break;\n";
-static char symbol_385[] = "}\n";
-static char symbol_386[] = "append_named_action(star_variables, NULL, _);\n";
-static char symbol_387[] = "}\n";
-static char symbol_388[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
-static char symbol_389[] = "x";
-static char symbol_390[] = "x";
-static char symbol_391[] = "_";
-static char symbol_392[] = "x";
-static char symbol_393[] = "bitpattern <<= 1;\n";
-static char symbol_394[] = "bitmask <<= 1;\n";
-static char symbol_395[] = "x";
-static char symbol_396[] = "x";
-static char symbol_397[] = "x";
-static char symbol_398[] = "bitmask |= 1;\n";
-static char symbol_399[] = "0";
-static char symbol_400[] = "1";
-static char symbol_401[] = "bitpattern |= 1;\n";
+static char symbol_341[] = "nlookahead_pos";
+static char symbol_342[] = "unsigned int ";
+static char symbol_343[] = "nlookahead_pos";
+static char symbol_344[] = ";\n";
+static char symbol_345[] = "nlookahead_pos = parse_state->pos;\n";
+static char symbol_346[] = "x";
+static char symbol_347[] = "if (_ == NULL) {\n";
+static char symbol_348[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_349[] = "} else {\n";
+static char symbol_350[] = "_ = NULL;\n";
+static char symbol_351[] = "}\n";
+static char symbol_352[] = "parse_state->pos = nlookahead_pos;\n";
+static char symbol_353[] = "&";
+static char symbol_354[] = "x";
+static char symbol_355[] = "lookahead_pos";
+static char symbol_356[] = "unsigned int ";
+static char symbol_357[] = "lookahead_pos";
+static char symbol_358[] = ";\n";
+static char symbol_359[] = "lookahead_pos = parse_state->pos;\n";
+static char symbol_360[] = "x";
+static char symbol_361[] = "if (_ == NULL) {\n";
+static char symbol_362[] = "_ = NULL;\n";
+static char symbol_363[] = "} else {\n";
+static char symbol_364[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n";
+static char symbol_365[] = "}\n";
+static char symbol_366[] = "parse_state->pos = lookahead_pos;\n";
+static char symbol_367[] = "x";
+static char symbol_368[] = "y";
+static char symbol_369[] = "x";
+static char symbol_370[] = "y";
+static char symbol_371[] = ":";
+static char symbol_372[] = "x";
+static char symbol_373[] = "append_named_action(variables, ";
+static char symbol_374[] = "x";
+static char symbol_375[] = ", _);\n";
+static char symbol_376[] = "x";
+static char symbol_377[] = "*";
+static char symbol_378[] = "star_variables";
+static char symbol_379[] = "struct Variables* ";
+static char symbol_380[] = "star_variables";
+static char symbol_381[] = ";\n";
+static char symbol_382[] = "star_pos";
+static char symbol_383[] = "unsigned int ";
+static char symbol_384[] = "star_pos";
+static char symbol_385[] = ";\n";
+static char symbol_386[] = "star_start_pos";
+static char symbol_387[] = "unsigned int ";
+static char symbol_388[] = "star_start_pos";
+static char symbol_389[] = ";\n";
+static char symbol_390[] = "star_variables = create_variables();\n";
+static char symbol_391[] = "star_start_pos = parse_state->pos;\n";
+static char symbol_392[] = "while (1) {\n";
+static char symbol_393[] = "star_pos = parse_state->pos;\n";
+static char symbol_394[] = "x";
+static char symbol_395[] = "if (_ == NULL) {\n";
+static char symbol_396[] = "parse_state->pos = star_pos;\n";
+static char symbol_397[] = "break;\n";
+static char symbol_398[] = "}\n";
+static char symbol_399[] = "append_named_action(star_variables, NULL, _);\n";
+static char symbol_400[] = "}\n";
+static char symbol_401[] = "_ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n";
 static char symbol_402[] = "x";
-static char symbol_403[] = "_ = rule_";
-static char symbol_404[] = "x";
-static char symbol_405[] = "(parse_state);\n";
-static char symbol_406[] = "0b";
-static char symbol_407[] = "xs";
-static char symbol_408[] = "bitpattern = 0;\n";
-static char symbol_409[] = "bitmask = 0;\n";
-static char symbol_410[] = "xs";
-static char symbol_411[] = "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 symbol_412[] = "parse_state->pos += 1;\n";
-static char symbol_413[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_414[] = "} else {\n";
-static char symbol_415[] = "_ = NULL;\n";
-static char symbol_416[] = "}\n";
-static char symbol_417[] = ".";
-static char symbol_418[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
-static char symbol_419[] = "parse_state->pos += 1;\n";
-static char symbol_420[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
-static char symbol_421[] = "} else {\n";
-static char symbol_422[] = "_ = NULL;\n";
-static char symbol_423[] = "}\n";
-static char symbol_424[] = "x";
-static char symbol_425[] = "data = ";
-static char symbol_426[] = "x";
-static char symbol_427[] = ";\n";
-static char symbol_428[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
-static char symbol_429[] = "parse_state->pos += data->size;\n";
-static char symbol_430[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
-static char symbol_431[] = "} else {\n";
-static char symbol_432[] = "_ = NULL;\n";
-static char symbol_433[] = "}\n";
-static char symbol_434[] = "->";
-static char symbol_435[] = "{";
-static char symbol_436[] = "xs";
-static char symbol_437[] = "}";
-static char symbol_438[] = "void action_";
-static char symbol_439[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_440[] = "xs";
-static char symbol_441[] = "}\n";
-static char symbol_442[] = "\n";
-static char symbol_443[] = "return create_action(action_";
-static char symbol_444[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_445[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_446[] = "unseen(";
-static char symbol_447[] = "x";
-static char symbol_448[] = ") -> {";
-static char symbol_449[] = "ys";
-static char symbol_450[] = "}";
-static char symbol_451[] = "action";
-static char symbol_452[] = "struct Action* ";
-static char symbol_453[] = "action";
-static char symbol_454[] = ";\n";
-static char symbol_455[] = "action = lookup_action(variables, ";
-static char symbol_456[] = "x";
-static char symbol_457[] = ");\n";
-static char symbol_458[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_459[] = "ys";
-static char symbol_460[] = "}\n";
-static char symbol_461[] = "unseen(";
-static char symbol_462[] = "x";
-static char symbol_463[] = ") -> {";
-static char symbol_464[] = "ys";
-static char symbol_465[] = "}";
-static char symbol_466[] = "if (!seen(runtime->current_chunks, ";
-static char symbol_467[] = "x";
-static char symbol_468[] = ")) {\n";
-static char symbol_469[] = "ys";
-static char symbol_470[] = "}\n";
-static char symbol_471[] = ">";
+static char symbol_403[] = "x";
+static char symbol_404[] = "_";
+static char symbol_405[] = "x";
+static char symbol_406[] = "bitpattern <<= 1;\n";
+static char symbol_407[] = "bitmask <<= 1;\n";
+static char symbol_408[] = "x";
+static char symbol_409[] = "x";
+static char symbol_410[] = "x";
+static char symbol_411[] = "bitmask |= 1;\n";
+static char symbol_412[] = "0";
+static char symbol_413[] = "1";
+static char symbol_414[] = "bitpattern |= 1;\n";
+static char symbol_415[] = "x";
+static char symbol_416[] = "_ = rule_";
+static char symbol_417[] = "x";
+static char symbol_418[] = "(parse_state);\n";
+static char symbol_419[] = "0b";
+static char symbol_420[] = "xs";
+static char symbol_421[] = "bitpattern";
+static char symbol_422[] = "unsigned char ";
+static char symbol_423[] = "bitpattern";
+static char symbol_424[] = ";\n";
+static char symbol_425[] = "bitmask";
+static char symbol_426[] = "unsigned char ";
+static char symbol_427[] = "bitmask";
+static char symbol_428[] = ";\n";
+static char symbol_429[] = "bitpattern = 0;\n";
+static char symbol_430[] = "bitmask = 0;\n";
+static char symbol_431[] = "xs";
+static char symbol_432[] = "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 symbol_433[] = "parse_state->pos += 1;\n";
+static char symbol_434[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_435[] = "} else {\n";
+static char symbol_436[] = "_ = NULL;\n";
+static char symbol_437[] = "}\n";
+static char symbol_438[] = ".";
+static char symbol_439[] = "if (parse_state->pos < parse_state->input_buffer->size) {\n";
+static char symbol_440[] = "parse_state->pos += 1;\n";
+static char symbol_441[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n";
+static char symbol_442[] = "} else {\n";
+static char symbol_443[] = "_ = NULL;\n";
+static char symbol_444[] = "}\n";
+static char symbol_445[] = "x";
+static char symbol_446[] = "data";
+static char symbol_447[] = "struct Buffer* ";
+static char symbol_448[] = "data";
+static char symbol_449[] = ";\n";
+static char symbol_450[] = "data = ";
+static char symbol_451[] = "x";
+static char symbol_452[] = ";\n";
+static char symbol_453[] = "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n";
+static char symbol_454[] = "parse_state->pos += data->size;\n";
+static char symbol_455[] = "_ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n";
+static char symbol_456[] = "} else {\n";
+static char symbol_457[] = "_ = NULL;\n";
+static char symbol_458[] = "}\n";
+static char symbol_459[] = "->";
+static char symbol_460[] = "{";
+static char symbol_461[] = "xs";
+static char symbol_462[] = "}";
+static char symbol_463[] = "void action_";
+static char symbol_464[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
+static char symbol_465[] = "xs";
+static char symbol_466[] = "}\n";
+static char symbol_467[] = "\n";
+static char symbol_468[] = "return create_action(action_";
+static char symbol_469[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_470[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_471[] = "unseen(";
 static char symbol_472[] = "x";
-static char symbol_473[] = "{";
+static char symbol_473[] = ") -> {";
 static char symbol_474[] = "ys";
 static char symbol_475[] = "}";
-static char symbol_476[] = "last_chunks";
-static char symbol_477[] = "struct Chunks* ";
-static char symbol_478[] = "last_chunks";
+static char symbol_476[] = "action";
+static char symbol_477[] = "struct Action* ";
+static char symbol_478[] = "action";
 static char symbol_479[] = ";\n";
-static char symbol_480[] = "chunks";
-static char symbol_481[] = "struct Chunks* ";
-static char symbol_482[] = "chunks";
-static char symbol_483[] = ";\n";
-static char symbol_484[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_485[] = "chunks = runtime->named_chunks_";
-static char symbol_486[] = "x";
-static char symbol_487[] = ";\n";
-static char symbol_488[] = "runtime->current_chunks = chunks;\n";
+static char symbol_480[] = "action = lookup_action(variables, ";
+static char symbol_481[] = "x";
+static char symbol_482[] = ");\n";
+static char symbol_483[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_484[] = "ys";
+static char symbol_485[] = "}\n";
+static char symbol_486[] = "unseen(";
+static char symbol_487[] = "x";
+static char symbol_488[] = ") -> {";
 static char symbol_489[] = "ys";
-static char symbol_490[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_491[] = "<";
+static char symbol_490[] = "}";
+static char symbol_491[] = "if (!seen(runtime->current_chunks, ";
 static char symbol_492[] = "x";
-static char symbol_493[] = "chunks";
-static char symbol_494[] = "struct Chunks* ";
-static char symbol_495[] = "chunks";
-static char symbol_496[] = ";\n";
-static char symbol_497[] = "chunks = create_chunks();\n";
-static char symbol_498[] = "runtime->named_chunks_";
-static char symbol_499[] = "x";
-static char symbol_500[] = " = chunks;\n";
-static char symbol_501[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_502[] = "x";
-static char symbol_503[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_504[] = "x";
-static char symbol_505[] = "), 0, NULL);\n";
-static char symbol_506[] = "x";
-static char symbol_507[] = "run_action(lookup_action(variables, ";
-static char symbol_508[] = "x";
-static char symbol_509[] = "), runtime);\n";
-static char symbol_510[] = "x";
-static char symbol_511[] = "void placeholder_";
-static char symbol_512[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_513[] = "void placeholder_";
-static char symbol_514[] = "(struct Runtime* runtime, struct Variables* variables) {";
-static char symbol_515[] = "x";
-static char symbol_516[] = "}\n";
-static char symbol_517[] = "\n";
+static char symbol_493[] = ")) {\n";
+static char symbol_494[] = "ys";
+static char symbol_495[] = "}\n";
+static char symbol_496[] = ">";
+static char symbol_497[] = "x";
+static char symbol_498[] = "{";
+static char symbol_499[] = "ys";
+static char symbol_500[] = "}";
+static char symbol_501[] = "last_chunks";
+static char symbol_502[] = "struct Chunks* ";
+static char symbol_503[] = "last_chunks";
+static char symbol_504[] = ";\n";
+static char symbol_505[] = "chunks";
+static char symbol_506[] = "struct Chunks* ";
+static char symbol_507[] = "chunks";
+static char symbol_508[] = ";\n";
+static char symbol_509[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_510[] = "chunks = runtime->named_chunks_";
+static char symbol_511[] = "x";
+static char symbol_512[] = ";\n";
+static char symbol_513[] = "runtime->current_chunks = chunks;\n";
+static char symbol_514[] = "ys";
+static char symbol_515[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_516[] = "<";
+static char symbol_517[] = "x";
 static char symbol_518[] = "chunks";
 static char symbol_519[] = "struct Chunks* ";
 static char symbol_520[] = "chunks";
 static char symbol_521[] = ";\n";
 static char symbol_522[] = "chunks = create_chunks();\n";
-static char symbol_523[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_524[] = ", variables, NULL, 0, 0));\n";
-static char symbol_525[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_526[] = "x";
-static char symbol_527[] = "append_data(runtime->current_chunks, ";
-static char symbol_528[] = "x";
-static char symbol_529[] = ", 0, NULL);\n";
-static char symbol_530[] = "#";
+static char symbol_523[] = "runtime->named_chunks_";
+static char symbol_524[] = "x";
+static char symbol_525[] = " = chunks;\n";
+static char symbol_526[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_527[] = "x";
+static char symbol_528[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_529[] = "x";
+static char symbol_530[] = "), 0, NULL);\n";
 static char symbol_531[] = "x";
-static char symbol_532[] = "(";
-static char symbol_533[] = "y";
-static char symbol_534[] = " ";
-static char symbol_535[] = "z";
-static char symbol_536[] = ")";
-static char symbol_537[] = "runtime->W_";
-static char symbol_538[] = "y";
-static char symbol_539[] = " = ";
+static char symbol_532[] = "run_action(lookup_action(variables, ";
+static char symbol_533[] = "x";
+static char symbol_534[] = "), runtime);\n";
+static char symbol_535[] = "x";
+static char symbol_536[] = "void placeholder_";
+static char symbol_537[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_538[] = "void placeholder_";
+static char symbol_539[] = "(struct Runtime* runtime, struct Variables* variables) {";
 static char symbol_540[] = "x";
-static char symbol_541[] = "(runtime->W_";
-static char symbol_542[] = "y";
-static char symbol_543[] = " ? runtime->W_";
-static char symbol_544[] = "y";
-static char symbol_545[] = " : 0, ";
-static char symbol_546[] = "z";
-static char symbol_547[] = ");\n";
-static char symbol_548[] = ">";
-static char symbol_549[] = "xs";
-static char symbol_550[] = "<";
-static char symbol_551[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_552[] = "xs";
-static char symbol_553[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_554[] = "x";
-static char symbol_555[] = "x";
-static char symbol_556[] = "struct Chunks* named_chunks_";
-static char symbol_557[] = "x";
-static char symbol_558[] = ";\n";
-static char symbol_559[] = "x";
-static char symbol_560[] = "x";
-static char symbol_561[] = "x";
-static char symbol_562[] = "0";
-static char symbol_563[] = "1";
-static char symbol_564[] = "2";
-static char symbol_565[] = "3";
-static char symbol_566[] = "4";
-static char symbol_567[] = "5";
-static char symbol_568[] = "6";
-static char symbol_569[] = "7";
-static char symbol_570[] = "8";
-static char symbol_571[] = "9";
-static char symbol_572[] = "{";
-static char symbol_573[] = "x";
-static char symbol_574[] = "*";
-static char symbol_575[] = "y";
-static char symbol_576[] = "}";
-static char symbol_577[] = "for (int i=0; i < ";
-static char symbol_578[] = "y";
-static char symbol_579[] = "; i++) {\n";
-static char symbol_580[] = "append_data(runtime->current_chunks, ";
-static char symbol_581[] = "x";
-static char symbol_582[] = ", 0, NULL);\n";
-static char symbol_583[] = "}\n";
+static char symbol_541[] = "}\n";
+static char symbol_542[] = "\n";
+static char symbol_543[] = "chunks";
+static char symbol_544[] = "struct Chunks* ";
+static char symbol_545[] = "chunks";
+static char symbol_546[] = ";\n";
+static char symbol_547[] = "chunks = create_chunks();\n";
+static char symbol_548[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_549[] = ", variables, NULL, 0, 0));\n";
+static char symbol_550[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_551[] = "x";
+static char symbol_552[] = "append_data(runtime->current_chunks, ";
+static char symbol_553[] = "x";
+static char symbol_554[] = ", 0, NULL);\n";
+static char symbol_555[] = "#";
+static char symbol_556[] = "x";
+static char symbol_557[] = "(";
+static char symbol_558[] = "y";
+static char symbol_559[] = " ";
+static char symbol_560[] = "z";
+static char symbol_561[] = ")";
+static char symbol_562[] = "runtime->W_";
+static char symbol_563[] = "y";
+static char symbol_564[] = " = ";
+static char symbol_565[] = "x";
+static char symbol_566[] = "(runtime->W_";
+static char symbol_567[] = "y";
+static char symbol_568[] = " ? runtime->W_";
+static char symbol_569[] = "y";
+static char symbol_570[] = " : 0, ";
+static char symbol_571[] = "z";
+static char symbol_572[] = ");\n";
+static char symbol_573[] = ">";
+static char symbol_574[] = "xs";
+static char symbol_575[] = "<";
+static char symbol_576[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_577[] = "xs";
+static char symbol_578[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_579[] = "x";
+static char symbol_580[] = "x";
+static char symbol_581[] = "struct Chunks* named_chunks_";
+static char symbol_582[] = "x";
+static char symbol_583[] = ";\n";
 static char symbol_584[] = "x";
-static char symbol_585[] = "(runtime->W_";
+static char symbol_585[] = "x";
 static char symbol_586[] = "x";
-static char symbol_587[] = " ? runtime->W_";
-static char symbol_588[] = "x";
-static char symbol_589[] = " : 0)";
-static char symbol_590[] = "(";
-static char symbol_591[] = "x";
-static char symbol_592[] = "-";
-static char symbol_593[] = "y";
-static char symbol_594[] = ")";
-static char symbol_595[] = "((runtime->W_";
-static char symbol_596[] = "x";
-static char symbol_597[] = " ? runtime->W_";
+static char symbol_587[] = "0";
+static char symbol_588[] = "1";
+static char symbol_589[] = "2";
+static char symbol_590[] = "3";
+static char symbol_591[] = "4";
+static char symbol_592[] = "5";
+static char symbol_593[] = "6";
+static char symbol_594[] = "7";
+static char symbol_595[] = "8";
+static char symbol_596[] = "9";
+static char symbol_597[] = "{";
 static char symbol_598[] = "x";
-static char symbol_599[] = " : 0)-";
+static char symbol_599[] = "*";
 static char symbol_600[] = "y";
-static char symbol_601[] = ")";
-static char symbol_602[] = "\"";
-static char symbol_603[] = "xs";
-static char symbol_604[] = "\"";
-static char symbol_605[] = "static char symbol_";
-static char symbol_606[] = "[] = \"";
-static char symbol_607[] = "xs";
-static char symbol_608[] = "\";\n";
-static char symbol_609[] = "buffer_from_cstring(symbol_";
-static char symbol_610[] = ", sizeof(symbol_";
-static char symbol_611[] = ")-1)";
-static char symbol_612[] = "x";
-static char symbol_613[] = "xs";
-static char symbol_614[] = "lookup_action(variables, ";
-static char symbol_615[] = "x";
-static char symbol_616[] = ")";
-static char symbol_617[] = "xs";
-static char symbol_618[] = ".";
-static char symbol_619[] = "x";
-static char symbol_620[] = "->";
+static char symbol_601[] = "}";
+static char symbol_602[] = "for (int i=0; i < ";
+static char symbol_603[] = "y";
+static char symbol_604[] = "; i++) {\n";
+static char symbol_605[] = "append_data(runtime->current_chunks, ";
+static char symbol_606[] = "x";
+static char symbol_607[] = ", 0, NULL);\n";
+static char symbol_608[] = "}\n";
+static char symbol_609[] = "x";
+static char symbol_610[] = "(runtime->W_";
+static char symbol_611[] = "x";
+static char symbol_612[] = " ? runtime->W_";
+static char symbol_613[] = "x";
+static char symbol_614[] = " : 0)";
+static char symbol_615[] = "(";
+static char symbol_616[] = "x";
+static char symbol_617[] = "-";
+static char symbol_618[] = "y";
+static char symbol_619[] = ")";
+static char symbol_620[] = "((runtime->W_";
 static char symbol_621[] = "x";
-static char symbol_622[] = "W[";
+static char symbol_622[] = " ? runtime->W_";
 static char symbol_623[] = "x";
-static char symbol_624[] = "]";
-static char symbol_625[] = "x";
-static char symbol_626[] = "unsigned int W_";
-static char symbol_627[] = "x";
-static char symbol_628[] = ";\n";
-static char symbol_629[] = "x";
-static char symbol_630[] = "\\\"";
-static char symbol_631[] = "\"";
+static char symbol_624[] = " : 0)-";
+static char symbol_625[] = "y";
+static char symbol_626[] = ")";
+static char symbol_627[] = "\"";
+static char symbol_628[] = "xs";
+static char symbol_629[] = "\"";
+static char symbol_630[] = "static char symbol_";
+static char symbol_631[] = "[] = \"";
 static char symbol_632[] = "xs";
-static char symbol_633[] = "static char symbol_";
-static char symbol_634[] = "[] = \"";
-static char symbol_635[] = "xs";
-static char symbol_636[] = "\";\n";
-static char symbol_637[] = "buffer_from_cstring(symbol_";
-static char symbol_638[] = ", sizeof(symbol_";
-static char symbol_639[] = ")-1)";
-static char symbol_640[] = "\'";
-static char symbol_641[] = "\\\'";
-static char symbol_642[] = "\"";
-static char symbol_643[] = "\\\"";
+static char symbol_633[] = "\";\n";
+static char symbol_634[] = "buffer_from_cstring(symbol_";
+static char symbol_635[] = ", sizeof(symbol_";
+static char symbol_636[] = ")-1)";
+static char symbol_637[] = "x";
+static char symbol_638[] = "xs";
+static char symbol_639[] = "lookup_action(variables, ";
+static char symbol_640[] = "x";
+static char symbol_641[] = ")";
+static char symbol_642[] = "xs";
+static char symbol_643[] = ".";
 static char symbol_644[] = "x";
-static char symbol_645[] = "static char symbol_";
-static char symbol_646[] = "[] = \"";
-static char symbol_647[] = "x";
-static char symbol_648[] = "\";\n";
-static char symbol_649[] = "buffer_from_cstring(symbol_";
-static char symbol_650[] = ", sizeof(symbol_";
-static char symbol_651[] = ")-1)";
-static char symbol_652[] = "a";
-static char symbol_653[] = "b";
-static char symbol_654[] = "c";
-static char symbol_655[] = "d";
-static char symbol_656[] = "e";
-static char symbol_657[] = "f";
-static char symbol_658[] = "g";
-static char symbol_659[] = "h";
-static char symbol_660[] = "i";
-static char symbol_661[] = "j";
-static char symbol_662[] = "k";
-static char symbol_663[] = "l";
-static char symbol_664[] = "m";
-static char symbol_665[] = "n";
-static char symbol_666[] = "o";
-static char symbol_667[] = "p";
-static char symbol_668[] = "q";
-static char symbol_669[] = "r";
-static char symbol_670[] = "s";
-static char symbol_671[] = "t";
-static char symbol_672[] = "u";
-static char symbol_673[] = "v";
-static char symbol_674[] = "w";
-static char symbol_675[] = "x";
-static char symbol_676[] = "y";
-static char symbol_677[] = "z";
-static char symbol_678[] = "A";
-static char symbol_679[] = "B";
-static char symbol_680[] = "C";
-static char symbol_681[] = "D";
-static char symbol_682[] = "E";
-static char symbol_683[] = "F";
-static char symbol_684[] = "G";
-static char symbol_685[] = "H";
-static char symbol_686[] = "I";
-static char symbol_687[] = "J";
-static char symbol_688[] = "K";
-static char symbol_689[] = "L";
-static char symbol_690[] = "M";
-static char symbol_691[] = "N";
-static char symbol_692[] = "O";
-static char symbol_693[] = "P";
-static char symbol_694[] = "Q";
-static char symbol_695[] = "R";
-static char symbol_696[] = "S";
-static char symbol_697[] = "T";
-static char symbol_698[] = "U";
-static char symbol_699[] = "V";
-static char symbol_700[] = "W";
-static char symbol_701[] = "X";
-static char symbol_702[] = "Y";
-static char symbol_703[] = "Z";
-static char symbol_704[] = " ";
-static char symbol_705[] = "\n";
+static char symbol_645[] = "->";
+static char symbol_646[] = "x";
+static char symbol_647[] = "W[";
+static char symbol_648[] = "x";
+static char symbol_649[] = "]";
+static char symbol_650[] = "x";
+static char symbol_651[] = "unsigned int W_";
+static char symbol_652[] = "x";
+static char symbol_653[] = ";\n";
+static char symbol_654[] = "x";
+static char symbol_655[] = "\\\"";
+static char symbol_656[] = "\"";
+static char symbol_657[] = "xs";
+static char symbol_658[] = "static char symbol_";
+static char symbol_659[] = "[] = \"";
+static char symbol_660[] = "xs";
+static char symbol_661[] = "\";\n";
+static char symbol_662[] = "buffer_from_cstring(symbol_";
+static char symbol_663[] = ", sizeof(symbol_";
+static char symbol_664[] = ")-1)";
+static char symbol_665[] = "\'";
+static char symbol_666[] = "\\\'";
+static char symbol_667[] = "\"";
+static char symbol_668[] = "\\\"";
+static char symbol_669[] = "x";
+static char symbol_670[] = "static char symbol_";
+static char symbol_671[] = "[] = \"";
+static char symbol_672[] = "x";
+static char symbol_673[] = "\";\n";
+static char symbol_674[] = "buffer_from_cstring(symbol_";
+static char symbol_675[] = ", sizeof(symbol_";
+static char symbol_676[] = ")-1)";
+static char symbol_677[] = "a";
+static char symbol_678[] = "b";
+static char symbol_679[] = "c";
+static char symbol_680[] = "d";
+static char symbol_681[] = "e";
+static char symbol_682[] = "f";
+static char symbol_683[] = "g";
+static char symbol_684[] = "h";
+static char symbol_685[] = "i";
+static char symbol_686[] = "j";
+static char symbol_687[] = "k";
+static char symbol_688[] = "l";
+static char symbol_689[] = "m";
+static char symbol_690[] = "n";
+static char symbol_691[] = "o";
+static char symbol_692[] = "p";
+static char symbol_693[] = "q";
+static char symbol_694[] = "r";
+static char symbol_695[] = "s";
+static char symbol_696[] = "t";
+static char symbol_697[] = "u";
+static char symbol_698[] = "v";
+static char symbol_699[] = "w";
+static char symbol_700[] = "x";
+static char symbol_701[] = "y";
+static char symbol_702[] = "z";
+static char symbol_703[] = "A";
+static char symbol_704[] = "B";
+static char symbol_705[] = "C";
+static char symbol_706[] = "D";
+static char symbol_707[] = "E";
+static char symbol_708[] = "F";
+static char symbol_709[] = "G";
+static char symbol_710[] = "H";
+static char symbol_711[] = "I";
+static char symbol_712[] = "J";
+static char symbol_713[] = "K";
+static char symbol_714[] = "L";
+static char symbol_715[] = "M";
+static char symbol_716[] = "N";
+static char symbol_717[] = "O";
+static char symbol_718[] = "P";
+static char symbol_719[] = "Q";
+static char symbol_720[] = "R";
+static char symbol_721[] = "S";
+static char symbol_722[] = "T";
+static char symbol_723[] = "U";
+static char symbol_724[] = "V";
+static char symbol_725[] = "W";
+static char symbol_726[] = "X";
+static char symbol_727[] = "Y";
+static char symbol_728[] = "Z";
+static char symbol_729[] = " ";
+static char symbol_730[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1470,129 +1496,176 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_311, sizeof(symbol_311)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_312, sizeof(symbol_312)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_313, sizeof(symbol_313)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1), 0, NULL);
+    chunks = create_chunks();
+    runtime->named_chunks_ruleVars = chunks;
+    append_data(runtime->current_chunks, NULL, 0, chunks);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_314, sizeof(symbol_314)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_315, sizeof(symbol_315)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_316, sizeof(symbol_316)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_317, sizeof(symbol_317)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1), 0, NULL);
 }
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1)), runtime);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_320, sizeof(symbol_320)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_321, sizeof(symbol_321)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_322, sizeof(symbol_322)-1)), runtime);
 }
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_324, sizeof(symbol_324)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1)), runtime);
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
+    struct Chunks* last_chunks;
+    struct Chunks* chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_ruleVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_342, sizeof(symbol_342)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_343, sizeof(symbol_343)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_346, sizeof(symbol_346)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_353, sizeof(symbol_353)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_351, sizeof(symbol_351)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_352, sizeof(symbol_352)-1), 0, NULL);
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
+    struct Chunks* last_chunks;
+    struct Chunks* chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_ruleVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_355, sizeof(symbol_355)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_356, sizeof(symbol_356)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_361, sizeof(symbol_361)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_362, sizeof(symbol_362)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_363, sizeof(symbol_363)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_364, sizeof(symbol_364)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_365, sizeof(symbol_365)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), 0, NULL);
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_370, sizeof(symbol_370)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_15(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
+    struct Chunks* last_chunks;
+    struct Chunks* chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_ruleVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_ruleVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_ruleVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_391, sizeof(symbol_391)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_380, sizeof(symbol_380)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_381, sizeof(symbol_381)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_382, sizeof(symbol_382)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_383, sizeof(symbol_383)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_384, sizeof(symbol_384)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_385, sizeof(symbol_385)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_386, sizeof(symbol_386)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_399, sizeof(symbol_399)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_387, sizeof(symbol_387)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_388, sizeof(symbol_388)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_400, sizeof(symbol_400)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_406, sizeof(symbol_406)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
@@ -1602,58 +1675,89 @@ void action_20(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_417, sizeof(symbol_417)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_411, sizeof(symbol_411)-1), 0, NULL);
+    struct Chunks* last_chunks;
+    struct Chunks* chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_ruleVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_ruleVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_412, sizeof(symbol_412)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_413, sizeof(symbol_413)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_434, sizeof(symbol_434)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_414, sizeof(symbol_414)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_435, sizeof(symbol_435)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_416, sizeof(symbol_416)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_437, sizeof(symbol_437)-1), 0, NULL);
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_421, sizeof(symbol_421)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_422, sizeof(symbol_422)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_423, sizeof(symbol_423)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_428, sizeof(symbol_428)-1), 0, NULL);
+    struct Chunks* last_chunks;
+    struct Chunks* chunks;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_ruleVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_429, sizeof(symbol_429)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_430, sizeof(symbol_430)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_431, sizeof(symbol_431)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_432, sizeof(symbol_432)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_433, sizeof(symbol_433)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
@@ -1663,25 +1767,25 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_438, sizeof(symbol_438)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1690,30 +1794,30 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
@@ -1722,24 +1826,24 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
@@ -1748,29 +1852,29 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
@@ -1780,62 +1884,62 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1845,48 +1949,48 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -1896,29 +2000,29 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -1928,14 +2032,14 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_654, sizeof(symbol_654)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
@@ -1945,21 +2049,21 @@ void action_47(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_658, sizeof(symbol_658)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_659, sizeof(symbol_659)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_660, sizeof(symbol_660)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_661, sizeof(symbol_661)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_662, sizeof(symbol_662)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_663, sizeof(symbol_663)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_664, sizeof(symbol_664)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_668, sizeof(symbol_668)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
@@ -1969,31 +2073,24 @@ void action_49(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_670, sizeof(symbol_670)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_671, sizeof(symbol_671)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_672, sizeof(symbol_672)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_673, sizeof(symbol_673)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_674, sizeof(symbol_674)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_675, sizeof(symbol_675)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_676, sizeof(symbol_676)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2009,15 +2106,12 @@ struct Action* rule_main(struct ParseState* parse_state) {
 struct Action* rule_file(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
+    unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2062,15 +2156,9 @@ struct Action* rule_file(struct ParseState* parse_state) {
 struct Action* rule_rule(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2120,15 +2208,11 @@ struct Action* rule_rule(struct ParseState* parse_state) {
 struct Action* rule_ors(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2136,7 +2220,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
     _ = rule_maybeorbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_325, sizeof(symbol_325)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_318, sizeof(symbol_318)-1), _);
         if (_) {
             star_variables = create_variables();
             star_start_pos = parse_state->pos;
@@ -2150,7 +2234,7 @@ struct Action* rule_ors(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_319, sizeof(symbol_319)-1), _);
             if (_) {
                 return create_action(action_4, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2162,15 +2246,8 @@ struct Action* rule_ors(struct ParseState* parse_state) {
 struct Action* rule_restorcase(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2178,7 +2255,7 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
     _ = rule_orbar(parse_state);
     if (_) {
         _ = rule_orcase(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_330, sizeof(symbol_330)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_323, sizeof(symbol_323)-1), _);
         if (_) {
             return create_action(action_5, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2189,15 +2266,8 @@ struct Action* rule_restorcase(struct ParseState* parse_state) {
 struct Action* rule_maybeorbar(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2216,22 +2286,16 @@ struct Action* rule_maybeorbar(struct ParseState* parse_state) {
 struct Action* rule_orbar(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_332, sizeof(symbol_332)-1);
+        data = buffer_from_cstring(symbol_325, sizeof(symbol_325)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2248,21 +2312,14 @@ struct Action* rule_orbar(struct ParseState* parse_state) {
 struct Action* rule_orcase(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchAnd(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_333, sizeof(symbol_333)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_326, sizeof(symbol_326)-1), _);
     if (_) {
         return create_action(action_7, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2272,15 +2329,8 @@ struct Action* rule_orcase(struct ParseState* parse_state) {
 struct Action* rule_matchAnd(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2288,10 +2338,10 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_matchExpr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_338, sizeof(symbol_338)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1), _);
         if (_) {
             _ = rule_matchAnd(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_339, sizeof(symbol_339)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_332, sizeof(symbol_332)-1), _);
             if (_) {
                 return create_action(action_8, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2301,7 +2351,7 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_action(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_344, sizeof(symbol_344)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_337, sizeof(symbol_337)-1), _);
     if (_) {
         return create_action(action_9, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2311,20 +2361,14 @@ struct Action* rule_matchAnd(struct ParseState* parse_state) {
 struct Action* rule_matchExpr(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_346, sizeof(symbol_346)-1);
+    data = buffer_from_cstring(symbol_339, sizeof(symbol_339)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2333,7 +2377,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_347, sizeof(symbol_347)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1), _);
         if (_) {
             return create_action(action_10, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2341,7 +2385,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_356, sizeof(symbol_356)-1);
+    data = buffer_from_cstring(symbol_353, sizeof(symbol_353)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2350,7 +2394,7 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_matchExprPrimitive(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_357, sizeof(symbol_357)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_354, sizeof(symbol_354)-1), _);
         if (_) {
             return create_action(action_11, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2359,10 +2403,10 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprRepeat(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_366, sizeof(symbol_366)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), _);
     if (_) {
         _ = rule_matchAssign(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_367, sizeof(symbol_367)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1), _);
         if (_) {
             return create_action(action_12, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2373,20 +2417,14 @@ struct Action* rule_matchExpr(struct ParseState* parse_state) {
 struct Action* rule_matchAssign(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_370, sizeof(symbol_370)-1);
+    data = buffer_from_cstring(symbol_371, sizeof(symbol_371)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2395,7 +2433,7 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_371, sizeof(symbol_371)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), _);
         if (_) {
             return create_action(action_13, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2410,23 +2448,17 @@ struct Action* rule_matchAssign(struct ParseState* parse_state) {
 struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_375, sizeof(symbol_375)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_376, sizeof(symbol_376)-1), _);
     if (_) {
-        data = buffer_from_cstring(symbol_376, sizeof(symbol_376)-1);
+        data = buffer_from_cstring(symbol_377, sizeof(symbol_377)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2441,7 +2473,7 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_matchExprPrimitive(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_389, sizeof(symbol_389)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), _);
     if (_) {
         return create_action(action_16, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2451,15 +2483,12 @@ struct Action* rule_matchExprRepeat(struct ParseState* parse_state) {
 struct Action* rule_sepBit(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -2468,7 +2497,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     star_start_pos = parse_state->pos;
     while (1) {
         star_pos = parse_state->pos;
-        data = buffer_from_cstring(symbol_391, sizeof(symbol_391)-1);
+        data = buffer_from_cstring(symbol_404, sizeof(symbol_404)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2484,7 +2513,7 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
     if (_) {
         _ = rule_maybeBit(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_392, sizeof(symbol_392)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), _);
         if (_) {
             return create_action(action_17, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2495,21 +2524,14 @@ struct Action* rule_sepBit(struct ParseState* parse_state) {
 struct Action* rule_maybeBit(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_bit(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_396, sizeof(symbol_396)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), _);
     if (_) {
         return create_action(action_18, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2526,20 +2548,14 @@ struct Action* rule_maybeBit(struct ParseState* parse_state) {
 struct Action* rule_bit(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_399, sizeof(symbol_399)-1);
+    data = buffer_from_cstring(symbol_412, sizeof(symbol_412)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2552,7 +2568,7 @@ struct Action* rule_bit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_400, sizeof(symbol_400)-1);
+    data = buffer_from_cstring(symbol_413, sizeof(symbol_413)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2568,28 +2584,25 @@ struct Action* rule_bit(struct ParseState* parse_state) {
 struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_402, sizeof(symbol_402)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_415, sizeof(symbol_415)-1), _);
     if (_) {
         return create_action(action_22, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_406, sizeof(symbol_406)-1);
+    data = buffer_from_cstring(symbol_419, sizeof(symbol_419)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2609,7 +2622,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_407, sizeof(symbol_407)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_420, sizeof(symbol_420)-1), _);
         if (_) {
             return create_action(action_23, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2617,7 +2630,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_417, sizeof(symbol_417)-1);
+    data = buffer_from_cstring(symbol_438, sizeof(symbol_438)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2631,7 +2644,7 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_charstring(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_424, sizeof(symbol_424)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), _);
     if (_) {
         return create_action(action_25, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -2641,22 +2654,19 @@ struct Action* rule_matchExprPrimitive(struct ParseState* parse_state) {
 struct Action* rule_action(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_434, sizeof(symbol_434)-1);
+        data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2666,7 +2676,7 @@ struct Action* rule_action(struct ParseState* parse_state) {
         if (_) {
             _ = rule_space(parse_state);
             if (_) {
-                data = buffer_from_cstring(symbol_435, sizeof(symbol_435)-1);
+                data = buffer_from_cstring(symbol_460, sizeof(symbol_460)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2686,11 +2696,11 @@ struct Action* rule_action(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_436, sizeof(symbol_436)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_437, sizeof(symbol_437)-1);
+                            data = buffer_from_cstring(symbol_462, sizeof(symbol_462)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2716,22 +2726,19 @@ struct Action* rule_action(struct ParseState* parse_state) {
 struct Action* rule_actionexpr(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_446, sizeof(symbol_446)-1);
+        data = buffer_from_cstring(symbol_471, sizeof(symbol_471)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2740,9 +2747,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_448, sizeof(symbol_448)-1);
+                data = buffer_from_cstring(symbol_473, sizeof(symbol_473)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2762,11 +2769,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_450, sizeof(symbol_450)-1);
+                            data = buffer_from_cstring(symbol_475, sizeof(symbol_475)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2787,7 +2794,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
+        data = buffer_from_cstring(symbol_486, sizeof(symbol_486)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2796,9 +2803,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
+                data = buffer_from_cstring(symbol_488, sizeof(symbol_488)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2818,11 +2825,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_465, sizeof(symbol_465)-1);
+                            data = buffer_from_cstring(symbol_490, sizeof(symbol_490)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2843,7 +2850,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_471, sizeof(symbol_471)-1);
+        data = buffer_from_cstring(symbol_496, sizeof(symbol_496)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2852,11 +2859,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_473, sizeof(symbol_473)-1);
+                    data = buffer_from_cstring(symbol_498, sizeof(symbol_498)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2876,11 +2883,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_475, sizeof(symbol_475)-1);
+                                data = buffer_from_cstring(symbol_500, sizeof(symbol_500)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2902,7 +2909,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_491, sizeof(symbol_491)-1);
+        data = buffer_from_cstring(symbol_516, sizeof(symbol_516)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2911,7 +2918,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2923,7 +2930,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2934,7 +2941,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2945,7 +2952,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2956,7 +2963,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2966,7 +2973,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_530, sizeof(symbol_530)-1);
+        data = buffer_from_cstring(symbol_555, sizeof(symbol_555)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2975,9 +2982,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_532, sizeof(symbol_532)-1);
+                data = buffer_from_cstring(symbol_557, sizeof(symbol_557)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2986,9 +2993,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_534, sizeof(symbol_534)-1);
+                        data = buffer_from_cstring(symbol_559, sizeof(symbol_559)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2997,9 +3004,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
+                                data = buffer_from_cstring(symbol_561, sizeof(symbol_561)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3021,7 +3028,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_548, sizeof(symbol_548)-1);
+        data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3041,11 +3048,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
+                    data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3065,21 +3072,14 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
 struct Action* rule_chunkName(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3089,21 +3089,14 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
 struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3120,20 +3113,14 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
 struct Action* rule_digit(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
+    data = buffer_from_cstring(symbol_587, sizeof(symbol_587)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3146,7 +3133,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
+    data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3159,7 +3146,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
+    data = buffer_from_cstring(symbol_589, sizeof(symbol_589)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3172,7 +3159,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
+    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3185,7 +3172,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
+    data = buffer_from_cstring(symbol_591, sizeof(symbol_591)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3198,7 +3185,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
+    data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3211,7 +3198,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
+    data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3224,7 +3211,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
+    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3237,7 +3224,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
+    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3250,7 +3237,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
+    data = buffer_from_cstring(symbol_596, sizeof(symbol_596)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3266,20 +3253,14 @@ struct Action* rule_digit(struct ParseState* parse_state) {
 struct Action* rule_placeholder(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
+    data = buffer_from_cstring(symbol_597, sizeof(symbol_597)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3290,9 +3271,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
+                data = buffer_from_cstring(symbol_599, sizeof(symbol_599)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3301,11 +3282,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
+                            data = buffer_from_cstring(symbol_601, sizeof(symbol_601)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3327,28 +3308,22 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
 struct Action* rule_expr(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
+    data = buffer_from_cstring(symbol_615, sizeof(symbol_615)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3357,9 +3332,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
+            data = buffer_from_cstring(symbol_617, sizeof(symbol_617)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3368,9 +3343,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
+                    data = buffer_from_cstring(symbol_619, sizeof(symbol_619)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3390,20 +3365,17 @@ struct Action* rule_expr(struct ParseState* parse_state) {
 struct Action* rule_string(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
+    data = buffer_from_cstring(symbol_627, sizeof(symbol_627)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3423,9 +3395,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
+            data = buffer_from_cstring(symbol_629, sizeof(symbol_629)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3443,21 +3415,17 @@ struct Action* rule_string(struct ParseState* parse_state) {
 struct Action* rule_dotname(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3471,7 +3439,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3482,20 +3450,14 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
 struct Action* rule_nextname(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_618, sizeof(symbol_618)-1);
+    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3504,7 +3466,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3515,20 +3477,14 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
 struct Action* rule_wvar(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
+    data = buffer_from_cstring(symbol_647, sizeof(symbol_647)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3542,9 +3498,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
+            data = buffer_from_cstring(symbol_649, sizeof(symbol_649)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3562,20 +3518,15 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
 struct Action* rule_stringinner(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
+    unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
+    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3589,7 +3540,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
+    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3619,15 +3570,11 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
 struct Action* rule_charstring(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3646,7 +3593,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_657, sizeof(symbol_657)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3660,20 +3607,14 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
 struct Action* rule_quote(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_640, sizeof(symbol_640)-1);
+    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3689,20 +3630,15 @@ struct Action* rule_quote(struct ParseState* parse_state) {
 struct Action* rule_innercharstring(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
+    unsigned int nlookahead_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
+    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3715,7 +3651,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
+    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3753,21 +3689,14 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
 struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_669, sizeof(symbol_669)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3777,15 +3706,11 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
 struct Action* rule_name(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3814,15 +3739,8 @@ struct Action* rule_name(struct ParseState* parse_state) {
 struct Action* rule_char(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3844,20 +3762,14 @@ struct Action* rule_char(struct ParseState* parse_state) {
 struct Action* rule_lower(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
+    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3870,7 +3782,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
+    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3883,7 +3795,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
+    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3896,7 +3808,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
+    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3909,7 +3821,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
+    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3922,7 +3834,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
+    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3935,7 +3847,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
+    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3948,7 +3860,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
+    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3961,7 +3873,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
+    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3974,7 +3886,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
+    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3987,7 +3899,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
+    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4000,7 +3912,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
+    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4013,7 +3925,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
+    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4026,7 +3938,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
+    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4039,7 +3951,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
+    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4052,7 +3964,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
+    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4065,7 +3977,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
+    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4078,7 +3990,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
+    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4091,7 +4003,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4104,7 +4016,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
+    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4117,7 +4029,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
+    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4130,7 +4042,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
+    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4143,7 +4055,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
+    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4156,7 +4068,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
+    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4169,7 +4081,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
+    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4182,7 +4094,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
+    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4198,20 +4110,14 @@ struct Action* rule_lower(struct ParseState* parse_state) {
 struct Action* rule_upper(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
+    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4224,7 +4130,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4237,7 +4143,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4250,7 +4156,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
+    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4263,7 +4169,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
+    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4276,7 +4182,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
+    data = buffer_from_cstring(symbol_708, sizeof(symbol_708)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4289,7 +4195,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
+    data = buffer_from_cstring(symbol_709, sizeof(symbol_709)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4302,7 +4208,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
+    data = buffer_from_cstring(symbol_710, sizeof(symbol_710)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4315,7 +4221,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
+    data = buffer_from_cstring(symbol_711, sizeof(symbol_711)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4328,7 +4234,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
+    data = buffer_from_cstring(symbol_712, sizeof(symbol_712)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4341,7 +4247,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
+    data = buffer_from_cstring(symbol_713, sizeof(symbol_713)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4354,7 +4260,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
+    data = buffer_from_cstring(symbol_714, sizeof(symbol_714)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4367,7 +4273,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
+    data = buffer_from_cstring(symbol_715, sizeof(symbol_715)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4380,7 +4286,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
+    data = buffer_from_cstring(symbol_716, sizeof(symbol_716)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4393,7 +4299,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
+    data = buffer_from_cstring(symbol_717, sizeof(symbol_717)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4406,7 +4312,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
+    data = buffer_from_cstring(symbol_718, sizeof(symbol_718)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4419,7 +4325,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
+    data = buffer_from_cstring(symbol_719, sizeof(symbol_719)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4432,7 +4338,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
+    data = buffer_from_cstring(symbol_720, sizeof(symbol_720)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4445,7 +4351,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
+    data = buffer_from_cstring(symbol_721, sizeof(symbol_721)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4458,7 +4364,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
+    data = buffer_from_cstring(symbol_722, sizeof(symbol_722)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4471,7 +4377,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
+    data = buffer_from_cstring(symbol_723, sizeof(symbol_723)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4484,7 +4390,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
+    data = buffer_from_cstring(symbol_724, sizeof(symbol_724)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4497,7 +4403,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
+    data = buffer_from_cstring(symbol_725, sizeof(symbol_725)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4510,7 +4416,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
+    data = buffer_from_cstring(symbol_726, sizeof(symbol_726)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4523,7 +4429,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
+    data = buffer_from_cstring(symbol_727, sizeof(symbol_727)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4536,7 +4442,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
+    data = buffer_from_cstring(symbol_728, sizeof(symbol_728)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4552,15 +4458,11 @@ struct Action* rule_upper(struct ParseState* parse_state) {
 struct Action* rule_space(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
+    struct Variables* star_variables;
+    unsigned int star_pos;
+    unsigned int star_start_pos;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -4586,20 +4488,14 @@ struct Action* rule_space(struct ParseState* parse_state) {
 struct Action* rule_spacechar(struct ParseState* parse_state) {
     unsigned int or_backtrack_pos;
     unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
     struct Variables* variables;
-    struct Variables* star_variables;
     struct Action* _;
     struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
     or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
+    data = buffer_from_cstring(symbol_729, sizeof(symbol_729)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4612,7 +4508,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
+    data = buffer_from_cstring(symbol_730, sizeof(symbol_730)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(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 c0f7369..a476ff3 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -312,15 +312,9 @@ rule = space name:x space '=' space ors:y space ';' -> {
     "struct Action* rule_" x "(struct ParseState* parse_state) {\n" >
         "unsigned int or_backtrack_pos;\n"
         "unsigned int action_start_pos;\n"
-        "unsigned int star_start_pos;\n"
-        "unsigned int star_pos;\n"
-        "unsigned int nlookahead_pos;\n"
         "struct Variables* variables;\n"
-        "struct Variables* star_variables;\n"
         "struct Action* _;\n"
-        "struct Buffer* data;\n"
-        "unsigned char bitpattern;\n"
-        "unsigned char bitmask;\n"
+        <ruleVars
         y
         "return NULL;\n"
     < "}\n"
@@ -358,6 +352,11 @@ matchAnd =
 
 matchExpr =
     | '!' matchExprPrimitive:x -> {
+        >ruleVars {
+            unseen("nlookahead_pos") -> {
+                "unsigned int " "nlookahead_pos" ";\n"
+            }
+        }
         "nlookahead_pos = parse_state->pos;\n"
         x
         "if (_ == NULL) {\n" >
@@ -368,14 +367,19 @@ matchExpr =
         "parse_state->pos = nlookahead_pos;\n"
     }
     | '&' matchExprPrimitive:x -> {
-        "nlookahead_pos = parse_state->pos;\n"
+        >ruleVars {
+            unseen("lookahead_pos") -> {
+                "unsigned int " "lookahead_pos" ";\n"
+            }
+        }
+        "lookahead_pos = parse_state->pos;\n"
         x
         "if (_ == NULL) {\n" >
             "_ = NULL;\n"
         < "} else {\n" >
             "_ = create_action(NULL, NULL, parse_state->input_buffer, 0, 0);\n"
         < "}\n"
-        "parse_state->pos = nlookahead_pos;\n"
+        "parse_state->pos = lookahead_pos;\n"
     }
     | matchExprRepeat:x matchAssign:y -> { x y }
     ;
@@ -387,6 +391,21 @@ matchAssign =
 
 matchExprRepeat =
     | matchExprPrimitive:x '*' -> {
+        >ruleVars {
+            unseen("star_variables") -> {
+                "struct Variables* " "star_variables" ";\n"
+            }
+        }
+        >ruleVars {
+            unseen("star_pos") -> {
+                "unsigned int " "star_pos" ";\n"
+            }
+        }
+        >ruleVars {
+            unseen("star_start_pos") -> {
+                "unsigned int " "star_start_pos" ";\n"
+            }
+        }
         "star_variables = create_variables();\n"
         "star_start_pos = parse_state->pos;\n"
         "while (1) {\n" >
@@ -426,6 +445,16 @@ matchExprPrimitive =
         "_ = rule_" x "(parse_state);\n"
     }
     | '0b' sepBit*:xs -> {
+        >ruleVars {
+            unseen("bitpattern") -> {
+                "unsigned char " "bitpattern" ";\n"
+            }
+        }
+        >ruleVars {
+            unseen("bitmask") -> {
+                "unsigned char " "bitmask" ";\n"
+            }
+        }
         "bitpattern = 0;\n"
         "bitmask = 0;\n"
         xs
@@ -445,6 +474,11 @@ matchExprPrimitive =
         < "}\n"
     }
     | charstring:x -> {
+        >ruleVars {
+            unseen("data") -> {
+                "struct Buffer* " "data" ";\n"
+            }
+        }
         "data = " x ";\n"
         "if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {\n" >
             "parse_state->pos += data->size;\n"

commit b6a3434576f438339a0f19a313820cd7d12c9e96
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 22:06:52 2025 +0100

    Only generate action if used

diff --git a/src/meta/meta.c b/src/meta/meta.c
index 4ad3dfd..8f10e44 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -729,262 +729,260 @@ static char symbol_448[] = ") -> {";
 static char symbol_449[] = "ys";
 static char symbol_450[] = "}";
 static char symbol_451[] = "action";
-static char symbol_452[] = "struct Action* action;\n";
-static char symbol_453[] = "action = lookup_action(variables, ";
-static char symbol_454[] = "x";
-static char symbol_455[] = ");\n";
-static char symbol_456[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_457[] = "ys";
-static char symbol_458[] = "}\n";
-static char symbol_459[] = "unseen(";
-static char symbol_460[] = "x";
-static char symbol_461[] = ") -> {";
-static char symbol_462[] = "ys";
-static char symbol_463[] = "}";
-static char symbol_464[] = "action";
-static char symbol_465[] = "struct Action* ";
-static char symbol_466[] = "action";
-static char symbol_467[] = ";\n";
-static char symbol_468[] = "if (!seen(runtime->current_chunks, ";
-static char symbol_469[] = "x";
-static char symbol_470[] = ")) {\n";
-static char symbol_471[] = "ys";
-static char symbol_472[] = "}\n";
-static char symbol_473[] = ">";
-static char symbol_474[] = "x";
-static char symbol_475[] = "{";
-static char symbol_476[] = "ys";
-static char symbol_477[] = "}";
+static char symbol_452[] = "struct Action* ";
+static char symbol_453[] = "action";
+static char symbol_454[] = ";\n";
+static char symbol_455[] = "action = lookup_action(variables, ";
+static char symbol_456[] = "x";
+static char symbol_457[] = ");\n";
+static char symbol_458[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_459[] = "ys";
+static char symbol_460[] = "}\n";
+static char symbol_461[] = "unseen(";
+static char symbol_462[] = "x";
+static char symbol_463[] = ") -> {";
+static char symbol_464[] = "ys";
+static char symbol_465[] = "}";
+static char symbol_466[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_467[] = "x";
+static char symbol_468[] = ")) {\n";
+static char symbol_469[] = "ys";
+static char symbol_470[] = "}\n";
+static char symbol_471[] = ">";
+static char symbol_472[] = "x";
+static char symbol_473[] = "{";
+static char symbol_474[] = "ys";
+static char symbol_475[] = "}";
+static char symbol_476[] = "last_chunks";
+static char symbol_477[] = "struct Chunks* ";
 static char symbol_478[] = "last_chunks";
-static char symbol_479[] = "struct Chunks* ";
-static char symbol_480[] = "last_chunks";
-static char symbol_481[] = ";\n";
+static char symbol_479[] = ";\n";
+static char symbol_480[] = "chunks";
+static char symbol_481[] = "struct Chunks* ";
 static char symbol_482[] = "chunks";
-static char symbol_483[] = "struct Chunks* ";
-static char symbol_484[] = "chunks";
-static char symbol_485[] = ";\n";
-static char symbol_486[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_487[] = "chunks = runtime->named_chunks_";
-static char symbol_488[] = "x";
-static char symbol_489[] = ";\n";
-static char symbol_490[] = "runtime->current_chunks = chunks;\n";
-static char symbol_491[] = "ys";
-static char symbol_492[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_493[] = "<";
-static char symbol_494[] = "x";
+static char symbol_483[] = ";\n";
+static char symbol_484[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_485[] = "chunks = runtime->named_chunks_";
+static char symbol_486[] = "x";
+static char symbol_487[] = ";\n";
+static char symbol_488[] = "runtime->current_chunks = chunks;\n";
+static char symbol_489[] = "ys";
+static char symbol_490[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_491[] = "<";
+static char symbol_492[] = "x";
+static char symbol_493[] = "chunks";
+static char symbol_494[] = "struct Chunks* ";
 static char symbol_495[] = "chunks";
-static char symbol_496[] = "struct Chunks* ";
-static char symbol_497[] = "chunks";
-static char symbol_498[] = ";\n";
-static char symbol_499[] = "chunks = create_chunks();\n";
-static char symbol_500[] = "runtime->named_chunks_";
-static char symbol_501[] = "x";
-static char symbol_502[] = " = chunks;\n";
-static char symbol_503[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_496[] = ";\n";
+static char symbol_497[] = "chunks = create_chunks();\n";
+static char symbol_498[] = "runtime->named_chunks_";
+static char symbol_499[] = "x";
+static char symbol_500[] = " = chunks;\n";
+static char symbol_501[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_502[] = "x";
+static char symbol_503[] = "append_data(runtime->current_chunks, buffer_from_integer(";
 static char symbol_504[] = "x";
-static char symbol_505[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_505[] = "), 0, NULL);\n";
 static char symbol_506[] = "x";
-static char symbol_507[] = "), 0, NULL);\n";
+static char symbol_507[] = "run_action(lookup_action(variables, ";
 static char symbol_508[] = "x";
-static char symbol_509[] = "run_action(lookup_action(variables, ";
+static char symbol_509[] = "), runtime);\n";
 static char symbol_510[] = "x";
-static char symbol_511[] = "), runtime);\n";
-static char symbol_512[] = "x";
+static char symbol_511[] = "void placeholder_";
+static char symbol_512[] = "(struct Runtime* runtime, struct Variables* variables);";
 static char symbol_513[] = "void placeholder_";
-static char symbol_514[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_515[] = "void placeholder_";
-static char symbol_516[] = "(struct Runtime* runtime, struct Variables* variables) {";
-static char symbol_517[] = "x";
-static char symbol_518[] = "}\n";
-static char symbol_519[] = "\n";
+static char symbol_514[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_515[] = "x";
+static char symbol_516[] = "}\n";
+static char symbol_517[] = "\n";
+static char symbol_518[] = "chunks";
+static char symbol_519[] = "struct Chunks* ";
 static char symbol_520[] = "chunks";
-static char symbol_521[] = "struct Chunks* ";
-static char symbol_522[] = "chunks";
-static char symbol_523[] = ";\n";
-static char symbol_524[] = "chunks = create_chunks();\n";
-static char symbol_525[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_526[] = ", variables, NULL, 0, 0));\n";
-static char symbol_527[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_521[] = ";\n";
+static char symbol_522[] = "chunks = create_chunks();\n";
+static char symbol_523[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_524[] = ", variables, NULL, 0, 0));\n";
+static char symbol_525[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_526[] = "x";
+static char symbol_527[] = "append_data(runtime->current_chunks, ";
 static char symbol_528[] = "x";
-static char symbol_529[] = "append_data(runtime->current_chunks, ";
-static char symbol_530[] = "x";
-static char symbol_531[] = ", 0, NULL);\n";
-static char symbol_532[] = "#";
-static char symbol_533[] = "x";
-static char symbol_534[] = "(";
-static char symbol_535[] = "y";
-static char symbol_536[] = " ";
-static char symbol_537[] = "z";
-static char symbol_538[] = ")";
-static char symbol_539[] = "runtime->W_";
-static char symbol_540[] = "y";
-static char symbol_541[] = " = ";
-static char symbol_542[] = "x";
-static char symbol_543[] = "(runtime->W_";
+static char symbol_529[] = ", 0, NULL);\n";
+static char symbol_530[] = "#";
+static char symbol_531[] = "x";
+static char symbol_532[] = "(";
+static char symbol_533[] = "y";
+static char symbol_534[] = " ";
+static char symbol_535[] = "z";
+static char symbol_536[] = ")";
+static char symbol_537[] = "runtime->W_";
+static char symbol_538[] = "y";
+static char symbol_539[] = " = ";
+static char symbol_540[] = "x";
+static char symbol_541[] = "(runtime->W_";
+static char symbol_542[] = "y";
+static char symbol_543[] = " ? runtime->W_";
 static char symbol_544[] = "y";
-static char symbol_545[] = " ? runtime->W_";
-static char symbol_546[] = "y";
-static char symbol_547[] = " : 0, ";
-static char symbol_548[] = "z";
-static char symbol_549[] = ");\n";
-static char symbol_550[] = ">";
-static char symbol_551[] = "xs";
-static char symbol_552[] = "<";
-static char symbol_553[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_554[] = "xs";
-static char symbol_555[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_556[] = "x";
+static char symbol_545[] = " : 0, ";
+static char symbol_546[] = "z";
+static char symbol_547[] = ");\n";
+static char symbol_548[] = ">";
+static char symbol_549[] = "xs";
+static char symbol_550[] = "<";
+static char symbol_551[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_552[] = "xs";
+static char symbol_553[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_554[] = "x";
+static char symbol_555[] = "x";
+static char symbol_556[] = "struct Chunks* named_chunks_";
 static char symbol_557[] = "x";
-static char symbol_558[] = "struct Chunks* named_chunks_";
+static char symbol_558[] = ";\n";
 static char symbol_559[] = "x";
-static char symbol_560[] = ";\n";
+static char symbol_560[] = "x";
 static char symbol_561[] = "x";
-static char symbol_562[] = "x";
-static char symbol_563[] = "x";
-static char symbol_564[] = "0";
-static char symbol_565[] = "1";
-static char symbol_566[] = "2";
-static char symbol_567[] = "3";
-static char symbol_568[] = "4";
-static char symbol_569[] = "5";
-static char symbol_570[] = "6";
-static char symbol_571[] = "7";
-static char symbol_572[] = "8";
-static char symbol_573[] = "9";
-static char symbol_574[] = "{";
-static char symbol_575[] = "x";
-static char symbol_576[] = "*";
-static char symbol_577[] = "y";
-static char symbol_578[] = "}";
-static char symbol_579[] = "for (int i=0; i < ";
-static char symbol_580[] = "y";
-static char symbol_581[] = "; i++) {\n";
-static char symbol_582[] = "append_data(runtime->current_chunks, ";
-static char symbol_583[] = "x";
-static char symbol_584[] = ", 0, NULL);\n";
-static char symbol_585[] = "}\n";
+static char symbol_562[] = "0";
+static char symbol_563[] = "1";
+static char symbol_564[] = "2";
+static char symbol_565[] = "3";
+static char symbol_566[] = "4";
+static char symbol_567[] = "5";
+static char symbol_568[] = "6";
+static char symbol_569[] = "7";
+static char symbol_570[] = "8";
+static char symbol_571[] = "9";
+static char symbol_572[] = "{";
+static char symbol_573[] = "x";
+static char symbol_574[] = "*";
+static char symbol_575[] = "y";
+static char symbol_576[] = "}";
+static char symbol_577[] = "for (int i=0; i < ";
+static char symbol_578[] = "y";
+static char symbol_579[] = "; i++) {\n";
+static char symbol_580[] = "append_data(runtime->current_chunks, ";
+static char symbol_581[] = "x";
+static char symbol_582[] = ", 0, NULL);\n";
+static char symbol_583[] = "}\n";
+static char symbol_584[] = "x";
+static char symbol_585[] = "(runtime->W_";
 static char symbol_586[] = "x";
-static char symbol_587[] = "(runtime->W_";
+static char symbol_587[] = " ? runtime->W_";
 static char symbol_588[] = "x";
-static char symbol_589[] = " ? runtime->W_";
-static char symbol_590[] = "x";
-static char symbol_591[] = " : 0)";
-static char symbol_592[] = "(";
-static char symbol_593[] = "x";
-static char symbol_594[] = "-";
-static char symbol_595[] = "y";
-static char symbol_596[] = ")";
-static char symbol_597[] = "((runtime->W_";
+static char symbol_589[] = " : 0)";
+static char symbol_590[] = "(";
+static char symbol_591[] = "x";
+static char symbol_592[] = "-";
+static char symbol_593[] = "y";
+static char symbol_594[] = ")";
+static char symbol_595[] = "((runtime->W_";
+static char symbol_596[] = "x";
+static char symbol_597[] = " ? runtime->W_";
 static char symbol_598[] = "x";
-static char symbol_599[] = " ? runtime->W_";
-static char symbol_600[] = "x";
-static char symbol_601[] = " : 0)-";
-static char symbol_602[] = "y";
-static char symbol_603[] = ")";
+static char symbol_599[] = " : 0)-";
+static char symbol_600[] = "y";
+static char symbol_601[] = ")";
+static char symbol_602[] = "\"";
+static char symbol_603[] = "xs";
 static char symbol_604[] = "\"";
-static char symbol_605[] = "xs";
-static char symbol_606[] = "\"";
-static char symbol_607[] = "static char symbol_";
-static char symbol_608[] = "[] = \"";
-static char symbol_609[] = "xs";
-static char symbol_610[] = "\";\n";
-static char symbol_611[] = "buffer_from_cstring(symbol_";
-static char symbol_612[] = ", sizeof(symbol_";
-static char symbol_613[] = ")-1)";
-static char symbol_614[] = "x";
-static char symbol_615[] = "xs";
-static char symbol_616[] = "lookup_action(variables, ";
-static char symbol_617[] = "x";
-static char symbol_618[] = ")";
-static char symbol_619[] = "xs";
-static char symbol_620[] = ".";
+static char symbol_605[] = "static char symbol_";
+static char symbol_606[] = "[] = \"";
+static char symbol_607[] = "xs";
+static char symbol_608[] = "\";\n";
+static char symbol_609[] = "buffer_from_cstring(symbol_";
+static char symbol_610[] = ", sizeof(symbol_";
+static char symbol_611[] = ")-1)";
+static char symbol_612[] = "x";
+static char symbol_613[] = "xs";
+static char symbol_614[] = "lookup_action(variables, ";
+static char symbol_615[] = "x";
+static char symbol_616[] = ")";
+static char symbol_617[] = "xs";
+static char symbol_618[] = ".";
+static char symbol_619[] = "x";
+static char symbol_620[] = "->";
 static char symbol_621[] = "x";
-static char symbol_622[] = "->";
+static char symbol_622[] = "W[";
 static char symbol_623[] = "x";
-static char symbol_624[] = "W[";
+static char symbol_624[] = "]";
 static char symbol_625[] = "x";
-static char symbol_626[] = "]";
+static char symbol_626[] = "unsigned int W_";
 static char symbol_627[] = "x";
-static char symbol_628[] = "unsigned int W_";
+static char symbol_628[] = ";\n";
 static char symbol_629[] = "x";
-static char symbol_630[] = ";\n";
-static char symbol_631[] = "x";
-static char symbol_632[] = "\\\"";
-static char symbol_633[] = "\"";
-static char symbol_634[] = "xs";
-static char symbol_635[] = "static char symbol_";
-static char symbol_636[] = "[] = \"";
-static char symbol_637[] = "xs";
-static char symbol_638[] = "\";\n";
-static char symbol_639[] = "buffer_from_cstring(symbol_";
-static char symbol_640[] = ", sizeof(symbol_";
-static char symbol_641[] = ")-1)";
-static char symbol_642[] = "\'";
-static char symbol_643[] = "\\\'";
-static char symbol_644[] = "\"";
-static char symbol_645[] = "\\\"";
-static char symbol_646[] = "x";
-static char symbol_647[] = "static char symbol_";
-static char symbol_648[] = "[] = \"";
-static char symbol_649[] = "x";
-static char symbol_650[] = "\";\n";
-static char symbol_651[] = "buffer_from_cstring(symbol_";
-static char symbol_652[] = ", sizeof(symbol_";
-static char symbol_653[] = ")-1)";
-static char symbol_654[] = "a";
-static char symbol_655[] = "b";
-static char symbol_656[] = "c";
-static char symbol_657[] = "d";
-static char symbol_658[] = "e";
-static char symbol_659[] = "f";
-static char symbol_660[] = "g";
-static char symbol_661[] = "h";
-static char symbol_662[] = "i";
-static char symbol_663[] = "j";
-static char symbol_664[] = "k";
-static char symbol_665[] = "l";
-static char symbol_666[] = "m";
-static char symbol_667[] = "n";
-static char symbol_668[] = "o";
-static char symbol_669[] = "p";
-static char symbol_670[] = "q";
-static char symbol_671[] = "r";
-static char symbol_672[] = "s";
-static char symbol_673[] = "t";
-static char symbol_674[] = "u";
-static char symbol_675[] = "v";
-static char symbol_676[] = "w";
-static char symbol_677[] = "x";
-static char symbol_678[] = "y";
-static char symbol_679[] = "z";
-static char symbol_680[] = "A";
-static char symbol_681[] = "B";
-static char symbol_682[] = "C";
-static char symbol_683[] = "D";
-static char symbol_684[] = "E";
-static char symbol_685[] = "F";
-static char symbol_686[] = "G";
-static char symbol_687[] = "H";
-static char symbol_688[] = "I";
-static char symbol_689[] = "J";
-static char symbol_690[] = "K";
-static char symbol_691[] = "L";
-static char symbol_692[] = "M";
-static char symbol_693[] = "N";
-static char symbol_694[] = "O";
-static char symbol_695[] = "P";
-static char symbol_696[] = "Q";
-static char symbol_697[] = "R";
-static char symbol_698[] = "S";
-static char symbol_699[] = "T";
-static char symbol_700[] = "U";
-static char symbol_701[] = "V";
-static char symbol_702[] = "W";
-static char symbol_703[] = "X";
-static char symbol_704[] = "Y";
-static char symbol_705[] = "Z";
-static char symbol_706[] = " ";
-static char symbol_707[] = "\n";
+static char symbol_630[] = "\\\"";
+static char symbol_631[] = "\"";
+static char symbol_632[] = "xs";
+static char symbol_633[] = "static char symbol_";
+static char symbol_634[] = "[] = \"";
+static char symbol_635[] = "xs";
+static char symbol_636[] = "\";\n";
+static char symbol_637[] = "buffer_from_cstring(symbol_";
+static char symbol_638[] = ", sizeof(symbol_";
+static char symbol_639[] = ")-1)";
+static char symbol_640[] = "\'";
+static char symbol_641[] = "\\\'";
+static char symbol_642[] = "\"";
+static char symbol_643[] = "\\\"";
+static char symbol_644[] = "x";
+static char symbol_645[] = "static char symbol_";
+static char symbol_646[] = "[] = \"";
+static char symbol_647[] = "x";
+static char symbol_648[] = "\";\n";
+static char symbol_649[] = "buffer_from_cstring(symbol_";
+static char symbol_650[] = ", sizeof(symbol_";
+static char symbol_651[] = ")-1)";
+static char symbol_652[] = "a";
+static char symbol_653[] = "b";
+static char symbol_654[] = "c";
+static char symbol_655[] = "d";
+static char symbol_656[] = "e";
+static char symbol_657[] = "f";
+static char symbol_658[] = "g";
+static char symbol_659[] = "h";
+static char symbol_660[] = "i";
+static char symbol_661[] = "j";
+static char symbol_662[] = "k";
+static char symbol_663[] = "l";
+static char symbol_664[] = "m";
+static char symbol_665[] = "n";
+static char symbol_666[] = "o";
+static char symbol_667[] = "p";
+static char symbol_668[] = "q";
+static char symbol_669[] = "r";
+static char symbol_670[] = "s";
+static char symbol_671[] = "t";
+static char symbol_672[] = "u";
+static char symbol_673[] = "v";
+static char symbol_674[] = "w";
+static char symbol_675[] = "x";
+static char symbol_676[] = "y";
+static char symbol_677[] = "z";
+static char symbol_678[] = "A";
+static char symbol_679[] = "B";
+static char symbol_680[] = "C";
+static char symbol_681[] = "D";
+static char symbol_682[] = "E";
+static char symbol_683[] = "F";
+static char symbol_684[] = "G";
+static char symbol_685[] = "H";
+static char symbol_686[] = "I";
+static char symbol_687[] = "J";
+static char symbol_688[] = "K";
+static char symbol_689[] = "L";
+static char symbol_690[] = "M";
+static char symbol_691[] = "N";
+static char symbol_692[] = "O";
+static char symbol_693[] = "P";
+static char symbol_694[] = "Q";
+static char symbol_695[] = "R";
+static char symbol_696[] = "S";
+static char symbol_697[] = "T";
+static char symbol_698[] = "U";
+static char symbol_699[] = "V";
+static char symbol_700[] = "W";
+static char symbol_701[] = "X";
+static char symbol_702[] = "Y";
+static char symbol_703[] = "Z";
+static char symbol_704[] = " ";
+static char symbol_705[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1689,152 +1687,140 @@ void action_27(struct Runtime* runtime, struct Variables* variables) {
 void action_28(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
-    struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
     if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1))) {
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* last_chunks;
-    struct Chunks* chunks;
-    struct Action* action;
-    last_chunks = runtime->current_chunks;
-    chunks = runtime->named_chunks_actionVars;
-    runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
-    }
-    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
-    struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1))) {
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
     }
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1))) {
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
-    struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1))) {
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* last_chunks;
     struct Chunks* chunks;
-    struct Action* action;
     runtime->W_1 = inc(runtime->W_1 ? runtime->W_1 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1))) {
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
@@ -1844,14 +1830,12 @@ void action_36(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1861,48 +1845,48 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1)), runtime);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -1912,29 +1896,29 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -1944,14 +1928,14 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1)), runtime);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
@@ -1961,21 +1945,21 @@ void action_47(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_643, sizeof(symbol_643)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
@@ -1985,17 +1969,17 @@ void action_49(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2803,7 +2787,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
+        data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2812,9 +2796,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
+                data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2834,11 +2818,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
+                            data = buffer_from_cstring(symbol_465, sizeof(symbol_465)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2859,7 +2843,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_473, sizeof(symbol_473)-1);
+        data = buffer_from_cstring(symbol_471, sizeof(symbol_471)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2868,11 +2852,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_475, sizeof(symbol_475)-1);
+                    data = buffer_from_cstring(symbol_473, sizeof(symbol_473)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2892,11 +2876,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_477, sizeof(symbol_477)-1);
+                                data = buffer_from_cstring(symbol_475, sizeof(symbol_475)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2918,7 +2902,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_493, sizeof(symbol_493)-1);
+        data = buffer_from_cstring(symbol_491, sizeof(symbol_491)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2927,7 +2911,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2939,7 +2923,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2950,7 +2934,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2961,7 +2945,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2972,7 +2956,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2982,7 +2966,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_532, sizeof(symbol_532)-1);
+        data = buffer_from_cstring(symbol_530, sizeof(symbol_530)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2991,9 +2975,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_534, sizeof(symbol_534)-1);
+                data = buffer_from_cstring(symbol_532, sizeof(symbol_532)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3002,9 +2986,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
+                        data = buffer_from_cstring(symbol_534, sizeof(symbol_534)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3013,9 +2997,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_538, sizeof(symbol_538)-1);
+                                data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3037,7 +3021,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
+        data = buffer_from_cstring(symbol_548, sizeof(symbol_548)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3057,11 +3041,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_552, sizeof(symbol_552)-1);
+                    data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3095,7 +3079,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3119,7 +3103,7 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3149,7 +3133,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
+    data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3162,7 +3146,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
+    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3175,7 +3159,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
+    data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3188,7 +3172,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
+    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3201,7 +3185,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
+    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3214,7 +3198,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
+    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3227,7 +3211,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
+    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3240,7 +3224,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
+    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3253,7 +3237,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
+    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3266,7 +3250,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
+    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3295,7 +3279,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
+    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3306,9 +3290,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
+                data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3317,11 +3301,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
+                            data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3357,14 +3341,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
+    data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3373,9 +3357,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
+            data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3384,9 +3368,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_596, sizeof(symbol_596)-1);
+                    data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3419,7 +3403,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
+    data = buffer_from_cstring(symbol_602, sizeof(symbol_602)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3439,9 +3423,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_606, sizeof(symbol_606)-1);
+            data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3473,7 +3457,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3487,7 +3471,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3511,7 +3495,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_620, sizeof(symbol_620)-1);
+    data = buffer_from_cstring(symbol_618, sizeof(symbol_618)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3520,7 +3504,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3544,7 +3528,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
+    data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3558,9 +3542,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_626, sizeof(symbol_626)-1);
+            data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3591,7 +3575,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
+    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3605,7 +3589,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_633, sizeof(symbol_633)-1);
+    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3662,7 +3646,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3689,7 +3673,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
+    data = buffer_from_cstring(symbol_640, sizeof(symbol_640)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3718,7 +3702,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
+    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3731,7 +3715,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_644, sizeof(symbol_644)-1);
+    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3783,7 +3767,7 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_644, sizeof(symbol_644)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3873,6 +3857,32 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
+    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    variables = create_variables();
+    data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
+    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+        parse_state->pos += data->size;
+        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+    } else {
+        _ = NULL;
+    }
+    if (_) {
+        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    variables = create_variables();
     data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
@@ -4182,6 +4192,22 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
+    return NULL;
+}
+
+struct Action* rule_upper(struct ParseState* parse_state) {
+    unsigned int or_backtrack_pos;
+    unsigned int action_start_pos;
+    unsigned int star_start_pos;
+    unsigned int star_pos;
+    unsigned int nlookahead_pos;
+    struct Variables* variables;
+    struct Variables* star_variables;
+    struct Action* _;
+    struct Buffer* data;
+    unsigned char bitpattern;
+    unsigned char bitmask;
+    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
@@ -4208,22 +4234,6 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    return NULL;
-}
-
-struct Action* rule_upper(struct ParseState* parse_state) {
-    unsigned int or_backtrack_pos;
-    unsigned int action_start_pos;
-    unsigned int star_start_pos;
-    unsigned int star_pos;
-    unsigned int nlookahead_pos;
-    struct Variables* variables;
-    struct Variables* star_variables;
-    struct Action* _;
-    struct Buffer* data;
-    unsigned char bitpattern;
-    unsigned char bitmask;
-    or_backtrack_pos = parse_state->pos;
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
@@ -4536,32 +4546,6 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     if (_) {
         return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
-    parse_state->pos = or_backtrack_pos;
-    action_start_pos = parse_state->pos;
-    variables = create_variables();
-    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
-    if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
-        parse_state->pos += data->size;
-        _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
-    } else {
-        _ = NULL;
-    }
-    if (_) {
-        return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);
-    }
     return NULL;
 }
 
@@ -4615,7 +4599,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4628,7 +4612,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(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 7eb2be2..c0f7369 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -476,7 +476,7 @@ actionexpr =
     | space 'unseen(' nameAsSymbol:x ') -> {' actionexpr*:ys space '}' -> {
         >actionVars {
             unseen("action") -> {
-                "struct Action* action;\n"
+                "struct Action* " "action" ";\n"
             }
         }
         "action = lookup_action(variables, " x ");\n"
@@ -485,11 +485,6 @@ actionexpr =
         < "}\n"
     }
     | space 'unseen(' string:x ') -> {' actionexpr*:ys space '}' -> {
-        >actionVars {
-            unseen("action") -> {
-                "struct Action* " "action" ";\n"
-            }
-        }
         "if (!seen(runtime->current_chunks, " x ")) {\n" >
             ys
         < "}\n"

commit 9c093ea95d1128f5e81e1b1cbbe7efe61cc0b163
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 22:05:31 2025 +0100

    Only generate chunks if used

diff --git a/src/meta/meta.c b/src/meta/meta.c
index 3d6594b..4ad3dfd 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -717,263 +717,274 @@ static char symbol_436[] = "xs";
 static char symbol_437[] = "}";
 static char symbol_438[] = "void action_";
 static char symbol_439[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
-static char symbol_440[] = "struct Chunks* chunks;\n";
-static char symbol_441[] = "xs";
-static char symbol_442[] = "}\n";
-static char symbol_443[] = "\n";
-static char symbol_444[] = "return create_action(action_";
-static char symbol_445[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_446[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_447[] = "unseen(";
-static char symbol_448[] = "x";
-static char symbol_449[] = ") -> {";
-static char symbol_450[] = "ys";
-static char symbol_451[] = "}";
-static char symbol_452[] = "action";
-static char symbol_453[] = "struct Action* action;\n";
-static char symbol_454[] = "action = lookup_action(variables, ";
-static char symbol_455[] = "x";
-static char symbol_456[] = ");\n";
-static char symbol_457[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_458[] = "ys";
-static char symbol_459[] = "}\n";
-static char symbol_460[] = "unseen(";
-static char symbol_461[] = "x";
-static char symbol_462[] = ") -> {";
-static char symbol_463[] = "ys";
-static char symbol_464[] = "}";
-static char symbol_465[] = "action";
-static char symbol_466[] = "struct Action* ";
-static char symbol_467[] = "action";
-static char symbol_468[] = ";\n";
-static char symbol_469[] = "if (!seen(runtime->current_chunks, ";
-static char symbol_470[] = "x";
-static char symbol_471[] = ")) {\n";
-static char symbol_472[] = "ys";
-static char symbol_473[] = "}\n";
-static char symbol_474[] = ">";
-static char symbol_475[] = "x";
-static char symbol_476[] = "{";
-static char symbol_477[] = "ys";
-static char symbol_478[] = "}";
-static char symbol_479[] = "last_chunks";
-static char symbol_480[] = "struct Chunks* ";
-static char symbol_481[] = "last_chunks";
-static char symbol_482[] = ";\n";
-static char symbol_483[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_484[] = "chunks = runtime->named_chunks_";
-static char symbol_485[] = "x";
-static char symbol_486[] = ";\n";
-static char symbol_487[] = "runtime->current_chunks = chunks;\n";
-static char symbol_488[] = "ys";
-static char symbol_489[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_490[] = "<";
-static char symbol_491[] = "x";
-static char symbol_492[] = "chunks = create_chunks();\n";
-static char symbol_493[] = "runtime->named_chunks_";
+static char symbol_440[] = "xs";
+static char symbol_441[] = "}\n";
+static char symbol_442[] = "\n";
+static char symbol_443[] = "return create_action(action_";
+static char symbol_444[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_445[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_446[] = "unseen(";
+static char symbol_447[] = "x";
+static char symbol_448[] = ") -> {";
+static char symbol_449[] = "ys";
+static char symbol_450[] = "}";
+static char symbol_451[] = "action";
+static char symbol_452[] = "struct Action* action;\n";
+static char symbol_453[] = "action = lookup_action(variables, ";
+static char symbol_454[] = "x";
+static char symbol_455[] = ");\n";
+static char symbol_456[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_457[] = "ys";
+static char symbol_458[] = "}\n";
+static char symbol_459[] = "unseen(";
+static char symbol_460[] = "x";
+static char symbol_461[] = ") -> {";
+static char symbol_462[] = "ys";
+static char symbol_463[] = "}";
+static char symbol_464[] = "action";
+static char symbol_465[] = "struct Action* ";
+static char symbol_466[] = "action";
+static char symbol_467[] = ";\n";
+static char symbol_468[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_469[] = "x";
+static char symbol_470[] = ")) {\n";
+static char symbol_471[] = "ys";
+static char symbol_472[] = "}\n";
+static char symbol_473[] = ">";
+static char symbol_474[] = "x";
+static char symbol_475[] = "{";
+static char symbol_476[] = "ys";
+static char symbol_477[] = "}";
+static char symbol_478[] = "last_chunks";
+static char symbol_479[] = "struct Chunks* ";
+static char symbol_480[] = "last_chunks";
+static char symbol_481[] = ";\n";
+static char symbol_482[] = "chunks";
+static char symbol_483[] = "struct Chunks* ";
+static char symbol_484[] = "chunks";
+static char symbol_485[] = ";\n";
+static char symbol_486[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_487[] = "chunks = runtime->named_chunks_";
+static char symbol_488[] = "x";
+static char symbol_489[] = ";\n";
+static char symbol_490[] = "runtime->current_chunks = chunks;\n";
+static char symbol_491[] = "ys";
+static char symbol_492[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_493[] = "<";
 static char symbol_494[] = "x";
-static char symbol_495[] = " = chunks;\n";
-static char symbol_496[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_497[] = "x";
-static char symbol_498[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_499[] = "x";
-static char symbol_500[] = "), 0, NULL);\n";
+static char symbol_495[] = "chunks";
+static char symbol_496[] = "struct Chunks* ";
+static char symbol_497[] = "chunks";
+static char symbol_498[] = ";\n";
+static char symbol_499[] = "chunks = create_chunks();\n";
+static char symbol_500[] = "runtime->named_chunks_";
 static char symbol_501[] = "x";
-static char symbol_502[] = "run_action(lookup_action(variables, ";
-static char symbol_503[] = "x";
-static char symbol_504[] = "), runtime);\n";
-static char symbol_505[] = "x";
-static char symbol_506[] = "void placeholder_";
-static char symbol_507[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_508[] = "void placeholder_";
-static char symbol_509[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_502[] = " = chunks;\n";
+static char symbol_503[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_504[] = "x";
+static char symbol_505[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_506[] = "x";
+static char symbol_507[] = "), 0, NULL);\n";
+static char symbol_508[] = "x";
+static char symbol_509[] = "run_action(lookup_action(variables, ";
 static char symbol_510[] = "x";
-static char symbol_511[] = "}\n";
-static char symbol_512[] = "\n";
-static char symbol_513[] = "chunks = create_chunks();\n";
-static char symbol_514[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_515[] = ", variables, NULL, 0, 0));\n";
-static char symbol_516[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_511[] = "), runtime);\n";
+static char symbol_512[] = "x";
+static char symbol_513[] = "void placeholder_";
+static char symbol_514[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_515[] = "void placeholder_";
+static char symbol_516[] = "(struct Runtime* runtime, struct Variables* variables) {";
 static char symbol_517[] = "x";
-static char symbol_518[] = "append_data(runtime->current_chunks, ";
-static char symbol_519[] = "x";
-static char symbol_520[] = ", 0, NULL);\n";
-static char symbol_521[] = "#";
-static char symbol_522[] = "x";
-static char symbol_523[] = "(";
-static char symbol_524[] = "y";
-static char symbol_525[] = " ";
-static char symbol_526[] = "z";
-static char symbol_527[] = ")";
-static char symbol_528[] = "runtime->W_";
-static char symbol_529[] = "y";
-static char symbol_530[] = " = ";
-static char symbol_531[] = "x";
-static char symbol_532[] = "(runtime->W_";
-static char symbol_533[] = "y";
-static char symbol_534[] = " ? runtime->W_";
+static char symbol_518[] = "}\n";
+static char symbol_519[] = "\n";
+static char symbol_520[] = "chunks";
+static char symbol_521[] = "struct Chunks* ";
+static char symbol_522[] = "chunks";
+static char symbol_523[] = ";\n";
+static char symbol_524[] = "chunks = create_chunks();\n";
+static char symbol_525[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_526[] = ", variables, NULL, 0, 0));\n";
+static char symbol_527[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_528[] = "x";
+static char symbol_529[] = "append_data(runtime->current_chunks, ";
+static char symbol_530[] = "x";
+static char symbol_531[] = ", 0, NULL);\n";
+static char symbol_532[] = "#";
+static char symbol_533[] = "x";
+static char symbol_534[] = "(";
 static char symbol_535[] = "y";
-static char symbol_536[] = " : 0, ";
+static char symbol_536[] = " ";
 static char symbol_537[] = "z";
-static char symbol_538[] = ");\n";
-static char symbol_539[] = ">";
-static char symbol_540[] = "xs";
-static char symbol_541[] = "<";
-static char symbol_542[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_543[] = "xs";
-static char symbol_544[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_545[] = "x";
-static char symbol_546[] = "x";
-static char symbol_547[] = "struct Chunks* named_chunks_";
-static char symbol_548[] = "x";
-static char symbol_549[] = ";\n";
-static char symbol_550[] = "x";
-static char symbol_551[] = "x";
-static char symbol_552[] = "x";
-static char symbol_553[] = "0";
-static char symbol_554[] = "1";
-static char symbol_555[] = "2";
-static char symbol_556[] = "3";
-static char symbol_557[] = "4";
-static char symbol_558[] = "5";
-static char symbol_559[] = "6";
-static char symbol_560[] = "7";
-static char symbol_561[] = "8";
-static char symbol_562[] = "9";
-static char symbol_563[] = "{";
-static char symbol_564[] = "x";
-static char symbol_565[] = "*";
-static char symbol_566[] = "y";
-static char symbol_567[] = "}";
-static char symbol_568[] = "for (int i=0; i < ";
-static char symbol_569[] = "y";
-static char symbol_570[] = "; i++) {\n";
-static char symbol_571[] = "append_data(runtime->current_chunks, ";
-static char symbol_572[] = "x";
-static char symbol_573[] = ", 0, NULL);\n";
-static char symbol_574[] = "}\n";
+static char symbol_538[] = ")";
+static char symbol_539[] = "runtime->W_";
+static char symbol_540[] = "y";
+static char symbol_541[] = " = ";
+static char symbol_542[] = "x";
+static char symbol_543[] = "(runtime->W_";
+static char symbol_544[] = "y";
+static char symbol_545[] = " ? runtime->W_";
+static char symbol_546[] = "y";
+static char symbol_547[] = " : 0, ";
+static char symbol_548[] = "z";
+static char symbol_549[] = ");\n";
+static char symbol_550[] = ">";
+static char symbol_551[] = "xs";
+static char symbol_552[] = "<";
+static char symbol_553[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_554[] = "xs";
+static char symbol_555[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_556[] = "x";
+static char symbol_557[] = "x";
+static char symbol_558[] = "struct Chunks* named_chunks_";
+static char symbol_559[] = "x";
+static char symbol_560[] = ";\n";
+static char symbol_561[] = "x";
+static char symbol_562[] = "x";
+static char symbol_563[] = "x";
+static char symbol_564[] = "0";
+static char symbol_565[] = "1";
+static char symbol_566[] = "2";
+static char symbol_567[] = "3";
+static char symbol_568[] = "4";
+static char symbol_569[] = "5";
+static char symbol_570[] = "6";
+static char symbol_571[] = "7";
+static char symbol_572[] = "8";
+static char symbol_573[] = "9";
+static char symbol_574[] = "{";
 static char symbol_575[] = "x";
-static char symbol_576[] = "(runtime->W_";
-static char symbol_577[] = "x";
-static char symbol_578[] = " ? runtime->W_";
-static char symbol_579[] = "x";
-static char symbol_580[] = " : 0)";
-static char symbol_581[] = "(";
-static char symbol_582[] = "x";
-static char symbol_583[] = "-";
-static char symbol_584[] = "y";
-static char symbol_585[] = ")";
-static char symbol_586[] = "((runtime->W_";
-static char symbol_587[] = "x";
-static char symbol_588[] = " ? runtime->W_";
-static char symbol_589[] = "x";
-static char symbol_590[] = " : 0)-";
-static char symbol_591[] = "y";
-static char symbol_592[] = ")";
-static char symbol_593[] = "\"";
-static char symbol_594[] = "xs";
-static char symbol_595[] = "\"";
-static char symbol_596[] = "static char symbol_";
-static char symbol_597[] = "[] = \"";
-static char symbol_598[] = "xs";
-static char symbol_599[] = "\";\n";
-static char symbol_600[] = "buffer_from_cstring(symbol_";
-static char symbol_601[] = ", sizeof(symbol_";
-static char symbol_602[] = ")-1)";
-static char symbol_603[] = "x";
-static char symbol_604[] = "xs";
-static char symbol_605[] = "lookup_action(variables, ";
-static char symbol_606[] = "x";
-static char symbol_607[] = ")";
-static char symbol_608[] = "xs";
-static char symbol_609[] = ".";
-static char symbol_610[] = "x";
-static char symbol_611[] = "->";
-static char symbol_612[] = "x";
-static char symbol_613[] = "W[";
+static char symbol_576[] = "*";
+static char symbol_577[] = "y";
+static char symbol_578[] = "}";
+static char symbol_579[] = "for (int i=0; i < ";
+static char symbol_580[] = "y";
+static char symbol_581[] = "; i++) {\n";
+static char symbol_582[] = "append_data(runtime->current_chunks, ";
+static char symbol_583[] = "x";
+static char symbol_584[] = ", 0, NULL);\n";
+static char symbol_585[] = "}\n";
+static char symbol_586[] = "x";
+static char symbol_587[] = "(runtime->W_";
+static char symbol_588[] = "x";
+static char symbol_589[] = " ? runtime->W_";
+static char symbol_590[] = "x";
+static char symbol_591[] = " : 0)";
+static char symbol_592[] = "(";
+static char symbol_593[] = "x";
+static char symbol_594[] = "-";
+static char symbol_595[] = "y";
+static char symbol_596[] = ")";
+static char symbol_597[] = "((runtime->W_";
+static char symbol_598[] = "x";
+static char symbol_599[] = " ? runtime->W_";
+static char symbol_600[] = "x";
+static char symbol_601[] = " : 0)-";
+static char symbol_602[] = "y";
+static char symbol_603[] = ")";
+static char symbol_604[] = "\"";
+static char symbol_605[] = "xs";
+static char symbol_606[] = "\"";
+static char symbol_607[] = "static char symbol_";
+static char symbol_608[] = "[] = \"";
+static char symbol_609[] = "xs";
+static char symbol_610[] = "\";\n";
+static char symbol_611[] = "buffer_from_cstring(symbol_";
+static char symbol_612[] = ", sizeof(symbol_";
+static char symbol_613[] = ")-1)";
 static char symbol_614[] = "x";
-static char symbol_615[] = "]";
-static char symbol_616[] = "x";
-static char symbol_617[] = "unsigned int W_";
-static char symbol_618[] = "x";
-static char symbol_619[] = ";\n";
-static char symbol_620[] = "x";
-static char symbol_621[] = "\\\"";
-static char symbol_622[] = "\"";
-static char symbol_623[] = "xs";
-static char symbol_624[] = "static char symbol_";
-static char symbol_625[] = "[] = \"";
-static char symbol_626[] = "xs";
-static char symbol_627[] = "\";\n";
-static char symbol_628[] = "buffer_from_cstring(symbol_";
-static char symbol_629[] = ", sizeof(symbol_";
-static char symbol_630[] = ")-1)";
-static char symbol_631[] = "\'";
-static char symbol_632[] = "\\\'";
+static char symbol_615[] = "xs";
+static char symbol_616[] = "lookup_action(variables, ";
+static char symbol_617[] = "x";
+static char symbol_618[] = ")";
+static char symbol_619[] = "xs";
+static char symbol_620[] = ".";
+static char symbol_621[] = "x";
+static char symbol_622[] = "->";
+static char symbol_623[] = "x";
+static char symbol_624[] = "W[";
+static char symbol_625[] = "x";
+static char symbol_626[] = "]";
+static char symbol_627[] = "x";
+static char symbol_628[] = "unsigned int W_";
+static char symbol_629[] = "x";
+static char symbol_630[] = ";\n";
+static char symbol_631[] = "x";
+static char symbol_632[] = "\\\"";
 static char symbol_633[] = "\"";
-static char symbol_634[] = "\\\"";
-static char symbol_635[] = "x";
-static char symbol_636[] = "static char symbol_";
-static char symbol_637[] = "[] = \"";
-static char symbol_638[] = "x";
-static char symbol_639[] = "\";\n";
-static char symbol_640[] = "buffer_from_cstring(symbol_";
-static char symbol_641[] = ", sizeof(symbol_";
-static char symbol_642[] = ")-1)";
-static char symbol_643[] = "a";
-static char symbol_644[] = "b";
-static char symbol_645[] = "c";
-static char symbol_646[] = "d";
-static char symbol_647[] = "e";
-static char symbol_648[] = "f";
-static char symbol_649[] = "g";
-static char symbol_650[] = "h";
-static char symbol_651[] = "i";
-static char symbol_652[] = "j";
-static char symbol_653[] = "k";
-static char symbol_654[] = "l";
-static char symbol_655[] = "m";
-static char symbol_656[] = "n";
-static char symbol_657[] = "o";
-static char symbol_658[] = "p";
-static char symbol_659[] = "q";
-static char symbol_660[] = "r";
-static char symbol_661[] = "s";
-static char symbol_662[] = "t";
-static char symbol_663[] = "u";
-static char symbol_664[] = "v";
-static char symbol_665[] = "w";
-static char symbol_666[] = "x";
-static char symbol_667[] = "y";
-static char symbol_668[] = "z";
-static char symbol_669[] = "A";
-static char symbol_670[] = "B";
-static char symbol_671[] = "C";
-static char symbol_672[] = "D";
-static char symbol_673[] = "E";
-static char symbol_674[] = "F";
-static char symbol_675[] = "G";
-static char symbol_676[] = "H";
-static char symbol_677[] = "I";
-static char symbol_678[] = "J";
-static char symbol_679[] = "K";
-static char symbol_680[] = "L";
-static char symbol_681[] = "M";
-static char symbol_682[] = "N";
-static char symbol_683[] = "O";
-static char symbol_684[] = "P";
-static char symbol_685[] = "Q";
-static char symbol_686[] = "R";
-static char symbol_687[] = "S";
-static char symbol_688[] = "T";
-static char symbol_689[] = "U";
-static char symbol_690[] = "V";
-static char symbol_691[] = "W";
-static char symbol_692[] = "X";
-static char symbol_693[] = "Y";
-static char symbol_694[] = "Z";
-static char symbol_695[] = " ";
-static char symbol_696[] = "\n";
+static char symbol_634[] = "xs";
+static char symbol_635[] = "static char symbol_";
+static char symbol_636[] = "[] = \"";
+static char symbol_637[] = "xs";
+static char symbol_638[] = "\";\n";
+static char symbol_639[] = "buffer_from_cstring(symbol_";
+static char symbol_640[] = ", sizeof(symbol_";
+static char symbol_641[] = ")-1)";
+static char symbol_642[] = "\'";
+static char symbol_643[] = "\\\'";
+static char symbol_644[] = "\"";
+static char symbol_645[] = "\\\"";
+static char symbol_646[] = "x";
+static char symbol_647[] = "static char symbol_";
+static char symbol_648[] = "[] = \"";
+static char symbol_649[] = "x";
+static char symbol_650[] = "\";\n";
+static char symbol_651[] = "buffer_from_cstring(symbol_";
+static char symbol_652[] = ", sizeof(symbol_";
+static char symbol_653[] = ")-1)";
+static char symbol_654[] = "a";
+static char symbol_655[] = "b";
+static char symbol_656[] = "c";
+static char symbol_657[] = "d";
+static char symbol_658[] = "e";
+static char symbol_659[] = "f";
+static char symbol_660[] = "g";
+static char symbol_661[] = "h";
+static char symbol_662[] = "i";
+static char symbol_663[] = "j";
+static char symbol_664[] = "k";
+static char symbol_665[] = "l";
+static char symbol_666[] = "m";
+static char symbol_667[] = "n";
+static char symbol_668[] = "o";
+static char symbol_669[] = "p";
+static char symbol_670[] = "q";
+static char symbol_671[] = "r";
+static char symbol_672[] = "s";
+static char symbol_673[] = "t";
+static char symbol_674[] = "u";
+static char symbol_675[] = "v";
+static char symbol_676[] = "w";
+static char symbol_677[] = "x";
+static char symbol_678[] = "y";
+static char symbol_679[] = "z";
+static char symbol_680[] = "A";
+static char symbol_681[] = "B";
+static char symbol_682[] = "C";
+static char symbol_683[] = "D";
+static char symbol_684[] = "E";
+static char symbol_685[] = "F";
+static char symbol_686[] = "G";
+static char symbol_687[] = "H";
+static char symbol_688[] = "I";
+static char symbol_689[] = "J";
+static char symbol_690[] = "K";
+static char symbol_691[] = "L";
+static char symbol_692[] = "M";
+static char symbol_693[] = "N";
+static char symbol_694[] = "O";
+static char symbol_695[] = "P";
+static char symbol_696[] = "Q";
+static char symbol_697[] = "R";
+static char symbol_698[] = "S";
+static char symbol_699[] = "T";
+static char symbol_700[] = "U";
+static char symbol_701[] = "V";
+static char symbol_702[] = "W";
+static char symbol_703[] = "X";
+static char symbol_704[] = "Y";
+static char symbol_705[] = "Z";
+static char symbol_706[] = " ";
+static char symbol_707[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1014,7 +1025,6 @@ struct Action* rule_space(struct ParseState* parse_state);
 struct Action* rule_spacechar(struct ParseState* parse_state);
 
 void action_1(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_2, sizeof(symbol_2)-1)), runtime);
 }
 
@@ -1445,8 +1455,8 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_3(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     struct Chunks* last_chunks;
+    struct Chunks* chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
@@ -1477,23 +1487,19 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1)), runtime);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1)), runtime);
 }
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
 }
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
@@ -1501,7 +1507,6 @@ void action_7(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
@@ -1511,12 +1516,10 @@ void action_8(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
@@ -1532,7 +1535,6 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
@@ -1548,24 +1550,20 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
 }
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
 }
 
 void action_15(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
@@ -1585,45 +1583,37 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1)), runtime);
 }
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
 }
 
 void action_20(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
 }
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1)), runtime);
@@ -1640,7 +1630,6 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
@@ -1654,7 +1643,6 @@ void action_24(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
@@ -1671,8 +1659,8 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
 }
 
 void action_26(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     struct Chunks* last_chunks;
+    struct Chunks* chunks;
     runtime->W_0 = inc(runtime->W_0 ? runtime->W_0 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
@@ -1681,321 +1669,333 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     struct Chunks* last_chunks;
+    struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     struct Chunks* last_chunks;
+    struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1))) {
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     struct Chunks* last_chunks;
+    struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1))) {
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
+    }
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
+    struct Chunks* last_chunks;
     struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
+    struct Action* action;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_actionVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     struct Chunks* last_chunks;
+    struct Chunks* chunks;
+    struct Action* action;
     runtime->W_1 = inc(runtime->W_1 ? runtime->W_1 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_actionVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     struct Chunks* last_chunks;
+    struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     struct Chunks* last_chunks;
+    struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     struct Chunks* last_chunks;
+    struct Chunks* chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     struct Chunks* last_chunks;
+    struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_645, sizeof(symbol_645)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
-    struct Chunks* chunks;
     struct Chunks* last_chunks;
+    struct Chunks* chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_647, sizeof(symbol_647)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_648, sizeof(symbol_648)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_649, sizeof(symbol_649)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_650, sizeof(symbol_650)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_651, sizeof(symbol_651)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_652, sizeof(symbol_652)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_653, sizeof(symbol_653)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2747,7 +2747,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_447, sizeof(symbol_447)-1);
+        data = buffer_from_cstring(symbol_446, sizeof(symbol_446)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2756,9 +2756,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_449, sizeof(symbol_449)-1);
+                data = buffer_from_cstring(symbol_448, sizeof(symbol_448)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2778,11 +2778,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_451, sizeof(symbol_451)-1);
+                            data = buffer_from_cstring(symbol_450, sizeof(symbol_450)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2803,7 +2803,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_460, sizeof(symbol_460)-1);
+        data = buffer_from_cstring(symbol_459, sizeof(symbol_459)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2812,9 +2812,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_462, sizeof(symbol_462)-1);
+                data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2834,11 +2834,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_464, sizeof(symbol_464)-1);
+                            data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2859,7 +2859,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_474, sizeof(symbol_474)-1);
+        data = buffer_from_cstring(symbol_473, sizeof(symbol_473)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2868,11 +2868,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_476, sizeof(symbol_476)-1);
+                    data = buffer_from_cstring(symbol_475, sizeof(symbol_475)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2892,11 +2892,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_478, sizeof(symbol_478)-1);
+                                data = buffer_from_cstring(symbol_477, sizeof(symbol_477)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2918,7 +2918,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_490, sizeof(symbol_490)-1);
+        data = buffer_from_cstring(symbol_493, sizeof(symbol_493)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2927,7 +2927,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2939,7 +2939,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2950,7 +2950,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2961,7 +2961,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2972,7 +2972,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2982,7 +2982,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_521, sizeof(symbol_521)-1);
+        data = buffer_from_cstring(symbol_532, sizeof(symbol_532)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2991,9 +2991,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_523, sizeof(symbol_523)-1);
+                data = buffer_from_cstring(symbol_534, sizeof(symbol_534)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3002,9 +3002,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_525, sizeof(symbol_525)-1);
+                        data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3013,9 +3013,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_527, sizeof(symbol_527)-1);
+                                data = buffer_from_cstring(symbol_538, sizeof(symbol_538)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3037,7 +3037,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_539, sizeof(symbol_539)-1);
+        data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3057,11 +3057,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_541, sizeof(symbol_541)-1);
+                    data = buffer_from_cstring(symbol_552, sizeof(symbol_552)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3095,7 +3095,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3119,7 +3119,7 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3149,7 +3149,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_553, sizeof(symbol_553)-1);
+    data = buffer_from_cstring(symbol_564, sizeof(symbol_564)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3162,7 +3162,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_554, sizeof(symbol_554)-1);
+    data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3175,7 +3175,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_555, sizeof(symbol_555)-1);
+    data = buffer_from_cstring(symbol_566, sizeof(symbol_566)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3188,7 +3188,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_556, sizeof(symbol_556)-1);
+    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3201,7 +3201,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_557, sizeof(symbol_557)-1);
+    data = buffer_from_cstring(symbol_568, sizeof(symbol_568)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3214,7 +3214,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_558, sizeof(symbol_558)-1);
+    data = buffer_from_cstring(symbol_569, sizeof(symbol_569)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3227,7 +3227,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_559, sizeof(symbol_559)-1);
+    data = buffer_from_cstring(symbol_570, sizeof(symbol_570)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3240,7 +3240,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_560, sizeof(symbol_560)-1);
+    data = buffer_from_cstring(symbol_571, sizeof(symbol_571)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3253,7 +3253,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_561, sizeof(symbol_561)-1);
+    data = buffer_from_cstring(symbol_572, sizeof(symbol_572)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3266,7 +3266,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
+    data = buffer_from_cstring(symbol_573, sizeof(symbol_573)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3295,7 +3295,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
+    data = buffer_from_cstring(symbol_574, sizeof(symbol_574)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3306,9 +3306,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
+                data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3317,11 +3317,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
+                            data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3357,14 +3357,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_581, sizeof(symbol_581)-1);
+    data = buffer_from_cstring(symbol_592, sizeof(symbol_592)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3373,9 +3373,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_583, sizeof(symbol_583)-1);
+            data = buffer_from_cstring(symbol_594, sizeof(symbol_594)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3384,9 +3384,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_585, sizeof(symbol_585)-1);
+                    data = buffer_from_cstring(symbol_596, sizeof(symbol_596)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3419,7 +3419,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
+    data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3439,9 +3439,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
+            data = buffer_from_cstring(symbol_606, sizeof(symbol_606)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3473,7 +3473,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3487,7 +3487,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3511,7 +3511,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_609, sizeof(symbol_609)-1);
+    data = buffer_from_cstring(symbol_620, sizeof(symbol_620)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3520,7 +3520,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3544,7 +3544,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_613, sizeof(symbol_613)-1);
+    data = buffer_from_cstring(symbol_624, sizeof(symbol_624)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3558,9 +3558,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_615, sizeof(symbol_615)-1);
+            data = buffer_from_cstring(symbol_626, sizeof(symbol_626)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3591,7 +3591,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_621, sizeof(symbol_621)-1);
+    data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3605,7 +3605,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
+    data = buffer_from_cstring(symbol_633, sizeof(symbol_633)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3662,7 +3662,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3689,7 +3689,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
+    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3718,7 +3718,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
+    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3731,7 +3731,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_633, sizeof(symbol_633)-1);
+    data = buffer_from_cstring(symbol_644, sizeof(symbol_644)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3783,7 +3783,7 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_646, sizeof(symbol_646)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3873,7 +3873,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
+    data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3886,7 +3886,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_644, sizeof(symbol_644)-1);
+    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3899,7 +3899,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_645, sizeof(symbol_645)-1);
+    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3912,7 +3912,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_646, sizeof(symbol_646)-1);
+    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3925,7 +3925,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_647, sizeof(symbol_647)-1);
+    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3938,7 +3938,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
+    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3951,7 +3951,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_649, sizeof(symbol_649)-1);
+    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3964,7 +3964,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_650, sizeof(symbol_650)-1);
+    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3977,7 +3977,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_651, sizeof(symbol_651)-1);
+    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3990,7 +3990,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
+    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4003,7 +4003,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
+    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4016,7 +4016,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
+    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4029,7 +4029,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
+    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4042,7 +4042,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
+    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4055,7 +4055,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
+    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4068,7 +4068,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
+    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4081,7 +4081,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
+    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4094,7 +4094,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
+    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4107,7 +4107,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
+    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4120,7 +4120,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
+    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4133,7 +4133,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
+    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4146,7 +4146,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
+    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4159,7 +4159,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
+    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4172,7 +4172,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
+    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4185,7 +4185,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
+    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4198,7 +4198,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
+    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4227,7 +4227,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
+    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4240,7 +4240,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4253,7 +4253,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
+    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4266,7 +4266,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
+    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4279,7 +4279,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
+    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4292,7 +4292,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
+    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4305,7 +4305,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
+    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4318,7 +4318,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
+    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4331,7 +4331,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
+    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4344,7 +4344,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
+    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4357,7 +4357,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
+    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4370,7 +4370,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
+    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4383,7 +4383,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
+    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4396,7 +4396,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
+    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4409,7 +4409,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
+    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4422,7 +4422,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
+    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4435,7 +4435,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
+    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4448,7 +4448,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
+    data = buffer_from_cstring(symbol_697, sizeof(symbol_697)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4461,7 +4461,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
+    data = buffer_from_cstring(symbol_698, sizeof(symbol_698)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4474,7 +4474,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
+    data = buffer_from_cstring(symbol_699, sizeof(symbol_699)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4487,7 +4487,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
+    data = buffer_from_cstring(symbol_700, sizeof(symbol_700)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4500,7 +4500,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
+    data = buffer_from_cstring(symbol_701, sizeof(symbol_701)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4513,7 +4513,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
+    data = buffer_from_cstring(symbol_702, sizeof(symbol_702)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4526,7 +4526,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
+    data = buffer_from_cstring(symbol_703, sizeof(symbol_703)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4539,7 +4539,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
+    data = buffer_from_cstring(symbol_704, sizeof(symbol_704)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4552,7 +4552,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
+    data = buffer_from_cstring(symbol_705, sizeof(symbol_705)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4615,7 +4615,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
+    data = buffer_from_cstring(symbol_706, sizeof(symbol_706)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4628,7 +4628,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
+    data = buffer_from_cstring(symbol_707, sizeof(symbol_707)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(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 57a6dda..7eb2be2 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -460,7 +460,6 @@ action =
         #inc(W[0] 1)
         >actions {
             "void action_" W[0] "(struct Runtime* runtime, struct Variables* variables) {\n" >
-                "struct Chunks* chunks;\n"
                 <actionVars
                 xs
             < "}\n"
@@ -500,6 +499,9 @@ actionexpr =
             unseen("last_chunks") -> {
                 "struct Chunks* " "last_chunks" ";\n"
             }
+            unseen("chunks") -> {
+                "struct Chunks* " "chunks" ";\n"
+            }
         }
         "last_chunks = runtime->current_chunks;\n"
         "chunks = runtime->named_chunks_" x ";\n"
@@ -508,6 +510,11 @@ actionexpr =
         "runtime->current_chunks = last_chunks;\n"
     }
     | space '<' chunkName:x -> {
+        >actionVars {
+            unseen("chunks") -> {
+                "struct Chunks* " "chunks" ";\n"
+            }
+        }
         "chunks = create_chunks();\n"
         "runtime->named_chunks_" x " = chunks;\n"
         "append_data(runtime->current_chunks, NULL, 0, chunks);\n"
@@ -529,6 +536,11 @@ actionexpr =
             < "}\n"
             "\n"
         }
+        >actionVars {
+            unseen("chunks") -> {
+                "struct Chunks* " "chunks" ";\n"
+            }
+        }
         "chunks = create_chunks();\n"
         "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_" W[1] ", variables, NULL, 0, 0));\n"
         "append_data(runtime->current_chunks, NULL, 0, chunks);\n"

commit 9903def5fdea474c5770a9a8ee143f83cc01dd2b
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 22:03:38 2025 +0100

    Only generate last_chunks if needed

diff --git a/src/meta/meta.c b/src/meta/meta.c
index 3338cad..3d6594b 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -718,257 +718,262 @@ static char symbol_437[] = "}";
 static char symbol_438[] = "void action_";
 static char symbol_439[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
 static char symbol_440[] = "struct Chunks* chunks;\n";
-static char symbol_441[] = "struct Chunks* last_chunks;\n";
-static char symbol_442[] = "xs";
-static char symbol_443[] = "}\n";
-static char symbol_444[] = "\n";
-static char symbol_445[] = "return create_action(action_";
-static char symbol_446[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_447[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_448[] = "unseen(";
-static char symbol_449[] = "x";
-static char symbol_450[] = ") -> {";
-static char symbol_451[] = "ys";
-static char symbol_452[] = "}";
-static char symbol_453[] = "action";
-static char symbol_454[] = "struct Action* action;\n";
-static char symbol_455[] = "action = lookup_action(variables, ";
-static char symbol_456[] = "x";
-static char symbol_457[] = ");\n";
-static char symbol_458[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_459[] = "ys";
-static char symbol_460[] = "}\n";
-static char symbol_461[] = "unseen(";
-static char symbol_462[] = "x";
-static char symbol_463[] = ") -> {";
-static char symbol_464[] = "ys";
-static char symbol_465[] = "}";
-static char symbol_466[] = "action";
-static char symbol_467[] = "struct Action* action;\n";
-static char symbol_468[] = "if (!seen(runtime->current_chunks, ";
-static char symbol_469[] = "x";
-static char symbol_470[] = ")) {\n";
-static char symbol_471[] = "ys";
-static char symbol_472[] = "}\n";
-static char symbol_473[] = ">";
-static char symbol_474[] = "x";
-static char symbol_475[] = "{";
-static char symbol_476[] = "ys";
-static char symbol_477[] = "}";
-static char symbol_478[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_479[] = "chunks = runtime->named_chunks_";
-static char symbol_480[] = "x";
-static char symbol_481[] = ";\n";
-static char symbol_482[] = "runtime->current_chunks = chunks;\n";
-static char symbol_483[] = "ys";
-static char symbol_484[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_485[] = "<";
-static char symbol_486[] = "x";
-static char symbol_487[] = "chunks = create_chunks();\n";
-static char symbol_488[] = "runtime->named_chunks_";
-static char symbol_489[] = "x";
-static char symbol_490[] = " = chunks;\n";
-static char symbol_491[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_492[] = "x";
-static char symbol_493[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_441[] = "xs";
+static char symbol_442[] = "}\n";
+static char symbol_443[] = "\n";
+static char symbol_444[] = "return create_action(action_";
+static char symbol_445[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_446[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_447[] = "unseen(";
+static char symbol_448[] = "x";
+static char symbol_449[] = ") -> {";
+static char symbol_450[] = "ys";
+static char symbol_451[] = "}";
+static char symbol_452[] = "action";
+static char symbol_453[] = "struct Action* action;\n";
+static char symbol_454[] = "action = lookup_action(variables, ";
+static char symbol_455[] = "x";
+static char symbol_456[] = ");\n";
+static char symbol_457[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_458[] = "ys";
+static char symbol_459[] = "}\n";
+static char symbol_460[] = "unseen(";
+static char symbol_461[] = "x";
+static char symbol_462[] = ") -> {";
+static char symbol_463[] = "ys";
+static char symbol_464[] = "}";
+static char symbol_465[] = "action";
+static char symbol_466[] = "struct Action* ";
+static char symbol_467[] = "action";
+static char symbol_468[] = ";\n";
+static char symbol_469[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_470[] = "x";
+static char symbol_471[] = ")) {\n";
+static char symbol_472[] = "ys";
+static char symbol_473[] = "}\n";
+static char symbol_474[] = ">";
+static char symbol_475[] = "x";
+static char symbol_476[] = "{";
+static char symbol_477[] = "ys";
+static char symbol_478[] = "}";
+static char symbol_479[] = "last_chunks";
+static char symbol_480[] = "struct Chunks* ";
+static char symbol_481[] = "last_chunks";
+static char symbol_482[] = ";\n";
+static char symbol_483[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_484[] = "chunks = runtime->named_chunks_";
+static char symbol_485[] = "x";
+static char symbol_486[] = ";\n";
+static char symbol_487[] = "runtime->current_chunks = chunks;\n";
+static char symbol_488[] = "ys";
+static char symbol_489[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_490[] = "<";
+static char symbol_491[] = "x";
+static char symbol_492[] = "chunks = create_chunks();\n";
+static char symbol_493[] = "runtime->named_chunks_";
 static char symbol_494[] = "x";
-static char symbol_495[] = "), 0, NULL);\n";
-static char symbol_496[] = "x";
-static char symbol_497[] = "run_action(lookup_action(variables, ";
-static char symbol_498[] = "x";
-static char symbol_499[] = "), runtime);\n";
-static char symbol_500[] = "x";
-static char symbol_501[] = "void placeholder_";
-static char symbol_502[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_503[] = "void placeholder_";
-static char symbol_504[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_495[] = " = chunks;\n";
+static char symbol_496[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_497[] = "x";
+static char symbol_498[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_499[] = "x";
+static char symbol_500[] = "), 0, NULL);\n";
+static char symbol_501[] = "x";
+static char symbol_502[] = "run_action(lookup_action(variables, ";
+static char symbol_503[] = "x";
+static char symbol_504[] = "), runtime);\n";
 static char symbol_505[] = "x";
-static char symbol_506[] = "}\n";
-static char symbol_507[] = "\n";
-static char symbol_508[] = "chunks = create_chunks();\n";
-static char symbol_509[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_510[] = ", variables, NULL, 0, 0));\n";
-static char symbol_511[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_512[] = "x";
-static char symbol_513[] = "append_data(runtime->current_chunks, ";
-static char symbol_514[] = "x";
-static char symbol_515[] = ", 0, NULL);\n";
-static char symbol_516[] = "#";
+static char symbol_506[] = "void placeholder_";
+static char symbol_507[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_508[] = "void placeholder_";
+static char symbol_509[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_510[] = "x";
+static char symbol_511[] = "}\n";
+static char symbol_512[] = "\n";
+static char symbol_513[] = "chunks = create_chunks();\n";
+static char symbol_514[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_515[] = ", variables, NULL, 0, 0));\n";
+static char symbol_516[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
 static char symbol_517[] = "x";
-static char symbol_518[] = "(";
-static char symbol_519[] = "y";
-static char symbol_520[] = " ";
-static char symbol_521[] = "z";
-static char symbol_522[] = ")";
-static char symbol_523[] = "runtime->W_";
+static char symbol_518[] = "append_data(runtime->current_chunks, ";
+static char symbol_519[] = "x";
+static char symbol_520[] = ", 0, NULL);\n";
+static char symbol_521[] = "#";
+static char symbol_522[] = "x";
+static char symbol_523[] = "(";
 static char symbol_524[] = "y";
-static char symbol_525[] = " = ";
-static char symbol_526[] = "x";
-static char symbol_527[] = "(runtime->W_";
-static char symbol_528[] = "y";
-static char symbol_529[] = " ? runtime->W_";
-static char symbol_530[] = "y";
-static char symbol_531[] = " : 0, ";
-static char symbol_532[] = "z";
-static char symbol_533[] = ");\n";
-static char symbol_534[] = ">";
-static char symbol_535[] = "xs";
-static char symbol_536[] = "<";
-static char symbol_537[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_538[] = "xs";
-static char symbol_539[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_540[] = "x";
-static char symbol_541[] = "x";
-static char symbol_542[] = "struct Chunks* named_chunks_";
-static char symbol_543[] = "x";
-static char symbol_544[] = ";\n";
+static char symbol_525[] = " ";
+static char symbol_526[] = "z";
+static char symbol_527[] = ")";
+static char symbol_528[] = "runtime->W_";
+static char symbol_529[] = "y";
+static char symbol_530[] = " = ";
+static char symbol_531[] = "x";
+static char symbol_532[] = "(runtime->W_";
+static char symbol_533[] = "y";
+static char symbol_534[] = " ? runtime->W_";
+static char symbol_535[] = "y";
+static char symbol_536[] = " : 0, ";
+static char symbol_537[] = "z";
+static char symbol_538[] = ");\n";
+static char symbol_539[] = ">";
+static char symbol_540[] = "xs";
+static char symbol_541[] = "<";
+static char symbol_542[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_543[] = "xs";
+static char symbol_544[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
 static char symbol_545[] = "x";
 static char symbol_546[] = "x";
-static char symbol_547[] = "x";
-static char symbol_548[] = "0";
-static char symbol_549[] = "1";
-static char symbol_550[] = "2";
-static char symbol_551[] = "3";
-static char symbol_552[] = "4";
-static char symbol_553[] = "5";
-static char symbol_554[] = "6";
-static char symbol_555[] = "7";
-static char symbol_556[] = "8";
-static char symbol_557[] = "9";
-static char symbol_558[] = "{";
-static char symbol_559[] = "x";
-static char symbol_560[] = "*";
-static char symbol_561[] = "y";
-static char symbol_562[] = "}";
-static char symbol_563[] = "for (int i=0; i < ";
-static char symbol_564[] = "y";
-static char symbol_565[] = "; i++) {\n";
-static char symbol_566[] = "append_data(runtime->current_chunks, ";
-static char symbol_567[] = "x";
-static char symbol_568[] = ", 0, NULL);\n";
-static char symbol_569[] = "}\n";
-static char symbol_570[] = "x";
-static char symbol_571[] = "(runtime->W_";
+static char symbol_547[] = "struct Chunks* named_chunks_";
+static char symbol_548[] = "x";
+static char symbol_549[] = ";\n";
+static char symbol_550[] = "x";
+static char symbol_551[] = "x";
+static char symbol_552[] = "x";
+static char symbol_553[] = "0";
+static char symbol_554[] = "1";
+static char symbol_555[] = "2";
+static char symbol_556[] = "3";
+static char symbol_557[] = "4";
+static char symbol_558[] = "5";
+static char symbol_559[] = "6";
+static char symbol_560[] = "7";
+static char symbol_561[] = "8";
+static char symbol_562[] = "9";
+static char symbol_563[] = "{";
+static char symbol_564[] = "x";
+static char symbol_565[] = "*";
+static char symbol_566[] = "y";
+static char symbol_567[] = "}";
+static char symbol_568[] = "for (int i=0; i < ";
+static char symbol_569[] = "y";
+static char symbol_570[] = "; i++) {\n";
+static char symbol_571[] = "append_data(runtime->current_chunks, ";
 static char symbol_572[] = "x";
-static char symbol_573[] = " ? runtime->W_";
-static char symbol_574[] = "x";
-static char symbol_575[] = " : 0)";
-static char symbol_576[] = "(";
+static char symbol_573[] = ", 0, NULL);\n";
+static char symbol_574[] = "}\n";
+static char symbol_575[] = "x";
+static char symbol_576[] = "(runtime->W_";
 static char symbol_577[] = "x";
-static char symbol_578[] = "-";
-static char symbol_579[] = "y";
-static char symbol_580[] = ")";
-static char symbol_581[] = "((runtime->W_";
+static char symbol_578[] = " ? runtime->W_";
+static char symbol_579[] = "x";
+static char symbol_580[] = " : 0)";
+static char symbol_581[] = "(";
 static char symbol_582[] = "x";
-static char symbol_583[] = " ? runtime->W_";
-static char symbol_584[] = "x";
-static char symbol_585[] = " : 0)-";
-static char symbol_586[] = "y";
-static char symbol_587[] = ")";
-static char symbol_588[] = "\"";
-static char symbol_589[] = "xs";
-static char symbol_590[] = "\"";
-static char symbol_591[] = "static char symbol_";
-static char symbol_592[] = "[] = \"";
-static char symbol_593[] = "xs";
-static char symbol_594[] = "\";\n";
-static char symbol_595[] = "buffer_from_cstring(symbol_";
-static char symbol_596[] = ", sizeof(symbol_";
-static char symbol_597[] = ")-1)";
-static char symbol_598[] = "x";
-static char symbol_599[] = "xs";
-static char symbol_600[] = "lookup_action(variables, ";
-static char symbol_601[] = "x";
-static char symbol_602[] = ")";
-static char symbol_603[] = "xs";
-static char symbol_604[] = ".";
-static char symbol_605[] = "x";
-static char symbol_606[] = "->";
-static char symbol_607[] = "x";
-static char symbol_608[] = "W[";
-static char symbol_609[] = "x";
-static char symbol_610[] = "]";
-static char symbol_611[] = "x";
-static char symbol_612[] = "unsigned int W_";
-static char symbol_613[] = "x";
-static char symbol_614[] = ";\n";
-static char symbol_615[] = "x";
-static char symbol_616[] = "\\\"";
-static char symbol_617[] = "\"";
-static char symbol_618[] = "xs";
-static char symbol_619[] = "static char symbol_";
-static char symbol_620[] = "[] = \"";
-static char symbol_621[] = "xs";
-static char symbol_622[] = "\";\n";
-static char symbol_623[] = "buffer_from_cstring(symbol_";
-static char symbol_624[] = ", sizeof(symbol_";
-static char symbol_625[] = ")-1)";
-static char symbol_626[] = "\'";
-static char symbol_627[] = "\\\'";
-static char symbol_628[] = "\"";
-static char symbol_629[] = "\\\"";
-static char symbol_630[] = "x";
-static char symbol_631[] = "static char symbol_";
-static char symbol_632[] = "[] = \"";
-static char symbol_633[] = "x";
-static char symbol_634[] = "\";\n";
-static char symbol_635[] = "buffer_from_cstring(symbol_";
-static char symbol_636[] = ", sizeof(symbol_";
-static char symbol_637[] = ")-1)";
-static char symbol_638[] = "a";
-static char symbol_639[] = "b";
-static char symbol_640[] = "c";
-static char symbol_641[] = "d";
-static char symbol_642[] = "e";
-static char symbol_643[] = "f";
-static char symbol_644[] = "g";
-static char symbol_645[] = "h";
-static char symbol_646[] = "i";
-static char symbol_647[] = "j";
-static char symbol_648[] = "k";
-static char symbol_649[] = "l";
-static char symbol_650[] = "m";
-static char symbol_651[] = "n";
-static char symbol_652[] = "o";
-static char symbol_653[] = "p";
-static char symbol_654[] = "q";
-static char symbol_655[] = "r";
-static char symbol_656[] = "s";
-static char symbol_657[] = "t";
-static char symbol_658[] = "u";
-static char symbol_659[] = "v";
-static char symbol_660[] = "w";
-static char symbol_661[] = "x";
-static char symbol_662[] = "y";
-static char symbol_663[] = "z";
-static char symbol_664[] = "A";
-static char symbol_665[] = "B";
-static char symbol_666[] = "C";
-static char symbol_667[] = "D";
-static char symbol_668[] = "E";
-static char symbol_669[] = "F";
-static char symbol_670[] = "G";
-static char symbol_671[] = "H";
-static char symbol_672[] = "I";
-static char symbol_673[] = "J";
-static char symbol_674[] = "K";
-static char symbol_675[] = "L";
-static char symbol_676[] = "M";
-static char symbol_677[] = "N";
-static char symbol_678[] = "O";
-static char symbol_679[] = "P";
-static char symbol_680[] = "Q";
-static char symbol_681[] = "R";
-static char symbol_682[] = "S";
-static char symbol_683[] = "T";
-static char symbol_684[] = "U";
-static char symbol_685[] = "V";
-static char symbol_686[] = "W";
-static char symbol_687[] = "X";
-static char symbol_688[] = "Y";
-static char symbol_689[] = "Z";
-static char symbol_690[] = " ";
-static char symbol_691[] = "\n";
+static char symbol_583[] = "-";
+static char symbol_584[] = "y";
+static char symbol_585[] = ")";
+static char symbol_586[] = "((runtime->W_";
+static char symbol_587[] = "x";
+static char symbol_588[] = " ? runtime->W_";
+static char symbol_589[] = "x";
+static char symbol_590[] = " : 0)-";
+static char symbol_591[] = "y";
+static char symbol_592[] = ")";
+static char symbol_593[] = "\"";
+static char symbol_594[] = "xs";
+static char symbol_595[] = "\"";
+static char symbol_596[] = "static char symbol_";
+static char symbol_597[] = "[] = \"";
+static char symbol_598[] = "xs";
+static char symbol_599[] = "\";\n";
+static char symbol_600[] = "buffer_from_cstring(symbol_";
+static char symbol_601[] = ", sizeof(symbol_";
+static char symbol_602[] = ")-1)";
+static char symbol_603[] = "x";
+static char symbol_604[] = "xs";
+static char symbol_605[] = "lookup_action(variables, ";
+static char symbol_606[] = "x";
+static char symbol_607[] = ")";
+static char symbol_608[] = "xs";
+static char symbol_609[] = ".";
+static char symbol_610[] = "x";
+static char symbol_611[] = "->";
+static char symbol_612[] = "x";
+static char symbol_613[] = "W[";
+static char symbol_614[] = "x";
+static char symbol_615[] = "]";
+static char symbol_616[] = "x";
+static char symbol_617[] = "unsigned int W_";
+static char symbol_618[] = "x";
+static char symbol_619[] = ";\n";
+static char symbol_620[] = "x";
+static char symbol_621[] = "\\\"";
+static char symbol_622[] = "\"";
+static char symbol_623[] = "xs";
+static char symbol_624[] = "static char symbol_";
+static char symbol_625[] = "[] = \"";
+static char symbol_626[] = "xs";
+static char symbol_627[] = "\";\n";
+static char symbol_628[] = "buffer_from_cstring(symbol_";
+static char symbol_629[] = ", sizeof(symbol_";
+static char symbol_630[] = ")-1)";
+static char symbol_631[] = "\'";
+static char symbol_632[] = "\\\'";
+static char symbol_633[] = "\"";
+static char symbol_634[] = "\\\"";
+static char symbol_635[] = "x";
+static char symbol_636[] = "static char symbol_";
+static char symbol_637[] = "[] = \"";
+static char symbol_638[] = "x";
+static char symbol_639[] = "\";\n";
+static char symbol_640[] = "buffer_from_cstring(symbol_";
+static char symbol_641[] = ", sizeof(symbol_";
+static char symbol_642[] = ")-1)";
+static char symbol_643[] = "a";
+static char symbol_644[] = "b";
+static char symbol_645[] = "c";
+static char symbol_646[] = "d";
+static char symbol_647[] = "e";
+static char symbol_648[] = "f";
+static char symbol_649[] = "g";
+static char symbol_650[] = "h";
+static char symbol_651[] = "i";
+static char symbol_652[] = "j";
+static char symbol_653[] = "k";
+static char symbol_654[] = "l";
+static char symbol_655[] = "m";
+static char symbol_656[] = "n";
+static char symbol_657[] = "o";
+static char symbol_658[] = "p";
+static char symbol_659[] = "q";
+static char symbol_660[] = "r";
+static char symbol_661[] = "s";
+static char symbol_662[] = "t";
+static char symbol_663[] = "u";
+static char symbol_664[] = "v";
+static char symbol_665[] = "w";
+static char symbol_666[] = "x";
+static char symbol_667[] = "y";
+static char symbol_668[] = "z";
+static char symbol_669[] = "A";
+static char symbol_670[] = "B";
+static char symbol_671[] = "C";
+static char symbol_672[] = "D";
+static char symbol_673[] = "E";
+static char symbol_674[] = "F";
+static char symbol_675[] = "G";
+static char symbol_676[] = "H";
+static char symbol_677[] = "I";
+static char symbol_678[] = "J";
+static char symbol_679[] = "K";
+static char symbol_680[] = "L";
+static char symbol_681[] = "M";
+static char symbol_682[] = "N";
+static char symbol_683[] = "O";
+static char symbol_684[] = "P";
+static char symbol_685[] = "Q";
+static char symbol_686[] = "R";
+static char symbol_687[] = "S";
+static char symbol_688[] = "T";
+static char symbol_689[] = "U";
+static char symbol_690[] = "V";
+static char symbol_691[] = "W";
+static char symbol_692[] = "X";
+static char symbol_693[] = "Y";
+static char symbol_694[] = "Z";
+static char symbol_695[] = " ";
+static char symbol_696[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1010,13 +1015,11 @@ struct Action* rule_spacechar(struct ParseState* parse_state);
 
 void action_1(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_2, sizeof(symbol_2)-1)), runtime);
 }
 
 void action_2(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_4, sizeof(symbol_4)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_5, sizeof(symbol_5)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_6, sizeof(symbol_6)-1), 0, NULL);
@@ -1475,7 +1478,6 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
 
 void action_4(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1)), runtime);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1)), runtime);
@@ -1483,18 +1485,15 @@ void action_4(struct Runtime* runtime, struct Variables* variables) {
 
 void action_5(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
 }
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
@@ -1503,7 +1502,6 @@ void action_7(struct Runtime* runtime, struct Variables* variables) {
 
 void action_8(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
@@ -1514,13 +1512,11 @@ void action_8(struct Runtime* runtime, struct Variables* variables) {
 
 void action_9(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
@@ -1537,7 +1533,6 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
 
 void action_11(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
@@ -1554,14 +1549,12 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
 
 void action_12(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1)), runtime);
 }
 
 void action_13(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
@@ -1569,12 +1562,10 @@ void action_13(struct Runtime* runtime, struct Variables* variables) {
 
 void action_14(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
 }
 
 void action_15(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
@@ -1595,13 +1586,11 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
 
 void action_16(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1)), runtime);
@@ -1609,30 +1598,25 @@ void action_17(struct Runtime* runtime, struct Variables* variables) {
 
 void action_18(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
 }
 
 void action_19(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
 }
 
 void action_20(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
@@ -1640,7 +1624,6 @@ void action_22(struct Runtime* runtime, struct Variables* variables) {
 
 void action_23(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1)), runtime);
@@ -1658,7 +1641,6 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
 
 void action_24(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
@@ -1673,7 +1655,6 @@ void action_24(struct Runtime* runtime, struct Variables* variables) {
 
 void action_25(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
@@ -1701,24 +1682,22 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_439, sizeof(symbol_439)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
     chunks = create_chunks();
     runtime->named_chunks_actionVars = chunks;
     append_data(runtime->current_chunks, NULL, 0, chunks);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
@@ -1728,18 +1707,18 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
@@ -1749,55 +1728,64 @@ void action_29(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1))) {
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
         append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1)), runtime);
+    struct Action* action;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_actionVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
 }
 
 void action_34(struct Runtime* runtime, struct Variables* variables) {
@@ -1807,59 +1795,56 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
 }
 
 void action_35(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
 }
 
 void action_36(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_536, sizeof(symbol_536)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1), 0, NULL);
 }
 
 void action_37(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
 }
 
 void action_38(struct Runtime* runtime, struct Variables* variables) {
@@ -1869,56 +1854,52 @@ void action_38(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_549, sizeof(symbol_549)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1)), runtime);
 }
 
 void action_40(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), 0, NULL);
-    append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1), 0, NULL);
 }
 
 void action_41(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1), 0, NULL);
 }
 
 void action_42(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), 0, NULL);
 }
 
 void action_43(struct Runtime* runtime, struct Variables* variables) {
@@ -1928,33 +1909,31 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
 }
 
 void action_44(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
 }
 
 void action_45(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1)), runtime);
 }
 
 void action_46(struct Runtime* runtime, struct Variables* variables) {
@@ -1964,14 +1943,14 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1)), runtime);
 }
 
 void action_47(struct Runtime* runtime, struct Variables* variables) {
@@ -1981,23 +1960,22 @@ void action_47(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_626, sizeof(symbol_626)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_627, sizeof(symbol_627)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_628, sizeof(symbol_628)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
-    struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
 }
 
 void action_49(struct Runtime* runtime, struct Variables* variables) {
@@ -2007,17 +1985,17 @@ void action_49(struct Runtime* runtime, struct Variables* variables) {
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_638, sizeof(symbol_638)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_639, sizeof(symbol_639)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_640, sizeof(symbol_640)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_641, sizeof(symbol_641)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_642, sizeof(symbol_642)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2769,7 +2747,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_448, sizeof(symbol_448)-1);
+        data = buffer_from_cstring(symbol_447, sizeof(symbol_447)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2778,9 +2756,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_450, sizeof(symbol_450)-1);
+                data = buffer_from_cstring(symbol_449, sizeof(symbol_449)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2800,11 +2778,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_452, sizeof(symbol_452)-1);
+                            data = buffer_from_cstring(symbol_451, sizeof(symbol_451)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2825,7 +2803,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
+        data = buffer_from_cstring(symbol_460, sizeof(symbol_460)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2834,9 +2812,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
+                data = buffer_from_cstring(symbol_462, sizeof(symbol_462)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2856,11 +2834,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_465, sizeof(symbol_465)-1);
+                            data = buffer_from_cstring(symbol_464, sizeof(symbol_464)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2881,7 +2859,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_473, sizeof(symbol_473)-1);
+        data = buffer_from_cstring(symbol_474, sizeof(symbol_474)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2890,11 +2868,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_475, sizeof(symbol_475)-1);
+                    data = buffer_from_cstring(symbol_476, sizeof(symbol_476)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2914,11 +2892,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_477, sizeof(symbol_477)-1);
+                                data = buffer_from_cstring(symbol_478, sizeof(symbol_478)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2940,7 +2918,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_485, sizeof(symbol_485)-1);
+        data = buffer_from_cstring(symbol_490, sizeof(symbol_490)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2949,7 +2927,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), _);
             if (_) {
                 return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
@@ -2961,7 +2939,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), _);
         if (_) {
             return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2972,7 +2950,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), _);
         if (_) {
             return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2983,7 +2961,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1), _);
         if (_) {
             return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -2994,7 +2972,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), _);
         if (_) {
             return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3004,7 +2982,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_516, sizeof(symbol_516)-1);
+        data = buffer_from_cstring(symbol_521, sizeof(symbol_521)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3013,9 +2991,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_518, sizeof(symbol_518)-1);
+                data = buffer_from_cstring(symbol_523, sizeof(symbol_523)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3024,9 +3002,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_520, sizeof(symbol_520)-1);
+                        data = buffer_from_cstring(symbol_525, sizeof(symbol_525)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3035,9 +3013,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_522, sizeof(symbol_522)-1);
+                                data = buffer_from_cstring(symbol_527, sizeof(symbol_527)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3059,7 +3037,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_534, sizeof(symbol_534)-1);
+        data = buffer_from_cstring(symbol_539, sizeof(symbol_539)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3079,11 +3057,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
+                    data = buffer_from_cstring(symbol_541, sizeof(symbol_541)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3117,7 +3095,7 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1), _);
     if (_) {
         return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3141,7 +3119,7 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1), _);
     if (_) {
         return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3171,7 +3149,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_548, sizeof(symbol_548)-1);
+    data = buffer_from_cstring(symbol_553, sizeof(symbol_553)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3184,7 +3162,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_549, sizeof(symbol_549)-1);
+    data = buffer_from_cstring(symbol_554, sizeof(symbol_554)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3197,7 +3175,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
+    data = buffer_from_cstring(symbol_555, sizeof(symbol_555)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3210,7 +3188,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_551, sizeof(symbol_551)-1);
+    data = buffer_from_cstring(symbol_556, sizeof(symbol_556)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3223,7 +3201,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_552, sizeof(symbol_552)-1);
+    data = buffer_from_cstring(symbol_557, sizeof(symbol_557)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3236,7 +3214,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_553, sizeof(symbol_553)-1);
+    data = buffer_from_cstring(symbol_558, sizeof(symbol_558)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3249,7 +3227,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_554, sizeof(symbol_554)-1);
+    data = buffer_from_cstring(symbol_559, sizeof(symbol_559)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3262,7 +3240,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_555, sizeof(symbol_555)-1);
+    data = buffer_from_cstring(symbol_560, sizeof(symbol_560)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3275,7 +3253,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_556, sizeof(symbol_556)-1);
+    data = buffer_from_cstring(symbol_561, sizeof(symbol_561)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3288,7 +3266,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_557, sizeof(symbol_557)-1);
+    data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3317,7 +3295,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_558, sizeof(symbol_558)-1);
+    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3328,9 +3306,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_560, sizeof(symbol_560)-1);
+                data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3339,11 +3317,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
+                            data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3379,14 +3357,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), _);
     if (_) {
         return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
+    data = buffer_from_cstring(symbol_581, sizeof(symbol_581)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3395,9 +3373,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
+            data = buffer_from_cstring(symbol_583, sizeof(symbol_583)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3406,9 +3384,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_580, sizeof(symbol_580)-1);
+                    data = buffer_from_cstring(symbol_585, sizeof(symbol_585)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3441,7 +3419,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
+    data = buffer_from_cstring(symbol_593, sizeof(symbol_593)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3461,9 +3439,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
+            data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3495,7 +3473,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3509,7 +3487,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_604, sizeof(symbol_604)-1), _);
         if (_) {
             return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3533,7 +3511,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
+    data = buffer_from_cstring(symbol_609, sizeof(symbol_609)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3542,7 +3520,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), _);
         if (_) {
             return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
@@ -3566,7 +3544,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_608, sizeof(symbol_608)-1);
+    data = buffer_from_cstring(symbol_613, sizeof(symbol_613)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3580,9 +3558,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
+            data = buffer_from_cstring(symbol_615, sizeof(symbol_615)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3613,7 +3591,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_616, sizeof(symbol_616)-1);
+    data = buffer_from_cstring(symbol_621, sizeof(symbol_621)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3627,7 +3605,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_617, sizeof(symbol_617)-1);
+    data = buffer_from_cstring(symbol_622, sizeof(symbol_622)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3684,7 +3662,7 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
@@ -3711,7 +3689,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_626, sizeof(symbol_626)-1);
+    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3740,7 +3718,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_627, sizeof(symbol_627)-1);
+    data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3753,7 +3731,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_628, sizeof(symbol_628)-1);
+    data = buffer_from_cstring(symbol_633, sizeof(symbol_633)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3805,7 +3783,7 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), _);
     if (_) {
         return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
@@ -3895,7 +3873,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_638, sizeof(symbol_638)-1);
+    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3908,7 +3886,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_639, sizeof(symbol_639)-1);
+    data = buffer_from_cstring(symbol_644, sizeof(symbol_644)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3921,7 +3899,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_640, sizeof(symbol_640)-1);
+    data = buffer_from_cstring(symbol_645, sizeof(symbol_645)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3934,7 +3912,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
+    data = buffer_from_cstring(symbol_646, sizeof(symbol_646)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3947,7 +3925,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
+    data = buffer_from_cstring(symbol_647, sizeof(symbol_647)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3960,7 +3938,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
+    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3973,7 +3951,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_644, sizeof(symbol_644)-1);
+    data = buffer_from_cstring(symbol_649, sizeof(symbol_649)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3986,7 +3964,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_645, sizeof(symbol_645)-1);
+    data = buffer_from_cstring(symbol_650, sizeof(symbol_650)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3999,7 +3977,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_646, sizeof(symbol_646)-1);
+    data = buffer_from_cstring(symbol_651, sizeof(symbol_651)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4012,7 +3990,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_647, sizeof(symbol_647)-1);
+    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4025,7 +4003,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
+    data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4038,7 +4016,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_649, sizeof(symbol_649)-1);
+    data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4051,7 +4029,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_650, sizeof(symbol_650)-1);
+    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4064,7 +4042,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_651, sizeof(symbol_651)-1);
+    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4077,7 +4055,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
+    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4090,7 +4068,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
+    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4103,7 +4081,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
+    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4116,7 +4094,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
+    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4129,7 +4107,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
+    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4142,7 +4120,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
+    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4155,7 +4133,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
+    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4168,7 +4146,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
+    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4181,7 +4159,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
+    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4194,7 +4172,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
+    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4207,7 +4185,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
+    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4220,7 +4198,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
+    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4249,7 +4227,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
+    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4262,7 +4240,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
+    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4275,7 +4253,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
+    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4288,7 +4266,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
+    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4301,7 +4279,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
+    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4314,7 +4292,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
+    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4327,7 +4305,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4340,7 +4318,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
+    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4353,7 +4331,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
+    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4366,7 +4344,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
+    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4379,7 +4357,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
+    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4392,7 +4370,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
+    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4405,7 +4383,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
+    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4418,7 +4396,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
+    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4431,7 +4409,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
+    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4444,7 +4422,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
+    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4457,7 +4435,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
+    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4470,7 +4448,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
+    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4483,7 +4461,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
+    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4496,7 +4474,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
+    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4509,7 +4487,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
+    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4522,7 +4500,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
+    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4535,7 +4513,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
+    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4548,7 +4526,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
+    data = buffer_from_cstring(symbol_692, sizeof(symbol_692)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4561,7 +4539,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
+    data = buffer_from_cstring(symbol_693, sizeof(symbol_693)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4574,7 +4552,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
+    data = buffer_from_cstring(symbol_694, sizeof(symbol_694)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4637,7 +4615,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
+    data = buffer_from_cstring(symbol_695, sizeof(symbol_695)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4650,7 +4628,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
+    data = buffer_from_cstring(symbol_696, sizeof(symbol_696)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(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 f8f87ce..57a6dda 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -461,7 +461,6 @@ action =
         >actions {
             "void action_" W[0] "(struct Runtime* runtime, struct Variables* variables) {\n" >
                 "struct Chunks* chunks;\n"
-                "struct Chunks* last_chunks;\n"
                 <actionVars
                 xs
             < "}\n"
@@ -489,7 +488,7 @@ actionexpr =
     | space 'unseen(' string:x ') -> {' actionexpr*:ys space '}' -> {
         >actionVars {
             unseen("action") -> {
-                "struct Action* action;\n"
+                "struct Action* " "action" ";\n"
             }
         }
         "if (!seen(runtime->current_chunks, " x ")) {\n" >
@@ -497,6 +496,11 @@ actionexpr =
         < "}\n"
     }
     | space '>' chunkName:x space '{' actionexpr*:ys space '}' -> {
+        >actionVars {
+            unseen("last_chunks") -> {
+                "struct Chunks* " "last_chunks" ";\n"
+            }
+        }
         "last_chunks = runtime->current_chunks;\n"
         "chunks = runtime->named_chunks_" x ";\n"
         "runtime->current_chunks = chunks;\n"

commit d1551376760d1348552ba813acffac9ca7c4c347
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 21:58:14 2025 +0100

    Support unseen of strings

diff --git a/src/meta/meta.c b/src/meta/meta.c
index 518e072..3338cad 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -730,232 +730,245 @@ static char symbol_449[] = "x";
 static char symbol_450[] = ") -> {";
 static char symbol_451[] = "ys";
 static char symbol_452[] = "}";
-static char symbol_453[] = "struct Action* action;\n";
-static char symbol_454[] = "action = lookup_action(variables, ";
-static char symbol_455[] = "x";
-static char symbol_456[] = ");\n";
-static char symbol_457[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
-static char symbol_458[] = "ys";
-static char symbol_459[] = "}\n";
-static char symbol_460[] = ">";
-static char symbol_461[] = "x";
-static char symbol_462[] = "{";
-static char symbol_463[] = "ys";
-static char symbol_464[] = "}";
-static char symbol_465[] = "last_chunks = runtime->current_chunks;\n";
-static char symbol_466[] = "chunks = runtime->named_chunks_";
-static char symbol_467[] = "x";
-static char symbol_468[] = ";\n";
-static char symbol_469[] = "runtime->current_chunks = chunks;\n";
-static char symbol_470[] = "ys";
-static char symbol_471[] = "runtime->current_chunks = last_chunks;\n";
-static char symbol_472[] = "<";
-static char symbol_473[] = "x";
-static char symbol_474[] = "chunks = create_chunks();\n";
-static char symbol_475[] = "runtime->named_chunks_";
-static char symbol_476[] = "x";
-static char symbol_477[] = " = chunks;\n";
-static char symbol_478[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_479[] = "x";
-static char symbol_480[] = "append_data(runtime->current_chunks, buffer_from_integer(";
-static char symbol_481[] = "x";
-static char symbol_482[] = "), 0, NULL);\n";
-static char symbol_483[] = "x";
-static char symbol_484[] = "run_action(lookup_action(variables, ";
-static char symbol_485[] = "x";
-static char symbol_486[] = "), runtime);\n";
-static char symbol_487[] = "x";
-static char symbol_488[] = "void placeholder_";
-static char symbol_489[] = "(struct Runtime* runtime, struct Variables* variables);";
-static char symbol_490[] = "void placeholder_";
-static char symbol_491[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_453[] = "action";
+static char symbol_454[] = "struct Action* action;\n";
+static char symbol_455[] = "action = lookup_action(variables, ";
+static char symbol_456[] = "x";
+static char symbol_457[] = ");\n";
+static char symbol_458[] = "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n";
+static char symbol_459[] = "ys";
+static char symbol_460[] = "}\n";
+static char symbol_461[] = "unseen(";
+static char symbol_462[] = "x";
+static char symbol_463[] = ") -> {";
+static char symbol_464[] = "ys";
+static char symbol_465[] = "}";
+static char symbol_466[] = "action";
+static char symbol_467[] = "struct Action* action;\n";
+static char symbol_468[] = "if (!seen(runtime->current_chunks, ";
+static char symbol_469[] = "x";
+static char symbol_470[] = ")) {\n";
+static char symbol_471[] = "ys";
+static char symbol_472[] = "}\n";
+static char symbol_473[] = ">";
+static char symbol_474[] = "x";
+static char symbol_475[] = "{";
+static char symbol_476[] = "ys";
+static char symbol_477[] = "}";
+static char symbol_478[] = "last_chunks = runtime->current_chunks;\n";
+static char symbol_479[] = "chunks = runtime->named_chunks_";
+static char symbol_480[] = "x";
+static char symbol_481[] = ";\n";
+static char symbol_482[] = "runtime->current_chunks = chunks;\n";
+static char symbol_483[] = "ys";
+static char symbol_484[] = "runtime->current_chunks = last_chunks;\n";
+static char symbol_485[] = "<";
+static char symbol_486[] = "x";
+static char symbol_487[] = "chunks = create_chunks();\n";
+static char symbol_488[] = "runtime->named_chunks_";
+static char symbol_489[] = "x";
+static char symbol_490[] = " = chunks;\n";
+static char symbol_491[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
 static char symbol_492[] = "x";
-static char symbol_493[] = "}\n";
-static char symbol_494[] = "\n";
-static char symbol_495[] = "chunks = create_chunks();\n";
-static char symbol_496[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
-static char symbol_497[] = ", variables, NULL, 0, 0));\n";
-static char symbol_498[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
-static char symbol_499[] = "x";
-static char symbol_500[] = "append_data(runtime->current_chunks, ";
-static char symbol_501[] = "x";
-static char symbol_502[] = ", 0, NULL);\n";
-static char symbol_503[] = "#";
-static char symbol_504[] = "x";
-static char symbol_505[] = "(";
-static char symbol_506[] = "y";
-static char symbol_507[] = " ";
-static char symbol_508[] = "z";
-static char symbol_509[] = ")";
-static char symbol_510[] = "runtime->W_";
-static char symbol_511[] = "y";
-static char symbol_512[] = " = ";
-static char symbol_513[] = "x";
-static char symbol_514[] = "(runtime->W_";
-static char symbol_515[] = "y";
-static char symbol_516[] = " ? runtime->W_";
-static char symbol_517[] = "y";
-static char symbol_518[] = " : 0, ";
-static char symbol_519[] = "z";
-static char symbol_520[] = ");\n";
-static char symbol_521[] = ">";
-static char symbol_522[] = "xs";
-static char symbol_523[] = "<";
-static char symbol_524[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
-static char symbol_525[] = "xs";
-static char symbol_526[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
-static char symbol_527[] = "x";
-static char symbol_528[] = "x";
-static char symbol_529[] = "struct Chunks* named_chunks_";
-static char symbol_530[] = "x";
-static char symbol_531[] = ";\n";
-static char symbol_532[] = "x";
-static char symbol_533[] = "x";
-static char symbol_534[] = "x";
-static char symbol_535[] = "0";
-static char symbol_536[] = "1";
-static char symbol_537[] = "2";
-static char symbol_538[] = "3";
-static char symbol_539[] = "4";
-static char symbol_540[] = "5";
-static char symbol_541[] = "6";
-static char symbol_542[] = "7";
-static char symbol_543[] = "8";
-static char symbol_544[] = "9";
-static char symbol_545[] = "{";
+static char symbol_493[] = "append_data(runtime->current_chunks, buffer_from_integer(";
+static char symbol_494[] = "x";
+static char symbol_495[] = "), 0, NULL);\n";
+static char symbol_496[] = "x";
+static char symbol_497[] = "run_action(lookup_action(variables, ";
+static char symbol_498[] = "x";
+static char symbol_499[] = "), runtime);\n";
+static char symbol_500[] = "x";
+static char symbol_501[] = "void placeholder_";
+static char symbol_502[] = "(struct Runtime* runtime, struct Variables* variables);";
+static char symbol_503[] = "void placeholder_";
+static char symbol_504[] = "(struct Runtime* runtime, struct Variables* variables) {";
+static char symbol_505[] = "x";
+static char symbol_506[] = "}\n";
+static char symbol_507[] = "\n";
+static char symbol_508[] = "chunks = create_chunks();\n";
+static char symbol_509[] = "append_placeholder(runtime->placeholders, chunks, create_action(placeholder_";
+static char symbol_510[] = ", variables, NULL, 0, 0));\n";
+static char symbol_511[] = "append_data(runtime->current_chunks, NULL, 0, chunks);\n";
+static char symbol_512[] = "x";
+static char symbol_513[] = "append_data(runtime->current_chunks, ";
+static char symbol_514[] = "x";
+static char symbol_515[] = ", 0, NULL);\n";
+static char symbol_516[] = "#";
+static char symbol_517[] = "x";
+static char symbol_518[] = "(";
+static char symbol_519[] = "y";
+static char symbol_520[] = " ";
+static char symbol_521[] = "z";
+static char symbol_522[] = ")";
+static char symbol_523[] = "runtime->W_";
+static char symbol_524[] = "y";
+static char symbol_525[] = " = ";
+static char symbol_526[] = "x";
+static char symbol_527[] = "(runtime->W_";
+static char symbol_528[] = "y";
+static char symbol_529[] = " ? runtime->W_";
+static char symbol_530[] = "y";
+static char symbol_531[] = " : 0, ";
+static char symbol_532[] = "z";
+static char symbol_533[] = ");\n";
+static char symbol_534[] = ">";
+static char symbol_535[] = "xs";
+static char symbol_536[] = "<";
+static char symbol_537[] = "append_data(runtime->current_chunks, NULL, 1, NULL);\n";
+static char symbol_538[] = "xs";
+static char symbol_539[] = "append_data(runtime->current_chunks, NULL, -1, NULL);\n";
+static char symbol_540[] = "x";
+static char symbol_541[] = "x";
+static char symbol_542[] = "struct Chunks* named_chunks_";
+static char symbol_543[] = "x";
+static char symbol_544[] = ";\n";
+static char symbol_545[] = "x";
 static char symbol_546[] = "x";
-static char symbol_547[] = "*";
-static char symbol_548[] = "y";
-static char symbol_549[] = "}";
-static char symbol_550[] = "for (int i=0; i < ";
-static char symbol_551[] = "y";
-static char symbol_552[] = "; i++) {\n";
-static char symbol_553[] = "append_data(runtime->current_chunks, ";
-static char symbol_554[] = "x";
-static char symbol_555[] = ", 0, NULL);\n";
-static char symbol_556[] = "}\n";
-static char symbol_557[] = "x";
-static char symbol_558[] = "(runtime->W_";
+static char symbol_547[] = "x";
+static char symbol_548[] = "0";
+static char symbol_549[] = "1";
+static char symbol_550[] = "2";
+static char symbol_551[] = "3";
+static char symbol_552[] = "4";
+static char symbol_553[] = "5";
+static char symbol_554[] = "6";
+static char symbol_555[] = "7";
+static char symbol_556[] = "8";
+static char symbol_557[] = "9";
+static char symbol_558[] = "{";
 static char symbol_559[] = "x";
-static char symbol_560[] = " ? runtime->W_";
-static char symbol_561[] = "x";
-static char symbol_562[] = " : 0)";
-static char symbol_563[] = "(";
-static char symbol_564[] = "x";
-static char symbol_565[] = "-";
-static char symbol_566[] = "y";
-static char symbol_567[] = ")";
-static char symbol_568[] = "((runtime->W_";
-static char symbol_569[] = "x";
-static char symbol_570[] = " ? runtime->W_";
-static char symbol_571[] = "x";
-static char symbol_572[] = " : 0)-";
-static char symbol_573[] = "y";
-static char symbol_574[] = ")";
-static char symbol_575[] = "\"";
-static char symbol_576[] = "xs";
-static char symbol_577[] = "\"";
-static char symbol_578[] = "static char symbol_";
-static char symbol_579[] = "[] = \"";
-static char symbol_580[] = "xs";
-static char symbol_581[] = "\";\n";
-static char symbol_582[] = "buffer_from_cstring(symbol_";
-static char symbol_583[] = ", sizeof(symbol_";
-static char symbol_584[] = ")-1)";
-static char symbol_585[] = "x";
-static char symbol_586[] = "xs";
-static char symbol_587[] = "lookup_action(variables, ";
-static char symbol_588[] = "x";
-static char symbol_589[] = ")";
-static char symbol_590[] = "xs";
-static char symbol_591[] = ".";
-static char symbol_592[] = "x";
-static char symbol_593[] = "->";
-static char symbol_594[] = "x";
-static char symbol_595[] = "W[";
-static char symbol_596[] = "x";
-static char symbol_597[] = "]";
+static char symbol_560[] = "*";
+static char symbol_561[] = "y";
+static char symbol_562[] = "}";
+static char symbol_563[] = "for (int i=0; i < ";
+static char symbol_564[] = "y";
+static char symbol_565[] = "; i++) {\n";
+static char symbol_566[] = "append_data(runtime->current_chunks, ";
+static char symbol_567[] = "x";
+static char symbol_568[] = ", 0, NULL);\n";
+static char symbol_569[] = "}\n";
+static char symbol_570[] = "x";
+static char symbol_571[] = "(runtime->W_";
+static char symbol_572[] = "x";
+static char symbol_573[] = " ? runtime->W_";
+static char symbol_574[] = "x";
+static char symbol_575[] = " : 0)";
+static char symbol_576[] = "(";
+static char symbol_577[] = "x";
+static char symbol_578[] = "-";
+static char symbol_579[] = "y";
+static char symbol_580[] = ")";
+static char symbol_581[] = "((runtime->W_";
+static char symbol_582[] = "x";
+static char symbol_583[] = " ? runtime->W_";
+static char symbol_584[] = "x";
+static char symbol_585[] = " : 0)-";
+static char symbol_586[] = "y";
+static char symbol_587[] = ")";
+static char symbol_588[] = "\"";
+static char symbol_589[] = "xs";
+static char symbol_590[] = "\"";
+static char symbol_591[] = "static char symbol_";
+static char symbol_592[] = "[] = \"";
+static char symbol_593[] = "xs";
+static char symbol_594[] = "\";\n";
+static char symbol_595[] = "buffer_from_cstring(symbol_";
+static char symbol_596[] = ", sizeof(symbol_";
+static char symbol_597[] = ")-1)";
 static char symbol_598[] = "x";
-static char symbol_599[] = "unsigned int W_";
-static char symbol_600[] = "x";
-static char symbol_601[] = ";\n";
-static char symbol_602[] = "x";
-static char symbol_603[] = "\\\"";
-static char symbol_604[] = "\"";
-static char symbol_605[] = "xs";
-static char symbol_606[] = "static char symbol_";
-static char symbol_607[] = "[] = \"";
-static char symbol_608[] = "xs";
-static char symbol_609[] = "\";\n";
-static char symbol_610[] = "buffer_from_cstring(symbol_";
-static char symbol_611[] = ", sizeof(symbol_";
-static char symbol_612[] = ")-1)";
-static char symbol_613[] = "\'";
-static char symbol_614[] = "\\\'";
-static char symbol_615[] = "\"";
+static char symbol_599[] = "xs";
+static char symbol_600[] = "lookup_action(variables, ";
+static char symbol_601[] = "x";
+static char symbol_602[] = ")";
+static char symbol_603[] = "xs";
+static char symbol_604[] = ".";
+static char symbol_605[] = "x";
+static char symbol_606[] = "->";
+static char symbol_607[] = "x";
+static char symbol_608[] = "W[";
+static char symbol_609[] = "x";
+static char symbol_610[] = "]";
+static char symbol_611[] = "x";
+static char symbol_612[] = "unsigned int W_";
+static char symbol_613[] = "x";
+static char symbol_614[] = ";\n";
+static char symbol_615[] = "x";
 static char symbol_616[] = "\\\"";
-static char symbol_617[] = "x";
-static char symbol_618[] = "static char symbol_";
-static char symbol_619[] = "[] = \"";
-static char symbol_620[] = "x";
-static char symbol_621[] = "\";\n";
-static char symbol_622[] = "buffer_from_cstring(symbol_";
-static char symbol_623[] = ", sizeof(symbol_";
-static char symbol_624[] = ")-1)";
-static char symbol_625[] = "a";
-static char symbol_626[] = "b";
-static char symbol_627[] = "c";
-static char symbol_628[] = "d";
-static char symbol_629[] = "e";
-static char symbol_630[] = "f";
-static char symbol_631[] = "g";
-static char symbol_632[] = "h";
-static char symbol_633[] = "i";
-static char symbol_634[] = "j";
-static char symbol_635[] = "k";
-static char symbol_636[] = "l";
-static char symbol_637[] = "m";
-static char symbol_638[] = "n";
-static char symbol_639[] = "o";
-static char symbol_640[] = "p";
-static char symbol_641[] = "q";
-static char symbol_642[] = "r";
-static char symbol_643[] = "s";
-static char symbol_644[] = "t";
-static char symbol_645[] = "u";
-static char symbol_646[] = "v";
-static char symbol_647[] = "w";
-static char symbol_648[] = "x";
-static char symbol_649[] = "y";
-static char symbol_650[] = "z";
-static char symbol_651[] = "A";
-static char symbol_652[] = "B";
-static char symbol_653[] = "C";
-static char symbol_654[] = "D";
-static char symbol_655[] = "E";
-static char symbol_656[] = "F";
-static char symbol_657[] = "G";
-static char symbol_658[] = "H";
-static char symbol_659[] = "I";
-static char symbol_660[] = "J";
-static char symbol_661[] = "K";
-static char symbol_662[] = "L";
-static char symbol_663[] = "M";
-static char symbol_664[] = "N";
-static char symbol_665[] = "O";
-static char symbol_666[] = "P";
-static char symbol_667[] = "Q";
-static char symbol_668[] = "R";
-static char symbol_669[] = "S";
-static char symbol_670[] = "T";
-static char symbol_671[] = "U";
-static char symbol_672[] = "V";
-static char symbol_673[] = "W";
-static char symbol_674[] = "X";
-static char symbol_675[] = "Y";
-static char symbol_676[] = "Z";
-static char symbol_677[] = " ";
-static char symbol_678[] = "\n";
+static char symbol_617[] = "\"";
+static char symbol_618[] = "xs";
+static char symbol_619[] = "static char symbol_";
+static char symbol_620[] = "[] = \"";
+static char symbol_621[] = "xs";
+static char symbol_622[] = "\";\n";
+static char symbol_623[] = "buffer_from_cstring(symbol_";
+static char symbol_624[] = ", sizeof(symbol_";
+static char symbol_625[] = ")-1)";
+static char symbol_626[] = "\'";
+static char symbol_627[] = "\\\'";
+static char symbol_628[] = "\"";
+static char symbol_629[] = "\\\"";
+static char symbol_630[] = "x";
+static char symbol_631[] = "static char symbol_";
+static char symbol_632[] = "[] = \"";
+static char symbol_633[] = "x";
+static char symbol_634[] = "\";\n";
+static char symbol_635[] = "buffer_from_cstring(symbol_";
+static char symbol_636[] = ", sizeof(symbol_";
+static char symbol_637[] = ")-1)";
+static char symbol_638[] = "a";
+static char symbol_639[] = "b";
+static char symbol_640[] = "c";
+static char symbol_641[] = "d";
+static char symbol_642[] = "e";
+static char symbol_643[] = "f";
+static char symbol_644[] = "g";
+static char symbol_645[] = "h";
+static char symbol_646[] = "i";
+static char symbol_647[] = "j";
+static char symbol_648[] = "k";
+static char symbol_649[] = "l";
+static char symbol_650[] = "m";
+static char symbol_651[] = "n";
+static char symbol_652[] = "o";
+static char symbol_653[] = "p";
+static char symbol_654[] = "q";
+static char symbol_655[] = "r";
+static char symbol_656[] = "s";
+static char symbol_657[] = "t";
+static char symbol_658[] = "u";
+static char symbol_659[] = "v";
+static char symbol_660[] = "w";
+static char symbol_661[] = "x";
+static char symbol_662[] = "y";
+static char symbol_663[] = "z";
+static char symbol_664[] = "A";
+static char symbol_665[] = "B";
+static char symbol_666[] = "C";
+static char symbol_667[] = "D";
+static char symbol_668[] = "E";
+static char symbol_669[] = "F";
+static char symbol_670[] = "G";
+static char symbol_671[] = "H";
+static char symbol_672[] = "I";
+static char symbol_673[] = "J";
+static char symbol_674[] = "K";
+static char symbol_675[] = "L";
+static char symbol_676[] = "M";
+static char symbol_677[] = "N";
+static char symbol_678[] = "O";
+static char symbol_679[] = "P";
+static char symbol_680[] = "Q";
+static char symbol_681[] = "R";
+static char symbol_682[] = "S";
+static char symbol_683[] = "T";
+static char symbol_684[] = "U";
+static char symbol_685[] = "V";
+static char symbol_686[] = "W";
+static char symbol_687[] = "X";
+static char symbol_688[] = "Y";
+static char symbol_689[] = "Z";
+static char symbol_690[] = " ";
+static char symbol_691[] = "\n";
 struct Action* rule_main(struct ParseState* parse_state);
 struct Action* rule_file(struct ParseState* parse_state);
 struct Action* rule_rule(struct ParseState* parse_state);
@@ -1711,277 +1724,300 @@ void action_27(struct Runtime* runtime, struct Variables* variables) {
 void action_28(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
+    struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actionVars;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
+    }
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_457, sizeof(symbol_457)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_458, sizeof(symbol_458)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_459, sizeof(symbol_459)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_460, sizeof(symbol_460)-1), 0, NULL);
 }
 
 void action_29(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1)), runtime);
+    struct Action* action;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_actionVars;
+    runtime->current_chunks = chunks;
+    if (!seen(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1))) {
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1), 0, NULL);
+    }
+    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_468, sizeof(symbol_468)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_469, sizeof(symbol_469)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_470, sizeof(symbol_470)-1), 0, NULL);
+    append_data(runtime->current_chunks, NULL, 1, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_471, sizeof(symbol_471)-1)), runtime);
+    append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_472, sizeof(symbol_472)-1), 0, NULL);
 }
 
 void action_30(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_477, sizeof(symbol_477)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_478, sizeof(symbol_478)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
 }
 
 void action_31(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
 }
 
 void action_32(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
 }
 
 void action_33(struct Runtime* runtime, struct Variables* variables) {
+    struct Chunks* chunks;
+    struct Chunks* last_chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), 0, NULL);
+}
+
+void action_34(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
     runtime->W_1 = inc(runtime->W_1 ? runtime->W_1 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_488, sizeof(symbol_488)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_489, sizeof(symbol_489)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_placeholders;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_490, sizeof(symbol_490)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_503, sizeof(symbol_503)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_491, sizeof(symbol_491)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_505, sizeof(symbol_505)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_493, sizeof(symbol_493)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_494, sizeof(symbol_494)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_507, sizeof(symbol_507)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_495, sizeof(symbol_495)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_509, sizeof(symbol_509)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_1 ? runtime->W_1 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_497, sizeof(symbol_497)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_498, sizeof(symbol_498)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1), 0, NULL);
 }
 
-void action_34(struct Runtime* runtime, struct Variables* variables) {
+void action_35(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1), 0, NULL);
 }
 
-void action_35(struct Runtime* runtime, struct Variables* variables) {
+void action_36(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_513, sizeof(symbol_513)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_514, sizeof(symbol_514)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_515, sizeof(symbol_515)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_516, sizeof(symbol_516)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_518, sizeof(symbol_518)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_520, sizeof(symbol_520)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_523, sizeof(symbol_523)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), 0, NULL);
 }
 
-void action_36(struct Runtime* runtime, struct Variables* variables) {
+void action_37(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_537, sizeof(symbol_537)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_538, sizeof(symbol_538)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_539, sizeof(symbol_539)-1), 0, NULL);
 }
 
-void action_37(struct Runtime* runtime, struct Variables* variables) {
+void action_38(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedChunks;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_528, sizeof(symbol_528)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_541, sizeof(symbol_541)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_529, sizeof(symbol_529)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_530, sizeof(symbol_530)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_531, sizeof(symbol_531)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_542, sizeof(symbol_542)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_543, sizeof(symbol_543)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_544, sizeof(symbol_544)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_532, sizeof(symbol_532)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_545, sizeof(symbol_545)-1)), runtime);
 }
 
-void action_38(struct Runtime* runtime, struct Variables* variables) {
+void action_39(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_547, sizeof(symbol_547)-1)), runtime);
 }
 
-void action_39(struct Runtime* runtime, struct Variables* variables) {
+void action_40(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_563, sizeof(symbol_563)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_565, sizeof(symbol_565)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_553, sizeof(symbol_553)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_554, sizeof(symbol_554)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_555, sizeof(symbol_555)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_567, sizeof(symbol_567)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, -1, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_556, sizeof(symbol_556)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1), 0, NULL);
 }
 
-void action_40(struct Runtime* runtime, struct Variables* variables) {
+void action_41(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_562, sizeof(symbol_562)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_575, sizeof(symbol_575)-1), 0, NULL);
 }
 
-void action_41(struct Runtime* runtime, struct Variables* variables) {
+void action_42(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_571, sizeof(symbol_571)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_572, sizeof(symbol_572)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_573, sizeof(symbol_573)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_574, sizeof(symbol_574)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
 }
 
-void action_42(struct Runtime* runtime, struct Variables* variables) {
+void action_43(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_578, sizeof(symbol_578)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_591, sizeof(symbol_591)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_580, sizeof(symbol_580)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_581, sizeof(symbol_581)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_582, sizeof(symbol_582)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_595, sizeof(symbol_595)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_583, sizeof(symbol_583)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_584, sizeof(symbol_584)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_597, sizeof(symbol_597)-1), 0, NULL);
 }
 
-void action_43(struct Runtime* runtime, struct Variables* variables) {
+void action_44(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_590, sizeof(symbol_590)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_603, sizeof(symbol_603)-1)), runtime);
 }
 
-void action_44(struct Runtime* runtime, struct Variables* variables) {
+void action_45(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1)), runtime);
 }
 
-void action_45(struct Runtime* runtime, struct Variables* variables) {
+void action_46(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
     struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_namedWs;
     runtime->current_chunks = chunks;
-    action = lookup_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1));
+    action = lookup_action(variables, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1));
     if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), 0, NULL);
-        run_action(lookup_action(variables, buffer_from_cstring(symbol_600, sizeof(symbol_600)-1)), runtime);
-        append_data(runtime->current_chunks, buffer_from_cstring(symbol_601, sizeof(symbol_601)-1), 0, NULL);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
+        run_action(lookup_action(variables, buffer_from_cstring(symbol_613, sizeof(symbol_613)-1)), runtime);
+        append_data(runtime->current_chunks, buffer_from_cstring(symbol_614, sizeof(symbol_614)-1), 0, NULL);
     }
     runtime->current_chunks = last_chunks;
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_602, sizeof(symbol_602)-1)), runtime);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_615, sizeof(symbol_615)-1)), runtime);
 }
 
-void action_46(struct Runtime* runtime, struct Variables* variables) {
+void action_47(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_606, sizeof(symbol_606)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_607, sizeof(symbol_607)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_608, sizeof(symbol_608)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_610, sizeof(symbol_610)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_611, sizeof(symbol_611)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_612, sizeof(symbol_612)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_625, sizeof(symbol_625)-1), 0, NULL);
 }
 
-void action_47(struct Runtime* runtime, struct Variables* variables) {
+void action_48(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_629, sizeof(symbol_629)-1), 0, NULL);
 }
 
-void action_48(struct Runtime* runtime, struct Variables* variables) {
+void action_49(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
     runtime->current_chunks = chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_631, sizeof(symbol_631)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_619, sizeof(symbol_619)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_620, sizeof(symbol_620)-1)), runtime);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_621, sizeof(symbol_621)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_632, sizeof(symbol_632)-1), 0, NULL);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_633, sizeof(symbol_633)-1)), runtime);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_634, sizeof(symbol_634)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_622, sizeof(symbol_622)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_635, sizeof(symbol_635)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_623, sizeof(symbol_623)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_636, sizeof(symbol_636)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_2 ? runtime->W_2 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_624, sizeof(symbol_624)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_637, sizeof(symbol_637)-1), 0, NULL);
 }
 
 struct Action* rule_main(struct ParseState* parse_state) {
@@ -2789,7 +2825,63 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_460, sizeof(symbol_460)-1);
+        data = buffer_from_cstring(symbol_461, sizeof(symbol_461)-1);
+        if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+            parse_state->pos += data->size;
+            _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+        } else {
+            _ = NULL;
+        }
+        if (_) {
+            _ = rule_string(parse_state);
+            append_named_action(variables, buffer_from_cstring(symbol_462, sizeof(symbol_462)-1), _);
+            if (_) {
+                data = buffer_from_cstring(symbol_463, sizeof(symbol_463)-1);
+                if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                    parse_state->pos += data->size;
+                    _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                } else {
+                    _ = NULL;
+                }
+                if (_) {
+                    star_variables = create_variables();
+                    star_start_pos = parse_state->pos;
+                    while (1) {
+                        star_pos = parse_state->pos;
+                        _ = rule_actionexpr(parse_state);
+                        if (_ == NULL) {
+                            parse_state->pos = star_pos;
+                            break;
+                        }
+                        append_named_action(star_variables, NULL, _);
+                    }
+                    _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
+                    append_named_action(variables, buffer_from_cstring(symbol_464, sizeof(symbol_464)-1), _);
+                    if (_) {
+                        _ = rule_space(parse_state);
+                        if (_) {
+                            data = buffer_from_cstring(symbol_465, sizeof(symbol_465)-1);
+                            if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
+                                parse_state->pos += data->size;
+                                _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
+                            } else {
+                                _ = NULL;
+                            }
+                            if (_) {
+                                return create_action(action_29, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+    parse_state->pos = or_backtrack_pos;
+    action_start_pos = parse_state->pos;
+    variables = create_variables();
+    _ = rule_space(parse_state);
+    if (_) {
+        data = buffer_from_cstring(symbol_473, sizeof(symbol_473)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2798,11 +2890,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_461, sizeof(symbol_461)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_462, sizeof(symbol_462)-1);
+                    data = buffer_from_cstring(symbol_475, sizeof(symbol_475)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2822,11 +2914,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                             append_named_action(star_variables, NULL, _);
                         }
                         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                        append_named_action(variables, buffer_from_cstring(symbol_463, sizeof(symbol_463)-1), _);
+                        append_named_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1), _);
                         if (_) {
                             _ = rule_space(parse_state);
                             if (_) {
-                                data = buffer_from_cstring(symbol_464, sizeof(symbol_464)-1);
+                                data = buffer_from_cstring(symbol_477, sizeof(symbol_477)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2834,7 +2926,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                                     _ = NULL;
                                 }
                                 if (_) {
-                                    return create_action(action_29, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return create_action(action_30, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -2848,7 +2940,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_472, sizeof(symbol_472)-1);
+        data = buffer_from_cstring(symbol_485, sizeof(symbol_485)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2857,9 +2949,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_chunkName(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_473, sizeof(symbol_473)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), _);
             if (_) {
-                return create_action(action_30, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -2869,9 +2961,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_expr(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_479, sizeof(symbol_479)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_492, sizeof(symbol_492)-1), _);
         if (_) {
-            return create_action(action_31, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2880,9 +2972,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_nameAsSymbol(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_483, sizeof(symbol_483)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_496, sizeof(symbol_496)-1), _);
         if (_) {
-            return create_action(action_32, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2891,9 +2983,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_placeholder(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_487, sizeof(symbol_487)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), _);
         if (_) {
-            return create_action(action_33, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2902,9 +2994,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     _ = rule_space(parse_state);
     if (_) {
         _ = rule_string(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_499, sizeof(symbol_499)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), _);
         if (_) {
-            return create_action(action_34, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     parse_state->pos = or_backtrack_pos;
@@ -2912,7 +3004,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_503, sizeof(symbol_503)-1);
+        data = buffer_from_cstring(symbol_516, sizeof(symbol_516)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2921,9 +3013,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_name(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_504, sizeof(symbol_504)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_517, sizeof(symbol_517)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_505, sizeof(symbol_505)-1);
+                data = buffer_from_cstring(symbol_518, sizeof(symbol_518)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2932,9 +3024,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_wvar(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_506, sizeof(symbol_506)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_519, sizeof(symbol_519)-1), _);
                     if (_) {
-                        data = buffer_from_cstring(symbol_507, sizeof(symbol_507)-1);
+                        data = buffer_from_cstring(symbol_520, sizeof(symbol_520)-1);
                         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                             parse_state->pos += data->size;
                             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2943,9 +3035,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         }
                         if (_) {
                             _ = rule_actionPrimitiveExpression(parse_state);
-                            append_named_action(variables, buffer_from_cstring(symbol_508, sizeof(symbol_508)-1), _);
+                            append_named_action(variables, buffer_from_cstring(symbol_521, sizeof(symbol_521)-1), _);
                             if (_) {
-                                data = buffer_from_cstring(symbol_509, sizeof(symbol_509)-1);
+                                data = buffer_from_cstring(symbol_522, sizeof(symbol_522)-1);
                                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                     parse_state->pos += data->size;
                                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2953,7 +3045,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                                     _ = NULL;
                                 }
                                 if (_) {
-                                    return create_action(action_35, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                    return create_action(action_36, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                                 }
                             }
                         }
@@ -2967,7 +3059,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_521, sizeof(symbol_521)-1);
+        data = buffer_from_cstring(symbol_534, sizeof(symbol_534)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2987,11 +3079,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                 append_named_action(star_variables, NULL, _);
             }
             _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-            append_named_action(variables, buffer_from_cstring(symbol_522, sizeof(symbol_522)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_535, sizeof(symbol_535)-1), _);
             if (_) {
                 _ = rule_space(parse_state);
                 if (_) {
-                    data = buffer_from_cstring(symbol_523, sizeof(symbol_523)-1);
+                    data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2999,7 +3091,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         _ = NULL;
                     }
                     if (_) {
-                        return create_action(action_36, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                        return create_action(action_37, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
@@ -3025,9 +3117,9 @@ struct Action* rule_chunkName(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_527, sizeof(symbol_527)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_540, sizeof(symbol_540)-1), _);
     if (_) {
-        return create_action(action_37, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return NULL;
 }
@@ -3049,9 +3141,9 @@ struct Action* rule_actionPrimitiveExpression(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_dotname(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_533, sizeof(symbol_533)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), _);
     if (_) {
-        return create_action(action_38, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3079,7 +3171,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_535, sizeof(symbol_535)-1);
+    data = buffer_from_cstring(symbol_548, sizeof(symbol_548)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3092,7 +3184,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_536, sizeof(symbol_536)-1);
+    data = buffer_from_cstring(symbol_549, sizeof(symbol_549)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3105,7 +3197,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_537, sizeof(symbol_537)-1);
+    data = buffer_from_cstring(symbol_550, sizeof(symbol_550)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3118,7 +3210,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_538, sizeof(symbol_538)-1);
+    data = buffer_from_cstring(symbol_551, sizeof(symbol_551)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3131,7 +3223,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_539, sizeof(symbol_539)-1);
+    data = buffer_from_cstring(symbol_552, sizeof(symbol_552)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3144,7 +3236,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_540, sizeof(symbol_540)-1);
+    data = buffer_from_cstring(symbol_553, sizeof(symbol_553)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3157,7 +3249,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_541, sizeof(symbol_541)-1);
+    data = buffer_from_cstring(symbol_554, sizeof(symbol_554)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3170,7 +3262,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_542, sizeof(symbol_542)-1);
+    data = buffer_from_cstring(symbol_555, sizeof(symbol_555)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3183,7 +3275,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_543, sizeof(symbol_543)-1);
+    data = buffer_from_cstring(symbol_556, sizeof(symbol_556)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3196,7 +3288,7 @@ struct Action* rule_digit(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_544, sizeof(symbol_544)-1);
+    data = buffer_from_cstring(symbol_557, sizeof(symbol_557)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3225,7 +3317,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_545, sizeof(symbol_545)-1);
+    data = buffer_from_cstring(symbol_558, sizeof(symbol_558)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3236,9 +3328,9 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
         _ = rule_space(parse_state);
         if (_) {
             _ = rule_string(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_546, sizeof(symbol_546)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_547, sizeof(symbol_547)-1);
+                data = buffer_from_cstring(symbol_560, sizeof(symbol_560)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3247,11 +3339,11 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                 }
                 if (_) {
                     _ = rule_expr(parse_state);
-                    append_named_action(variables, buffer_from_cstring(symbol_548, sizeof(symbol_548)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_561, sizeof(symbol_561)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_549, sizeof(symbol_549)-1);
+                            data = buffer_from_cstring(symbol_562, sizeof(symbol_562)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3259,7 +3351,7 @@ struct Action* rule_placeholder(struct ParseState* parse_state) {
                                 _ = NULL;
                             }
                             if (_) {
-                                return create_action(action_39, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                                return create_action(action_40, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                             }
                         }
                     }
@@ -3287,14 +3379,14 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_wvar(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_557, sizeof(symbol_557)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1), _);
     if (_) {
-        return create_action(action_40, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_563, sizeof(symbol_563)-1);
+    data = buffer_from_cstring(symbol_576, sizeof(symbol_576)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3303,9 +3395,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_wvar(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_564, sizeof(symbol_564)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_577, sizeof(symbol_577)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_565, sizeof(symbol_565)-1);
+            data = buffer_from_cstring(symbol_578, sizeof(symbol_578)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3314,9 +3406,9 @@ struct Action* rule_expr(struct ParseState* parse_state) {
             }
             if (_) {
                 _ = rule_dotname(parse_state);
-                append_named_action(variables, buffer_from_cstring(symbol_566, sizeof(symbol_566)-1), _);
+                append_named_action(variables, buffer_from_cstring(symbol_579, sizeof(symbol_579)-1), _);
                 if (_) {
-                    data = buffer_from_cstring(symbol_567, sizeof(symbol_567)-1);
+                    data = buffer_from_cstring(symbol_580, sizeof(symbol_580)-1);
                     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                         parse_state->pos += data->size;
                         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3324,7 +3416,7 @@ struct Action* rule_expr(struct ParseState* parse_state) {
                         _ = NULL;
                     }
                     if (_) {
-                        return create_action(action_41, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                        return create_action(action_42, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
                     }
                 }
             }
@@ -3349,7 +3441,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_575, sizeof(symbol_575)-1);
+    data = buffer_from_cstring(symbol_588, sizeof(symbol_588)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3369,9 +3461,9 @@ struct Action* rule_string(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_576, sizeof(symbol_576)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_577, sizeof(symbol_577)-1);
+            data = buffer_from_cstring(symbol_590, sizeof(symbol_590)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3379,7 +3471,7 @@ struct Action* rule_string(struct ParseState* parse_state) {
                 _ = NULL;
             }
             if (_) {
-                return create_action(action_42, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_43, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3403,7 +3495,7 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_nameAsSymbol(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_585, sizeof(symbol_585)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_598, sizeof(symbol_598)-1), _);
     if (_) {
         star_variables = create_variables();
         star_start_pos = parse_state->pos;
@@ -3417,9 +3509,9 @@ struct Action* rule_dotname(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_586, sizeof(symbol_586)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_599, sizeof(symbol_599)-1), _);
         if (_) {
-            return create_action(action_43, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return NULL;
@@ -3441,7 +3533,7 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_591, sizeof(symbol_591)-1);
+    data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3450,9 +3542,9 @@ struct Action* rule_nextname(struct ParseState* parse_state) {
     }
     if (_) {
         _ = rule_name(parse_state);
-        append_named_action(variables, buffer_from_cstring(symbol_592, sizeof(symbol_592)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), _);
         if (_) {
-            return create_action(action_44, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+            return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
         }
     }
     return NULL;
@@ -3474,7 +3566,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_595, sizeof(symbol_595)-1);
+    data = buffer_from_cstring(symbol_608, sizeof(symbol_608)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3488,9 +3580,9 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
         } else {
             _ = NULL;
         }
-        append_named_action(variables, buffer_from_cstring(symbol_596, sizeof(symbol_596)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_609, sizeof(symbol_609)-1), _);
         if (_) {
-            data = buffer_from_cstring(symbol_597, sizeof(symbol_597)-1);
+            data = buffer_from_cstring(symbol_610, sizeof(symbol_610)-1);
             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                 parse_state->pos += data->size;
                 _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3498,7 +3590,7 @@ struct Action* rule_wvar(struct ParseState* parse_state) {
                 _ = NULL;
             }
             if (_) {
-                return create_action(action_45, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_46, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3521,7 +3613,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_603, sizeof(symbol_603)-1);
+    data = buffer_from_cstring(symbol_616, sizeof(symbol_616)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3535,7 +3627,7 @@ struct Action* rule_stringinner(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     nlookahead_pos = parse_state->pos;
-    data = buffer_from_cstring(symbol_604, sizeof(symbol_604)-1);
+    data = buffer_from_cstring(symbol_617, sizeof(symbol_617)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3592,11 +3684,11 @@ struct Action* rule_charstring(struct ParseState* parse_state) {
             append_named_action(star_variables, NULL, _);
         }
         _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-        append_named_action(variables, buffer_from_cstring(symbol_605, sizeof(symbol_605)-1), _);
+        append_named_action(variables, buffer_from_cstring(symbol_618, sizeof(symbol_618)-1), _);
         if (_) {
             _ = rule_quote(parse_state);
             if (_) {
-                return create_action(action_46, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+                return create_action(action_47, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
             }
         }
     }
@@ -3619,7 +3711,7 @@ struct Action* rule_quote(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_613, sizeof(symbol_613)-1);
+    data = buffer_from_cstring(symbol_626, sizeof(symbol_626)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3648,7 +3740,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_614, sizeof(symbol_614)-1);
+    data = buffer_from_cstring(symbol_627, sizeof(symbol_627)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3661,7 +3753,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_615, sizeof(symbol_615)-1);
+    data = buffer_from_cstring(symbol_628, sizeof(symbol_628)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3669,7 +3761,7 @@ struct Action* rule_innercharstring(struct ParseState* parse_state) {
         _ = NULL;
     }
     if (_) {
-        return create_action(action_47, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_48, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
@@ -3713,9 +3805,9 @@ struct Action* rule_nameAsSymbol(struct ParseState* parse_state) {
     action_start_pos = parse_state->pos;
     variables = create_variables();
     _ = rule_name(parse_state);
-    append_named_action(variables, buffer_from_cstring(symbol_617, sizeof(symbol_617)-1), _);
+    append_named_action(variables, buffer_from_cstring(symbol_630, sizeof(symbol_630)-1), _);
     if (_) {
-        return create_action(action_48, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
+        return create_action(action_49, variables, parse_state->input_buffer, action_start_pos, parse_state->pos);
     }
     return NULL;
 }
@@ -3803,7 +3895,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_625, sizeof(symbol_625)-1);
+    data = buffer_from_cstring(symbol_638, sizeof(symbol_638)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3816,7 +3908,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_626, sizeof(symbol_626)-1);
+    data = buffer_from_cstring(symbol_639, sizeof(symbol_639)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3829,7 +3921,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_627, sizeof(symbol_627)-1);
+    data = buffer_from_cstring(symbol_640, sizeof(symbol_640)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3842,7 +3934,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_628, sizeof(symbol_628)-1);
+    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3855,7 +3947,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_629, sizeof(symbol_629)-1);
+    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3868,7 +3960,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_630, sizeof(symbol_630)-1);
+    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3881,7 +3973,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_631, sizeof(symbol_631)-1);
+    data = buffer_from_cstring(symbol_644, sizeof(symbol_644)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3894,7 +3986,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_632, sizeof(symbol_632)-1);
+    data = buffer_from_cstring(symbol_645, sizeof(symbol_645)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3907,7 +3999,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_633, sizeof(symbol_633)-1);
+    data = buffer_from_cstring(symbol_646, sizeof(symbol_646)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3920,7 +4012,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_634, sizeof(symbol_634)-1);
+    data = buffer_from_cstring(symbol_647, sizeof(symbol_647)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3933,7 +4025,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_635, sizeof(symbol_635)-1);
+    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3946,7 +4038,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_636, sizeof(symbol_636)-1);
+    data = buffer_from_cstring(symbol_649, sizeof(symbol_649)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3959,7 +4051,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_637, sizeof(symbol_637)-1);
+    data = buffer_from_cstring(symbol_650, sizeof(symbol_650)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3972,7 +4064,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_638, sizeof(symbol_638)-1);
+    data = buffer_from_cstring(symbol_651, sizeof(symbol_651)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3985,7 +4077,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_639, sizeof(symbol_639)-1);
+    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -3998,7 +4090,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_640, sizeof(symbol_640)-1);
+    data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4011,7 +4103,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_641, sizeof(symbol_641)-1);
+    data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4024,7 +4116,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_642, sizeof(symbol_642)-1);
+    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4037,7 +4129,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_643, sizeof(symbol_643)-1);
+    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4050,7 +4142,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_644, sizeof(symbol_644)-1);
+    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4063,7 +4155,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_645, sizeof(symbol_645)-1);
+    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4076,7 +4168,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_646, sizeof(symbol_646)-1);
+    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4089,7 +4181,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_647, sizeof(symbol_647)-1);
+    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4102,7 +4194,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_648, sizeof(symbol_648)-1);
+    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4115,7 +4207,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_649, sizeof(symbol_649)-1);
+    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4128,7 +4220,7 @@ struct Action* rule_lower(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_650, sizeof(symbol_650)-1);
+    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4157,7 +4249,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_651, sizeof(symbol_651)-1);
+    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4170,7 +4262,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_652, sizeof(symbol_652)-1);
+    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4183,7 +4275,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_653, sizeof(symbol_653)-1);
+    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4196,7 +4288,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_654, sizeof(symbol_654)-1);
+    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4209,7 +4301,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_655, sizeof(symbol_655)-1);
+    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4222,7 +4314,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_656, sizeof(symbol_656)-1);
+    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4235,7 +4327,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_657, sizeof(symbol_657)-1);
+    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4248,7 +4340,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_658, sizeof(symbol_658)-1);
+    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4261,7 +4353,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_659, sizeof(symbol_659)-1);
+    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4274,7 +4366,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_660, sizeof(symbol_660)-1);
+    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4287,7 +4379,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_661, sizeof(symbol_661)-1);
+    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4300,7 +4392,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_662, sizeof(symbol_662)-1);
+    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4313,7 +4405,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_663, sizeof(symbol_663)-1);
+    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4326,7 +4418,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_664, sizeof(symbol_664)-1);
+    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4339,7 +4431,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_665, sizeof(symbol_665)-1);
+    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4352,7 +4444,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_666, sizeof(symbol_666)-1);
+    data = buffer_from_cstring(symbol_679, sizeof(symbol_679)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4365,7 +4457,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_667, sizeof(symbol_667)-1);
+    data = buffer_from_cstring(symbol_680, sizeof(symbol_680)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4378,7 +4470,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_668, sizeof(symbol_668)-1);
+    data = buffer_from_cstring(symbol_681, sizeof(symbol_681)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4391,7 +4483,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_669, sizeof(symbol_669)-1);
+    data = buffer_from_cstring(symbol_682, sizeof(symbol_682)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4404,7 +4496,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_670, sizeof(symbol_670)-1);
+    data = buffer_from_cstring(symbol_683, sizeof(symbol_683)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4417,7 +4509,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_671, sizeof(symbol_671)-1);
+    data = buffer_from_cstring(symbol_684, sizeof(symbol_684)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4430,7 +4522,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_672, sizeof(symbol_672)-1);
+    data = buffer_from_cstring(symbol_685, sizeof(symbol_685)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4443,7 +4535,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_673, sizeof(symbol_673)-1);
+    data = buffer_from_cstring(symbol_686, sizeof(symbol_686)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4456,7 +4548,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_674, sizeof(symbol_674)-1);
+    data = buffer_from_cstring(symbol_687, sizeof(symbol_687)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4469,7 +4561,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_675, sizeof(symbol_675)-1);
+    data = buffer_from_cstring(symbol_688, sizeof(symbol_688)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4482,7 +4574,7 @@ struct Action* rule_upper(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_676, sizeof(symbol_676)-1);
+    data = buffer_from_cstring(symbol_689, sizeof(symbol_689)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4545,7 +4637,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_677, sizeof(symbol_677)-1);
+    data = buffer_from_cstring(symbol_690, sizeof(symbol_690)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -4558,7 +4650,7 @@ struct Action* rule_spacechar(struct ParseState* parse_state) {
     parse_state->pos = or_backtrack_pos;
     action_start_pos = parse_state->pos;
     variables = create_variables();
-    data = buffer_from_cstring(symbol_678, sizeof(symbol_678)-1);
+    data = buffer_from_cstring(symbol_691, sizeof(symbol_691)-1);
     if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
         parse_state->pos += data->size;
         _ = create_action(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 ca52e33..f8f87ce 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -477,13 +477,25 @@ action =
 actionexpr =
     | space 'unseen(' nameAsSymbol:x ') -> {' actionexpr*:ys space '}' -> {
         >actionVars {
-            "struct Action* action;\n"
+            unseen("action") -> {
+                "struct Action* action;\n"
+            }
         }
         "action = lookup_action(variables, " x ");\n"
         "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n" >
             ys
         < "}\n"
     }
+    | space 'unseen(' string:x ') -> {' actionexpr*:ys space '}' -> {
+        >actionVars {
+            unseen("action") -> {
+                "struct Action* action;\n"
+            }
+        }
+        "if (!seen(runtime->current_chunks, " x ")) {\n" >
+            ys
+        < "}\n"
+    }
     | space '>' chunkName:x space '{' actionexpr*:ys space '}' -> {
         "last_chunks = runtime->current_chunks;\n"
         "chunks = runtime->named_chunks_" x ";\n"

commit d0ca11df47f93c88c51a092223f0d25c55652e1a
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 21:45:38 2025 +0100

    Only generate action variable if used

diff --git a/src/meta/meta.c b/src/meta/meta.c
index fe72f6a..518e072 100644
--- a/src/meta/meta.c
+++ b/src/meta/meta.c
@@ -21,6 +21,7 @@ struct Runtime {
     struct Chunks* named_chunks_definitions;
     struct Chunks* named_chunks_actions;
     struct Chunks* named_chunks_placeholders;
+    struct Chunks* named_chunks_actionVars;
     struct Chunks* current_chunks;
     unsigned int W_0;
     unsigned int W_1;
@@ -718,18 +719,18 @@ static char symbol_438[] = "void action_";
 static char symbol_439[] = "(struct Runtime* runtime, struct Variables* variables) {\n";
 static char symbol_440[] = "struct Chunks* chunks;\n";
 static char symbol_441[] = "struct Chunks* last_chunks;\n";
-static char symbol_442[] = "struct Action* action;\n";
-static char symbol_443[] = "xs";
-static char symbol_444[] = "}\n";
-static char symbol_445[] = "\n";
-static char symbol_446[] = "return create_action(action_";
-static char symbol_447[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_448[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
-static char symbol_449[] = "unseen(";
-static char symbol_450[] = "x";
-static char symbol_451[] = ") -> {";
-static char symbol_452[] = "ys";
-static char symbol_453[] = "}";
+static char symbol_442[] = "xs";
+static char symbol_443[] = "}\n";
+static char symbol_444[] = "\n";
+static char symbol_445[] = "return create_action(action_";
+static char symbol_446[] = ", variables, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_447[] = "return create_action(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n";
+static char symbol_448[] = "unseen(";
+static char symbol_449[] = "x";
+static char symbol_450[] = ") -> {";
+static char symbol_451[] = "ys";
+static char symbol_452[] = "}";
+static char symbol_453[] = "struct Action* action;\n";
 static char symbol_454[] = "action = lookup_action(variables, ";
 static char symbol_455[] = "x";
 static char symbol_456[] = ");\n";
@@ -997,14 +998,12 @@ struct Action* rule_spacechar(struct ParseState* parse_state);
 void action_1(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_2, sizeof(symbol_2)-1)), runtime);
 }
 
 void action_2(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_4, sizeof(symbol_4)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_5, sizeof(symbol_5)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_6, sizeof(symbol_6)-1), 0, NULL);
@@ -1432,7 +1431,6 @@ void action_2(struct Runtime* runtime, struct Variables* variables) {
 void action_3(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
     runtime->current_chunks = chunks;
@@ -1465,7 +1463,6 @@ void action_3(struct Runtime* runtime, struct Variables* variables) {
 void action_4(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_327, sizeof(symbol_327)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_328, sizeof(symbol_328)-1)), runtime);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_329, sizeof(symbol_329)-1)), runtime);
@@ -1474,20 +1471,17 @@ void action_4(struct Runtime* runtime, struct Variables* variables) {
 void action_5(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_331, sizeof(symbol_331)-1)), runtime);
 }
 
 void action_6(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
 }
 
 void action_7(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_334, sizeof(symbol_334)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_335, sizeof(symbol_335)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_336, sizeof(symbol_336)-1), 0, NULL);
@@ -1497,7 +1491,6 @@ void action_7(struct Runtime* runtime, struct Variables* variables) {
 void action_8(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_340, sizeof(symbol_340)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_341, sizeof(symbol_341)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
@@ -1509,14 +1502,12 @@ void action_8(struct Runtime* runtime, struct Variables* variables) {
 void action_9(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_345, sizeof(symbol_345)-1)), runtime);
 }
 
 void action_10(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_348, sizeof(symbol_348)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_349, sizeof(symbol_349)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_350, sizeof(symbol_350)-1), 0, NULL);
@@ -1534,7 +1525,6 @@ void action_10(struct Runtime* runtime, struct Variables* variables) {
 void action_11(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_358, sizeof(symbol_358)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_359, sizeof(symbol_359)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_360, sizeof(symbol_360)-1), 0, NULL);
@@ -1552,7 +1542,6 @@ void action_11(struct Runtime* runtime, struct Variables* variables) {
 void action_12(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_368, sizeof(symbol_368)-1)), runtime);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_369, sizeof(symbol_369)-1)), runtime);
 }
@@ -1560,7 +1549,6 @@ void action_12(struct Runtime* runtime, struct Variables* variables) {
 void action_13(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_372, sizeof(symbol_372)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_373, sizeof(symbol_373)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_374, sizeof(symbol_374)-1), 0, NULL);
@@ -1569,13 +1557,11 @@ void action_13(struct Runtime* runtime, struct Variables* variables) {
 void action_14(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
 }
 
 void action_15(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_377, sizeof(symbol_377)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_378, sizeof(symbol_378)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_379, sizeof(symbol_379)-1), 0, NULL);
@@ -1597,14 +1583,12 @@ void action_15(struct Runtime* runtime, struct Variables* variables) {
 void action_16(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_390, sizeof(symbol_390)-1)), runtime);
 }
 
 void action_17(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_393, sizeof(symbol_393)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_394, sizeof(symbol_394)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_395, sizeof(symbol_395)-1)), runtime);
@@ -1613,7 +1597,6 @@ void action_17(struct Runtime* runtime, struct Variables* variables) {
 void action_18(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_397, sizeof(symbol_397)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_398, sizeof(symbol_398)-1), 0, NULL);
 }
@@ -1621,26 +1604,22 @@ void action_18(struct Runtime* runtime, struct Variables* variables) {
 void action_19(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
 }
 
 void action_20(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
 }
 
 void action_21(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_401, sizeof(symbol_401)-1), 0, NULL);
 }
 
 void action_22(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_403, sizeof(symbol_403)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_404, sizeof(symbol_404)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_405, sizeof(symbol_405)-1), 0, NULL);
@@ -1649,7 +1628,6 @@ void action_22(struct Runtime* runtime, struct Variables* variables) {
 void action_23(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_408, sizeof(symbol_408)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_409, sizeof(symbol_409)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_410, sizeof(symbol_410)-1)), runtime);
@@ -1668,7 +1646,6 @@ void action_23(struct Runtime* runtime, struct Variables* variables) {
 void action_24(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_418, sizeof(symbol_418)-1), 0, NULL);
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_419, sizeof(symbol_419)-1), 0, NULL);
@@ -1684,7 +1661,6 @@ void action_24(struct Runtime* runtime, struct Variables* variables) {
 void action_25(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_425, sizeof(symbol_425)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_426, sizeof(symbol_426)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_427, sizeof(symbol_427)-1), 0, NULL);
@@ -1703,7 +1679,6 @@ void action_25(struct Runtime* runtime, struct Variables* variables) {
 void action_26(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     runtime->W_0 = inc(runtime->W_0 ? runtime->W_0 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_actions;
@@ -1714,28 +1689,33 @@ void action_26(struct Runtime* runtime, struct Variables* variables) {
     append_data(runtime->current_chunks, NULL, 1, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_440, sizeof(symbol_440)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_441, sizeof(symbol_441)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1), 0, NULL);
-    run_action(lookup_action(variables, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1)), runtime);
+    chunks = create_chunks();
+    runtime->named_chunks_actionVars = chunks;
+    append_data(runtime->current_chunks, NULL, 0, chunks);
+    run_action(lookup_action(variables, buffer_from_cstring(symbol_442, sizeof(symbol_442)-1)), runtime);
     append_data(runtime->current_chunks, NULL, -1, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_443, sizeof(symbol_443)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_444, sizeof(symbol_444)-1), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
     runtime->current_chunks = last_chunks;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_445, sizeof(symbol_445)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_integer((runtime->W_0 ? runtime->W_0 : 0)), 0, NULL);
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_446, sizeof(symbol_446)-1), 0, NULL);
 }
 
 void action_27(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
-    append_data(runtime->current_chunks, buffer_from_cstring(symbol_448, sizeof(symbol_448)-1), 0, NULL);
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_447, sizeof(symbol_447)-1), 0, NULL);
 }
 
 void action_28(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
+    last_chunks = runtime->current_chunks;
+    chunks = runtime->named_chunks_actionVars;
+    runtime->current_chunks = chunks;
+    append_data(runtime->current_chunks, buffer_from_cstring(symbol_453, sizeof(symbol_453)-1), 0, NULL);
+    runtime->current_chunks = last_chunks;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_454, sizeof(symbol_454)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_455, sizeof(symbol_455)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_456, sizeof(symbol_456)-1), 0, NULL);
@@ -1749,7 +1729,6 @@ void action_28(struct Runtime* runtime, struct Variables* variables) {
 void action_29(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_465, sizeof(symbol_465)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_466, sizeof(symbol_466)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_467, sizeof(symbol_467)-1)), runtime);
@@ -1762,7 +1741,6 @@ void action_29(struct Runtime* runtime, struct Variables* variables) {
 void action_30(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_474, sizeof(symbol_474)-1), 0, NULL);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_475, sizeof(symbol_475)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_476, sizeof(symbol_476)-1)), runtime);
@@ -1773,7 +1751,6 @@ void action_30(struct Runtime* runtime, struct Variables* variables) {
 void action_31(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_480, sizeof(symbol_480)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_481, sizeof(symbol_481)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_482, sizeof(symbol_482)-1), 0, NULL);
@@ -1782,7 +1759,6 @@ void action_31(struct Runtime* runtime, struct Variables* variables) {
 void action_32(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_484, sizeof(symbol_484)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_485, sizeof(symbol_485)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_486, sizeof(symbol_486)-1), 0, NULL);
@@ -1791,7 +1767,6 @@ void action_32(struct Runtime* runtime, struct Variables* variables) {
 void action_33(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     runtime->W_1 = inc(runtime->W_1 ? runtime->W_1 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_definitions;
@@ -1822,7 +1797,6 @@ void action_33(struct Runtime* runtime, struct Variables* variables) {
 void action_34(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_500, sizeof(symbol_500)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_501, sizeof(symbol_501)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_502, sizeof(symbol_502)-1), 0, NULL);
@@ -1831,7 +1805,6 @@ void action_34(struct Runtime* runtime, struct Variables* variables) {
 void action_35(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_510, sizeof(symbol_510)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_511, sizeof(symbol_511)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_512, sizeof(symbol_512)-1), 0, NULL);
@@ -1848,7 +1821,6 @@ void action_35(struct Runtime* runtime, struct Variables* variables) {
 void action_36(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_524, sizeof(symbol_524)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_525, sizeof(symbol_525)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_526, sizeof(symbol_526)-1), 0, NULL);
@@ -1874,14 +1846,12 @@ void action_37(struct Runtime* runtime, struct Variables* variables) {
 void action_38(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     run_action(lookup_action(variables, buffer_from_cstring(symbol_534, sizeof(symbol_534)-1)), runtime);
 }
 
 void action_39(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_550, sizeof(symbol_550)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_551, sizeof(symbol_551)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_552, sizeof(symbol_552)-1), 0, NULL);
@@ -1896,7 +1866,6 @@ void action_39(struct Runtime* runtime, struct Variables* variables) {
 void action_40(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_558, sizeof(symbol_558)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_559, sizeof(symbol_559)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_560, sizeof(symbol_560)-1), 0, NULL);
@@ -1907,7 +1876,6 @@ void action_40(struct Runtime* runtime, struct Variables* variables) {
 void action_41(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_568, sizeof(symbol_568)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_569, sizeof(symbol_569)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_570, sizeof(symbol_570)-1), 0, NULL);
@@ -1920,7 +1888,6 @@ void action_41(struct Runtime* runtime, struct Variables* variables) {
 void action_42(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
@@ -1941,7 +1908,6 @@ void action_42(struct Runtime* runtime, struct Variables* variables) {
 void action_43(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_587, sizeof(symbol_587)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_588, sizeof(symbol_588)-1)), runtime);
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_589, sizeof(symbol_589)-1), 0, NULL);
@@ -1951,7 +1917,6 @@ void action_43(struct Runtime* runtime, struct Variables* variables) {
 void action_44(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_593, sizeof(symbol_593)-1), 0, NULL);
     run_action(lookup_action(variables, buffer_from_cstring(symbol_594, sizeof(symbol_594)-1)), runtime);
 }
@@ -1976,7 +1941,6 @@ void action_45(struct Runtime* runtime, struct Variables* variables) {
 void action_46(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
@@ -1997,14 +1961,12 @@ void action_46(struct Runtime* runtime, struct Variables* variables) {
 void action_47(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     append_data(runtime->current_chunks, buffer_from_cstring(symbol_616, sizeof(symbol_616)-1), 0, NULL);
 }
 
 void action_48(struct Runtime* runtime, struct Variables* variables) {
     struct Chunks* chunks;
     struct Chunks* last_chunks;
-    struct Action* action;
     runtime->W_2 = inc(runtime->W_2 ? runtime->W_2 : 0, 1);
     last_chunks = runtime->current_chunks;
     chunks = runtime->named_chunks_symbols;
@@ -2771,7 +2733,7 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
     variables = create_variables();
     _ = rule_space(parse_state);
     if (_) {
-        data = buffer_from_cstring(symbol_449, sizeof(symbol_449)-1);
+        data = buffer_from_cstring(symbol_448, sizeof(symbol_448)-1);
         if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
             parse_state->pos += data->size;
             _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2780,9 +2742,9 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
         }
         if (_) {
             _ = rule_nameAsSymbol(parse_state);
-            append_named_action(variables, buffer_from_cstring(symbol_450, sizeof(symbol_450)-1), _);
+            append_named_action(variables, buffer_from_cstring(symbol_449, sizeof(symbol_449)-1), _);
             if (_) {
-                data = buffer_from_cstring(symbol_451, sizeof(symbol_451)-1);
+                data = buffer_from_cstring(symbol_450, sizeof(symbol_450)-1);
                 if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                     parse_state->pos += data->size;
                     _ = create_action(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);
@@ -2802,11 +2764,11 @@ struct Action* rule_actionexpr(struct ParseState* parse_state) {
                         append_named_action(star_variables, NULL, _);
                     }
                     _ = create_action(NULL, star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
-                    append_named_action(variables, buffer_from_cstring(symbol_452, sizeof(symbol_452)-1), _);
+                    append_named_action(variables, buffer_from_cstring(symbol_451, sizeof(symbol_451)-1), _);
                     if (_) {
                         _ = rule_space(parse_state);
                         if (_) {
-                            data = buffer_from_cstring(symbol_453, sizeof(symbol_453)-1);
+                            data = buffer_from_cstring(symbol_452, sizeof(symbol_452)-1);
                             if (parse_state->input_buffer->size-parse_state->pos >= data->size && compare_buffers(data, create_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size))) {
                                 parse_state->pos += data->size;
                                 _ = create_action(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 d477756..ca52e33 100644
--- a/src/meta/meta.meta
+++ b/src/meta/meta.meta
@@ -462,7 +462,7 @@ action =
             "void action_" W[0] "(struct Runtime* runtime, struct Variables* variables) {\n" >
                 "struct Chunks* chunks;\n"
                 "struct Chunks* last_chunks;\n"
-                "struct Action* action;\n"
+                <actionVars
                 xs
             < "}\n"
             "\n"
@@ -476,6 +476,9 @@ action =
 
 actionexpr =
     | space 'unseen(' nameAsSymbol:x ') -> {' actionexpr*:ys space '}' -> {
+        >actionVars {
+            "struct Action* action;\n"
+        }
         "action = lookup_action(variables, " x ");\n"
         "if (!seen(runtime->current_chunks, create_slice(action->input_buffer, action->start, action->end))) {\n" >
             ys

commit cc410ea6a279317b122d32d66a225f9cb1865bbd
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Tue Nov 4 21:44:11 2025 +0100

    Add performance timings to make

diff --git a/make.sh b/make.sh
index ccdf888..cfef204 100755
--- a/make.sh
+++ b/make.sh
@@ -51,6 +51,10 @@ meta() {
     c_compile src/meta/meta.c out/meta
     meta_compile src/meta/meta.meta out/meta_meta.c
     test_same src/meta/meta.c ./out/meta_meta.c
+    banner "Meta Performance Self"
+    time out/meta <src/meta/meta.meta >/dev/null
+    time out/meta <src/meta/meta.meta >/dev/null
+    time out/meta <src/meta/meta.meta >/dev/null
 }
 
 banner() {

2025-11-03 08:54 Rickard pushed to rlworkbench

commit 100e1a1a757f008c2b4c514e3593682439169893
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 08:53:17 2025 +0100

    Clear output directory before build

diff --git a/make.sh b/make.sh
index a601057..ccdf888 100755
--- a/make.sh
+++ b/make.sh
@@ -3,7 +3,8 @@
 main() {
     set -e
     cd "$(dirname "$0")"
-    mkdir -p out
+    rm -rf out
+    mkdir out
     experiments
     examples
 }

commit 3e498a5775ead7865953bc60e4957edb3559f153
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 08:36:32 2025 +0100

    Create src directory

diff --git a/accept.sh b/accept.sh
index 8bf8988..96fb998 100755
--- a/accept.sh
+++ b/accept.sh
@@ -4,6 +4,6 @@ set -e
 
 cd "$(dirname "$0")"
 
-mv out/meta_meta.c meta/meta.c
+mv out/meta_meta.c src/meta/meta.c
 
 ./make.sh
diff --git a/make.sh b/make.sh
index 4faa19f..a601057 100755
--- a/make.sh
+++ b/make.sh
@@ -16,7 +16,7 @@ experiments() {
 
 experiment() {
     banner "Experiment $1"
-    c_compile experiments/$1.c out/$1
+    c_compile src/experiments/$1.c out/$1
     ./out/$1
 }
 
@@ -31,14 +31,14 @@ examples() {
 
 example() {
     banner "Example: $1"
-    meta_compile examples/$1/$1.meta out/$1.c
+    meta_compile src/examples/$1/$1.meta out/$1.c
     c_compile out/$1.c out/$1
 }
 
 test_example() {
     example=$1
-    in=examples/$example/$2
-    expected_out=examples/$example/$3
+    in=src/examples/$example/$2
+    expected_out=src/examples/$example/$3
     actual_out=out/actual_$3
     echo "Compiling $in -> $actual_out"
     ./out/$example <$in >$actual_out
@@ -47,9 +47,9 @@ test_example() {
 
 meta() {
     banner "Meta"
-    c_compile meta/meta.c out/meta
-    meta_compile meta/meta.meta out/meta_meta.c
-    test_same ./meta/meta.c ./out/meta_meta.c
+    c_compile src/meta/meta.c out/meta
+    meta_compile src/meta/meta.meta out/meta_meta.c
+    test_same src/meta/meta.c ./out/meta_meta.c
 }
 
 banner() {
diff --git a/examples/computerenhance_decoder/computerenhance_decoder.meta b/src/examples/computerenhance_decoder/computerenhance_decoder.meta
similarity index 100%
rename from examples/computerenhance_decoder/computerenhance_decoder.meta
rename to src/examples/computerenhance_decoder/computerenhance_decoder.meta
diff --git a/examples/computerenhance_decoder/listing_0037_single_register_mov b/src/examples/computerenhance_decoder/listing_0037_single_register_mov
similarity index 100%
rename from examples/computerenhance_decoder/listing_0037_single_register_mov
rename to src/examples/computerenhance_decoder/listing_0037_single_register_mov
diff --git a/examples/computerenhance_decoder/listing_0037_single_register_mov.asm b/src/examples/computerenhance_decoder/listing_0037_single_register_mov.asm
similarity index 100%
rename from examples/computerenhance_decoder/listing_0037_single_register_mov.asm
rename to src/examples/computerenhance_decoder/listing_0037_single_register_mov.asm
diff --git a/examples/computerenhance_decoder/listing_0038_many_register_mov b/src/examples/computerenhance_decoder/listing_0038_many_register_mov
similarity index 100%
rename from examples/computerenhance_decoder/listing_0038_many_register_mov
rename to src/examples/computerenhance_decoder/listing_0038_many_register_mov
diff --git a/examples/computerenhance_decoder/listing_0038_many_register_mov.asm b/src/examples/computerenhance_decoder/listing_0038_many_register_mov.asm
similarity index 100%
rename from examples/computerenhance_decoder/listing_0038_many_register_mov.asm
rename to src/examples/computerenhance_decoder/listing_0038_many_register_mov.asm
diff --git a/examples/table/table.meta b/src/examples/table/table.meta
similarity index 100%
rename from examples/table/table.meta
rename to src/examples/table/table.meta
diff --git a/examples/table/table_in.txt b/src/examples/table/table_in.txt
similarity index 100%
rename from examples/table/table_in.txt
rename to src/examples/table/table_in.txt
diff --git a/examples/table/table_out.txt b/src/examples/table/table_out.txt
similarity index 100%
rename from examples/table/table_out.txt
rename to src/examples/table/table_out.txt
diff --git a/experiments/bitmanipulation.c b/src/experiments/bitmanipulation.c
similarity index 100%
rename from experiments/bitmanipulation.c
rename to src/experiments/bitmanipulation.c
diff --git a/experiments/sizes.c b/src/experiments/sizes.c
similarity index 100%
rename from experiments/sizes.c
rename to src/experiments/sizes.c
diff --git a/experiments/strings.c b/src/experiments/strings.c
similarity index 100%
rename from experiments/strings.c
rename to src/experiments/strings.c
diff --git a/meta/meta.c b/src/meta/meta.c
similarity index 100%
rename from meta/meta.c
rename to src/meta/meta.c
diff --git a/meta/meta.meta b/src/meta/meta.meta
similarity index 100%
rename from meta/meta.meta
rename to src/meta/meta.meta

commit 8c2fea53520e13e925fa125ba627c0268936d9a4
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 08:34:18 2025 +0100

    Only depend on sh and not bash

diff --git a/accept.sh b/accept.sh
index e79a1c4..8bf8988 100755
--- a/accept.sh
+++ b/accept.sh
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/usr/bin/env sh
 
 set -e
 
diff --git a/make.sh b/make.sh
index 5c497a0..4faa19f 100755
--- a/make.sh
+++ b/make.sh
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/usr/bin/env sh
 
 main() {
     set -e

commit 5d3c04e6e291f9f5a4c432dd9336c5ea54efbcc9
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 08:33:50 2025 +0100

    Move accept script to top level

diff --git a/meta/accept.sh b/accept.sh
similarity index 66%
rename from meta/accept.sh
rename to accept.sh
index 26d3e00..e79a1c4 100755
--- a/meta/accept.sh
+++ b/accept.sh
@@ -4,6 +4,6 @@ set -e
 
 cd "$(dirname "$0")"
 
-mv meta_meta.c meta.c
+mv out/meta_meta.c meta/meta.c
 
 ./make.sh

commit 47f5cfe6954e4c0414d246059c6b4462c4f098c8
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 08:29:42 2025 +0100

    Better name

diff --git a/examples/computerenhance_homework_instruction_decoder/computerenhance_homework_instruction_decoder.meta b/examples/computerenhance_decoder/computerenhance_decoder.meta
similarity index 100%
rename from examples/computerenhance_homework_instruction_decoder/computerenhance_homework_instruction_decoder.meta
rename to examples/computerenhance_decoder/computerenhance_decoder.meta
diff --git a/examples/computerenhance_homework_instruction_decoder/listing_0037_single_register_mov b/examples/computerenhance_decoder/listing_0037_single_register_mov
similarity index 100%
rename from examples/computerenhance_homework_instruction_decoder/listing_0037_single_register_mov
rename to examples/computerenhance_decoder/listing_0037_single_register_mov
diff --git a/examples/computerenhance_homework_instruction_decoder/listing_0037_single_register_mov.asm b/examples/computerenhance_decoder/listing_0037_single_register_mov.asm
similarity index 100%
rename from examples/computerenhance_homework_instruction_decoder/listing_0037_single_register_mov.asm
rename to examples/computerenhance_decoder/listing_0037_single_register_mov.asm
diff --git a/examples/computerenhance_homework_instruction_decoder/listing_0038_many_register_mov b/examples/computerenhance_decoder/listing_0038_many_register_mov
similarity index 100%
rename from examples/computerenhance_homework_instruction_decoder/listing_0038_many_register_mov
rename to examples/computerenhance_decoder/listing_0038_many_register_mov
diff --git a/examples/computerenhance_homework_instruction_decoder/listing_0038_many_register_mov.asm b/examples/computerenhance_decoder/listing_0038_many_register_mov.asm
similarity index 100%
rename from examples/computerenhance_homework_instruction_decoder/listing_0038_many_register_mov.asm
rename to examples/computerenhance_decoder/listing_0038_many_register_mov.asm
diff --git a/make.sh b/make.sh
index 39d2917..5c497a0 100755
--- a/make.sh
+++ b/make.sh
@@ -24,9 +24,9 @@ examples() {
     meta
     example table
     test_example table table_in.txt table_out.txt
-    example computerenhance_homework_instruction_decoder
-    test_example computerenhance_homework_instruction_decoder listing_0037_single_register_mov listing_0037_single_register_mov.asm
-    test_example computerenhance_homework_instruction_decoder listing_0038_many_register_mov listing_0038_many_register_mov.asm
+    example computerenhance_decoder
+    test_example computerenhance_decoder listing_0037_single_register_mov listing_0037_single_register_mov.asm
+    test_example computerenhance_decoder listing_0038_many_register_mov listing_0038_many_register_mov.asm
 }
 
 example() {

commit 1e1844c754555d883c8245373f4dd78aea152f17
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 08:26:34 2025 +0100

    Better names

diff --git a/examples/table/in.txt b/examples/table/table_in.txt
similarity index 100%
rename from examples/table/in.txt
rename to examples/table/table_in.txt
diff --git a/examples/table/expected_out.txt b/examples/table/table_out.txt
similarity index 100%
rename from examples/table/expected_out.txt
rename to examples/table/table_out.txt
diff --git a/make.sh b/make.sh
index ccfdc34..39d2917 100755
--- a/make.sh
+++ b/make.sh
@@ -23,7 +23,7 @@ experiment() {
 examples() {
     meta
     example table
-    test_example table in.txt expected_out.txt
+    test_example table table_in.txt table_out.txt
     example computerenhance_homework_instruction_decoder
     test_example computerenhance_homework_instruction_decoder listing_0037_single_register_mov listing_0037_single_register_mov.asm
     test_example computerenhance_homework_instruction_decoder listing_0038_many_register_mov listing_0038_many_register_mov.asm
@@ -37,11 +37,12 @@ example() {
 
 test_example() {
     example=$1
-    in=$2
-    out=$3
-    echo "Compiling $in -> $out"
-    ./out/$example <examples/$example/$in >out/${example}_actual_${out}
-    test_same out/${example}_actual_${out} examples/${example}/${out}
+    in=examples/$example/$2
+    expected_out=examples/$example/$3
+    actual_out=out/actual_$3
+    echo "Compiling $in -> $actual_out"
+    ./out/$example <$in >$actual_out
+    test_same $expected_out $actual_out
 }
 
 meta() {

commit 590ceca2e48deee5bec3465468fb0d99b61eac55
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 08:18:47 2025 +0100

    Better names for examples

diff --git a/examples/computerenhance_homework_instruction_decoder/listing_0037_single_register_mov_in.txt b/examples/computerenhance_homework_instruction_decoder/listing_0037_single_register_mov
similarity index 100%
rename from examples/computerenhance_homework_instruction_decoder/listing_0037_single_register_mov_in.txt
rename to examples/computerenhance_homework_instruction_decoder/listing_0037_single_register_mov
diff --git a/examples/computerenhance_homework_instruction_decoder/expected_listing_0037_single_register_mov_out.txt b/examples/computerenhance_homework_instruction_decoder/listing_0037_single_register_mov.asm
similarity index 100%
rename from examples/computerenhance_homework_instruction_decoder/expected_listing_0037_single_register_mov_out.txt
rename to examples/computerenhance_homework_instruction_decoder/listing_0037_single_register_mov.asm
diff --git a/examples/computerenhance_homework_instruction_decoder/listing_0038_many_register_mov_in.txt b/examples/computerenhance_homework_instruction_decoder/listing_0038_many_register_mov
similarity index 100%
rename from examples/computerenhance_homework_instruction_decoder/listing_0038_many_register_mov_in.txt
rename to examples/computerenhance_homework_instruction_decoder/listing_0038_many_register_mov
diff --git a/examples/computerenhance_homework_instruction_decoder/expected_listing_0038_many_register_mov_out.txt b/examples/computerenhance_homework_instruction_decoder/listing_0038_many_register_mov.asm
similarity index 100%
rename from examples/computerenhance_homework_instruction_decoder/expected_listing_0038_many_register_mov_out.txt
rename to examples/computerenhance_homework_instruction_decoder/listing_0038_many_register_mov.asm
diff --git a/make.sh b/make.sh
index 66552f8..ccfdc34 100755
--- a/make.sh
+++ b/make.sh
@@ -25,8 +25,8 @@ examples() {
     example table
     test_example table in.txt expected_out.txt
     example computerenhance_homework_instruction_decoder
-    test_example computerenhance_homework_instruction_decoder listing_0037_single_register_mov_in.txt expected_listing_0037_single_register_mov_out.txt
-    test_example computerenhance_homework_instruction_decoder listing_0038_many_register_mov_in.txt expected_listing_0038_many_register_mov_out.txt
+    test_example computerenhance_homework_instruction_decoder listing_0037_single_register_mov listing_0037_single_register_mov.asm
+    test_example computerenhance_homework_instruction_decoder listing_0038_many_register_mov listing_0038_many_register_mov.asm
 }
 
 example() {
@@ -39,9 +39,9 @@ test_example() {
     example=$1
     in=$2
     out=$3
-    echo "Testing $in -> $out"
-    ./out/$example <examples/$example/$in >out/${example}_${out}
-    test_same out/${example}_${out} examples/${example}/${out}
+    echo "Compiling $in -> $out"
+    ./out/$example <examples/$example/$in >out/${example}_actual_${out}
+    test_same out/${example}_actual_${out} examples/${example}/${out}
 }
 
 meta() {

commit 7c75d28fdac56562fc70a8b653ac3a7b94a5e7b7
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 08:11:46 2025 +0100

    Express dependenceis in make.sh

diff --git a/make.sh b/make.sh
index b8655e6..66552f8 100755
--- a/make.sh
+++ b/make.sh
@@ -5,7 +5,6 @@ main() {
     cd "$(dirname "$0")"
     mkdir -p out
     experiments
-    meta
     examples
 }
 
@@ -17,18 +16,12 @@ experiments() {
 
 experiment() {
     banner "Experiment $1"
-    compile experiments/$1.c out/$1
+    c_compile experiments/$1.c out/$1
     ./out/$1
 }
 
-meta() {
-    banner "Meta"
-    compile meta/meta.c out/meta
-    meta_compile meta/meta.meta out/meta_meta.c
-    test_same ./meta/meta.c ./out/meta_meta.c
-}
-
 examples() {
+    meta
     example table
     test_example table in.txt expected_out.txt
     example computerenhance_homework_instruction_decoder
@@ -39,7 +32,7 @@ examples() {
 example() {
     banner "Example: $1"
     meta_compile examples/$1/$1.meta out/$1.c
-    compile out/$1.c out/$1
+    c_compile out/$1.c out/$1
 }
 
 test_example() {
@@ -51,6 +44,13 @@ test_example() {
     test_same out/${example}_${out} examples/${example}/${out}
 }
 
+meta() {
+    banner "Meta"
+    c_compile meta/meta.c out/meta
+    meta_compile meta/meta.meta out/meta_meta.c
+    test_same ./meta/meta.c ./out/meta_meta.c
+}
+
 banner() {
     echo "-------------------------"
     echo "$1"
@@ -68,7 +68,7 @@ meta_compile() {
     ./out/meta <$1 >$2
 }
 
-compile() {
+c_compile() {
     echo "Compiling $1 -> $2"
     gcc -Wfatal-errors -Werror -o $2 $1
 }

commit 3abb10a80bf8804027036d6fb1cd9f818bc3d737
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 08:09:26 2025 +0100

    Move set -e into main

diff --git a/make.sh b/make.sh
index ef7c962..b8655e6 100755
--- a/make.sh
+++ b/make.sh
@@ -1,8 +1,7 @@
 #!/usr/bin/env bash
 
-set -e
-
 main() {
+    set -e
     cd "$(dirname "$0")"
     mkdir -p out
     experiments

commit 6a7c7134657dac80e7d343d1361861003012ab96
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 08:07:40 2025 +0100

    Inline examples/make.sh into make.sh

diff --git a/examples/.gitignore b/examples/.gitignore
deleted file mode 100644
index d32b0fb..0000000
--- a/examples/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-*/*.c
-
-table/table
-table/out.txt
-computerenhance_homework_instruction_decoder/computerenhance_homework_instruction_decoder
-computerenhance_homework_instruction_decoder/listing_0037_single_register_mov_out.txt
-computerenhance_homework_instruction_decoder/listing_0038_many_register_mov_out.txt
diff --git a/examples/make.sh b/examples/make.sh
deleted file mode 100755
index f13c2aa..0000000
--- a/examples/make.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-cd "$(dirname "$0")"
-
-run() {
-    echo "-------------------------"
-    echo "Example: $1"
-    echo "-------------------------"
-    ../meta/meta <$1/$1.meta >$1/$1.c
-    gcc -Wfatal-errors -Werror -o $1/$1 $1/$1.c
-    for input in $(ls $1/*in.txt); do
-        input_file=$(basename $input)
-        output_file=${input_file/%in.txt/out.txt}
-        echo "Testing $input_file"
-        ./$1/$1 <$1/$input_file >$1/$output_file
-        diff $1/$output_file $1/expected_$output_file
-        echo OK
-    done
-}
-
-run table
-run computerenhance_homework_instruction_decoder
diff --git a/make.sh b/make.sh
index 2a3e2ec..ef7c962 100755
--- a/make.sh
+++ b/make.sh
@@ -7,7 +7,7 @@ main() {
     mkdir -p out
     experiments
     meta
-    ./examples/make.sh
+    examples
 }
 
 experiments() {
@@ -24,14 +24,32 @@ experiment() {
 
 meta() {
     banner "Meta"
-
     compile meta/meta.c out/meta
-    ./out/meta <meta/meta.meta >out/meta_meta.c
+    meta_compile meta/meta.meta out/meta_meta.c
+    test_same ./meta/meta.c ./out/meta_meta.c
+}
 
-    echo "Is metacompiler? Diff meta_meta.c"
-    diff ./meta/meta.c ./out/meta_meta.c
+examples() {
+    example table
+    test_example table in.txt expected_out.txt
+    example computerenhance_homework_instruction_decoder
+    test_example computerenhance_homework_instruction_decoder listing_0037_single_register_mov_in.txt expected_listing_0037_single_register_mov_out.txt
+    test_example computerenhance_homework_instruction_decoder listing_0038_many_register_mov_in.txt expected_listing_0038_many_register_mov_out.txt
+}
+
+example() {
+    banner "Example: $1"
+    meta_compile examples/$1/$1.meta out/$1.c
+    compile out/$1.c out/$1
+}
 
-    echo OK
+test_example() {
+    example=$1
+    in=$2
+    out=$3
+    echo "Testing $in -> $out"
+    ./out/$example <examples/$example/$in >out/${example}_${out}
+    test_same out/${example}_${out} examples/${example}/${out}
 }
 
 banner() {
@@ -40,8 +58,19 @@ banner() {
     echo "-------------------------"
 }
 
+test_same() {
+    echo "Test $1 == $2"
+    diff $1 $2
+    echo "OK"
+}
+
+meta_compile() {
+    echo "Compiling $1 -> $2"
+    ./out/meta <$1 >$2
+}
+
 compile() {
-    echo "Compiling $1"
+    echo "Compiling $1 -> $2"
     gcc -Wfatal-errors -Werror -o $2 $1
 }
 

commit c1998c34004f37241ba69b89f38a7cf20f368839
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 07:51:02 2025 +0100

    Inline meta/make.sh into make.sh

diff --git a/make.sh b/make.sh
index 64b0655..2a3e2ec 100755
--- a/make.sh
+++ b/make.sh
@@ -6,7 +6,7 @@ main() {
     cd "$(dirname "$0")"
     mkdir -p out
     experiments
-    ./meta/make.sh
+    meta
     ./examples/make.sh
 }
 
@@ -22,6 +22,18 @@ experiment() {
     ./out/$1
 }
 
+meta() {
+    banner "Meta"
+
+    compile meta/meta.c out/meta
+    ./out/meta <meta/meta.meta >out/meta_meta.c
+
+    echo "Is metacompiler? Diff meta_meta.c"
+    diff ./meta/meta.c ./out/meta_meta.c
+
+    echo OK
+}
+
 banner() {
     echo "-------------------------"
     echo "$1"
@@ -29,7 +41,8 @@ banner() {
 }
 
 compile() {
-    gcc -Wfatal-errors -Wall -Werror -o $2 $1
+    echo "Compiling $1"
+    gcc -Wfatal-errors -Werror -o $2 $1
 }
 
 main
diff --git a/meta/.gitignore b/meta/.gitignore
deleted file mode 100644
index 1242121..0000000
--- a/meta/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-meta
-meta_meta.c
diff --git a/meta/make.sh b/meta/make.sh
deleted file mode 100755
index 6a2f77f..0000000
--- a/meta/make.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-cd "$(dirname "$0")"
-
-echo "-------------------------"
-echo "Meta"
-echo "-------------------------"
-
-echo "Compiling meta"
-gcc -Wfatal-errors -Werror -o meta meta.c
-./meta <meta.meta >meta_meta.c
-
-echo "Is metacompiler? Diff meta_meta.c"
-diff meta.c meta_meta.c
-
-echo OK
-rm meta_meta.c

commit 61f9d1aab2dffd7b591c601076b69af17470713b
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 07:46:45 2025 +0100

    Extract banner

diff --git a/make.sh b/make.sh
index c343553..64b0655 100755
--- a/make.sh
+++ b/make.sh
@@ -17,13 +17,17 @@ experiments() {
 }
 
 experiment() {
-    echo "-------------------------"
-    echo "Experiment: $1"
-    echo "-------------------------"
+    banner "Experiment $1"
     compile experiments/$1.c out/$1
     ./out/$1
 }
 
+banner() {
+    echo "-------------------------"
+    echo "$1"
+    echo "-------------------------"
+}
+
 compile() {
     gcc -Wfatal-errors -Wall -Werror -o $2 $1
 }

commit ed8d6ee7be6d0e79905a98a04eb379d569910c25
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date:   Mon Nov 3 07:45:28 2025 +0100

    Inline experimens/make.sh into make.sh

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e2e7327
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/out
diff --git a/experiments/.gitignore b/experiments/.gitignore
deleted file mode 100644
index 9c29c87..0000000
--- a/experiments/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-sizes
-strings
-bitmanipulation
diff --git a/experiments/make.sh b/experiments/make.sh
deleted file mode 100755
index b76c26a..0000000
--- a/experiments/make.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-cd "$(dirname "$0")"
-
-run() {
-    echo "-------------------------"
-    echo "Experiment: $1"
-    echo "-------------------------"
-    gcc -Wfatal-errors -Wall -Werror -o $1 $1.c && ./$1
-}
-
-run sizes
-run strings
-run bitmanipulation
diff --git a/make.sh b/make.sh
index 73d256e..c343553 100755
--- a/make.sh
+++ b/make.sh
@@ -2,10 +2,30 @@
 
 set -e
 
-cd "$(dirname "$0")"
+main() {
+    cd "$(dirname "$0")"
+    mkdir -p out
+    experiments
+    ./meta/make.sh
+    ./examples/make.sh
+}
 
-./experiments/make.sh
+experiments() {
+    experiment sizes
+    experiment strings
+    experiment bitmanipulation
+}
 
-./meta/make.sh
+experiment() {
+    echo "-------------------------"
+    echo "Experiment: $1"
+    echo "-------------------------"
+    compile experiments/$1.c out/$1
+    ./out/$1
+}
 
-./examples/make.sh
+compile() {
+    gcc -Wfatal-errors -Wall -Werror -o $2 $1
+}
+
+main

2025-11-02 17:13 Rickard pushed to blog

fatal: Invalid revision range 964b135abba8d285721781a7ae3b6881a9ff05d4..8a6fd343f30a8a46adca571e86a89a6e24cd3ce0

2025-11-02 17:01 Rickard pushed to blog

fatal: Invalid revision range b3754b48d882d335cd4319a9cd26b29a8c339318..964b135abba8d285721781a7ae3b6881a9ff05d4

2025-11-02 17:00 Rickard pushed to blog

fatal: Invalid revision range 90963811c42ac54860b445d85fffb088673ce698..b3754b48d882d335cd4319a9cd26b29a8c339318