This site hosts my projects.
commit d76f04d074edaceec24e239549899141e6f23d44
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 20:33:53 2025 +0100
More robust leak detection?
diff --git a/debug.sh b/debug.sh
index 65baeb6..c0d459e 100755
--- a/debug.sh
+++ b/debug.sh
@@ -1,3 +1,3 @@
#!/usr/bin/env sh
-CFLAGS="-fsanitize=address" ./make.sh "$@"
+LSAN_OPTIONS=use_stacks=0 CFLAGS="-fsanitize=address" ./make.sh "$@"
commit 8a742a9d7008eb8d7f0906b21a02eaa651514c88
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 19:25:33 2025 +0100
Free arena in standalone languages
diff --git a/src/languages/language_meta.c b/src/languages/language_meta.c
index 9edf2fa..d17e7b1 100644
--- a/src/languages/language_meta.c
+++ b/src/languages/language_meta.c
@@ -111,443 +111,445 @@ static String language_meta_string_50 = {24, "rule_main(parse_state);\n"};
static String language_meta_string_51 = {28, "ListItem* placeholder_item;\n"};
static String language_meta_string_52 = {21, "if (!action.valid) {\n"};
static String language_meta_string_53 = {109, "fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n"};
-static String language_meta_string_54 = {9, "exit(1);\n"};
-static String language_meta_string_55 = {2, "}\n"};
-static String language_meta_string_56 = {25, "arg_shift(&argc, &argv);\n"};
-static String language_meta_string_57 = {46, "if (arg_consume(&argc, &argv, \"highlight\")) {\n"};
-static String language_meta_string_58 = {43, "if (arg_consume(&argc, &argv, \"--html\")) {\n"};
-static String language_meta_string_59 = {34, "meta_highlight_html(parse_state);\n"};
-static String language_meta_string_60 = {9, "} else {\n"};
-static String language_meta_string_61 = {38, "meta_highlight_terminal(parse_state);\n"};
-static String language_meta_string_62 = {2, "}\n"};
-static String language_meta_string_63 = {9, "} else {\n"};
-static String language_meta_string_64 = {37, "parse_size = arena.used - input_pos;\n"};
-static String language_meta_string_65 = {24, "parse_pos = arena.used;\n"};
-static String language_meta_string_66 = {84, "meta_action_run(&action, runtime, runtime->current_string_builder, runtime->arena);\n"};
-static String language_meta_string_67 = {59, "placeholder_item = runtime->placeholders->pre_first->next;\n"};
-static String language_meta_string_68 = {27, "while (placeholder_item) {\n"};
-static String language_meta_string_69 = {55, "MetaPlaceholder* placeholder = placeholder_item->data;\n"};
-static String language_meta_string_70 = {63, "runtime->current_string_builder = placeholder->string_builder;\n"};
-static String language_meta_string_71 = {97, "meta_action_run(&placeholder->action, runtime, runtime->current_string_builder, runtime->arena);\n"};
-static String language_meta_string_72 = {43, "placeholder_item = placeholder_item->next;\n"};
-static String language_meta_string_73 = {2, "}\n"};
-static String language_meta_string_74 = {53, "string_builder_render(runtime->main_string_builder);\n"};
-static String language_meta_string_75 = {39, "codegen_size = arena.used - parse_pos;\n"};
-static String language_meta_string_76 = {82, "fprintf(stderr, \" DEBUG: Input size = %d\\n\", parse_state->input_buffer->size);\n"};
-static String language_meta_string_77 = {61, "fprintf(stderr, \" DEBUG: Parse size = %d\\n\", parse_size);\n"};
-static String language_meta_string_78 = {94, "fprintf(stderr, \" DEBUG: Ratio = %dx\\n\", parse_size/parse_state->input_buffer->size);\n"};
-static String language_meta_string_79 = {63, "fprintf(stderr, \" DEBUG: Codegen size = %d\\n\", codegen_size);\n"};
-static String language_meta_string_80 = {96, "fprintf(stderr, \" DEBUG: Ratio = %dx\\n\", codegen_size/parse_state->input_buffer->size);\n"};
-static String language_meta_string_81 = {61, "fprintf(stderr, \" DEBUG: Total size = %d\\n\", arena.used);\n"};
-static String language_meta_string_82 = {2, "}\n"};
-static String language_meta_string_83 = {10, "return 0;\n"};
-static String language_meta_string_84 = {2, "}\n"};
-static String language_meta_string_85 = {7, "#endif\n"};
-static String language_meta_string_86 = {1, "="};
-static String language_meta_string_87 = {1, ";"};
-static String language_meta_string_88 = {11, "MetaAction "};
-static String language_meta_string_89 = {31, "(MetaParseState* parse_state);\n"};
+static String language_meta_string_54 = {20, "arena_free(&arena);\n"};
+static String language_meta_string_55 = {9, "exit(1);\n"};
+static String language_meta_string_56 = {2, "}\n"};
+static String language_meta_string_57 = {25, "arg_shift(&argc, &argv);\n"};
+static String language_meta_string_58 = {46, "if (arg_consume(&argc, &argv, \"highlight\")) {\n"};
+static String language_meta_string_59 = {43, "if (arg_consume(&argc, &argv, \"--html\")) {\n"};
+static String language_meta_string_60 = {34, "meta_highlight_html(parse_state);\n"};
+static String language_meta_string_61 = {9, "} else {\n"};
+static String language_meta_string_62 = {38, "meta_highlight_terminal(parse_state);\n"};
+static String language_meta_string_63 = {2, "}\n"};
+static String language_meta_string_64 = {9, "} else {\n"};
+static String language_meta_string_65 = {37, "parse_size = arena.used - input_pos;\n"};
+static String language_meta_string_66 = {24, "parse_pos = arena.used;\n"};
+static String language_meta_string_67 = {84, "meta_action_run(&action, runtime, runtime->current_string_builder, runtime->arena);\n"};
+static String language_meta_string_68 = {59, "placeholder_item = runtime->placeholders->pre_first->next;\n"};
+static String language_meta_string_69 = {27, "while (placeholder_item) {\n"};
+static String language_meta_string_70 = {55, "MetaPlaceholder* placeholder = placeholder_item->data;\n"};
+static String language_meta_string_71 = {63, "runtime->current_string_builder = placeholder->string_builder;\n"};
+static String language_meta_string_72 = {97, "meta_action_run(&placeholder->action, runtime, runtime->current_string_builder, runtime->arena);\n"};
+static String language_meta_string_73 = {43, "placeholder_item = placeholder_item->next;\n"};
+static String language_meta_string_74 = {2, "}\n"};
+static String language_meta_string_75 = {53, "string_builder_render(runtime->main_string_builder);\n"};
+static String language_meta_string_76 = {39, "codegen_size = arena.used - parse_pos;\n"};
+static String language_meta_string_77 = {82, "fprintf(stderr, \" DEBUG: Input size = %d\\n\", parse_state->input_buffer->size);\n"};
+static String language_meta_string_78 = {61, "fprintf(stderr, \" DEBUG: Parse size = %d\\n\", parse_size);\n"};
+static String language_meta_string_79 = {94, "fprintf(stderr, \" DEBUG: Ratio = %dx\\n\", parse_size/parse_state->input_buffer->size);\n"};
+static String language_meta_string_80 = {63, "fprintf(stderr, \" DEBUG: Codegen size = %d\\n\", codegen_size);\n"};
+static String language_meta_string_81 = {96, "fprintf(stderr, \" DEBUG: Ratio = %dx\\n\", codegen_size/parse_state->input_buffer->size);\n"};
+static String language_meta_string_82 = {61, "fprintf(stderr, \" DEBUG: Total size = %d\\n\", arena.used);\n"};
+static String language_meta_string_83 = {2, "}\n"};
+static String language_meta_string_84 = {20, "arena_free(&arena);\n"};
+static String language_meta_string_85 = {10, "return 0;\n"};
+static String language_meta_string_86 = {2, "}\n"};
+static String language_meta_string_87 = {7, "#endif\n"};
+static String language_meta_string_88 = {1, "="};
+static String language_meta_string_89 = {1, ";"};
static String language_meta_string_90 = {11, "MetaAction "};
-static String language_meta_string_91 = {32, "(MetaParseState* parse_state) {\n"};
-static String language_meta_string_92 = {31, "unsigned int or_backtrack_pos;\n"};
-static String language_meta_string_93 = {31, "unsigned int action_start_pos;\n"};
-static String language_meta_string_94 = {22, "Highlight highlight = "};
-static String language_meta_string_95 = {2, ";\n"};
-static String language_meta_string_96 = {37, "return meta_action_create_invalid();\n"};
-static String language_meta_string_97 = {2, "}\n"};
-static String language_meta_string_98 = {1, "\n"};
-static String language_meta_string_99 = {1, "["};
-static String language_meta_string_100 = {1, "]"};
-static String language_meta_string_101 = {10, "Highlight_"};
-static String language_meta_string_102 = {14, "Highlight_None"};
-static String language_meta_string_103 = {37, "or_backtrack_pos = parse_state->pos;\n"};
-static String language_meta_string_104 = {59, "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n"};
-static String language_meta_string_105 = {37, "action_start_pos = parse_state->pos;\n"};
-static String language_meta_string_106 = {7, "struct "};
-static String language_meta_string_107 = {6, "Action"};
-static String language_meta_string_108 = {7, "Vars {\n"};
-static String language_meta_string_109 = {3, "};\n"};
-static String language_meta_string_110 = {15, "if (_.valid) {\n"};
-static String language_meta_string_111 = {2, "}\n"};
-static String language_meta_string_112 = {29, "unsigned int nlookahead_pos;\n"};
-static String language_meta_string_113 = {29, "unsigned int nlookahead_pos;\n"};
-static String language_meta_string_114 = {14, "MetaAction _;\n"};
-static String language_meta_string_115 = {14, "MetaAction _;\n"};
-static String language_meta_string_116 = {35, "nlookahead_pos = parse_state->pos;\n"};
-static String language_meta_string_117 = {15, "if (_.valid) {\n"};
-static String language_meta_string_118 = {34, "_ = meta_action_create_invalid();\n"};
-static String language_meta_string_119 = {9, "} else {\n"};
-static String language_meta_string_120 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
-static String language_meta_string_121 = {2, "}\n"};
-static String language_meta_string_122 = {57, "meta_parse_state_backtrack(parse_state, nlookahead_pos);\n"};
-static String language_meta_string_123 = {28, "unsigned int lookahead_pos;\n"};
-static String language_meta_string_124 = {28, "unsigned int lookahead_pos;\n"};
-static String language_meta_string_125 = {14, "MetaAction _;\n"};
-static String language_meta_string_126 = {14, "MetaAction _;\n"};
-static String language_meta_string_127 = {34, "lookahead_pos = parse_state->pos;\n"};
-static String language_meta_string_128 = {15, "if (_.valid) {\n"};
-static String language_meta_string_129 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
-static String language_meta_string_130 = {9, "} else {\n"};
-static String language_meta_string_131 = {34, "_ = meta_action_create_invalid();\n"};
-static String language_meta_string_132 = {2, "}\n"};
-static String language_meta_string_133 = {56, "meta_parse_state_backtrack(parse_state, lookahead_pos);\n"};
-static String language_meta_string_134 = {11, "MetaAction "};
-static String language_meta_string_135 = {2, ";\n"};
-static String language_meta_string_136 = {9, "((struct "};
-static String language_meta_string_137 = {6, "Action"};
-static String language_meta_string_138 = {10, "Vars*)vars"};
-static String language_meta_string_139 = {3, ")->"};
-static String language_meta_string_140 = {6, " = _;\n"};
-static String language_meta_string_141 = {22, "List* star_variables;\n"};
-static String language_meta_string_142 = {22, "List* star_variables;\n"};
-static String language_meta_string_143 = {23, "unsigned int star_pos;\n"};
-static String language_meta_string_144 = {23, "unsigned int star_pos;\n"};
-static String language_meta_string_145 = {29, "unsigned int star_start_pos;\n"};
-static String language_meta_string_146 = {29, "unsigned int star_start_pos;\n"};
-static String language_meta_string_147 = {14, "MetaAction _;\n"};
-static String language_meta_string_148 = {14, "MetaAction _;\n"};
-static String language_meta_string_149 = {50, "star_variables = list_create(parse_state->arena);\n"};
-static String language_meta_string_150 = {35, "star_start_pos = parse_state->pos;\n"};
-static String language_meta_string_151 = {12, "while (1) {\n"};
-static String language_meta_string_152 = {29, "star_pos = parse_state->pos;\n"};
-static String language_meta_string_153 = {16, "if (!_.valid) {\n"};
-static String language_meta_string_154 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
-static String language_meta_string_155 = {7, "break;\n"};
-static String language_meta_string_156 = {2, "}\n"};
-static String language_meta_string_157 = {112, "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n"};
+static String language_meta_string_91 = {31, "(MetaParseState* parse_state);\n"};
+static String language_meta_string_92 = {11, "MetaAction "};
+static String language_meta_string_93 = {32, "(MetaParseState* parse_state) {\n"};
+static String language_meta_string_94 = {31, "unsigned int or_backtrack_pos;\n"};
+static String language_meta_string_95 = {31, "unsigned int action_start_pos;\n"};
+static String language_meta_string_96 = {22, "Highlight highlight = "};
+static String language_meta_string_97 = {2, ";\n"};
+static String language_meta_string_98 = {37, "return meta_action_create_invalid();\n"};
+static String language_meta_string_99 = {2, "}\n"};
+static String language_meta_string_100 = {1, "\n"};
+static String language_meta_string_101 = {1, "["};
+static String language_meta_string_102 = {1, "]"};
+static String language_meta_string_103 = {10, "Highlight_"};
+static String language_meta_string_104 = {14, "Highlight_None"};
+static String language_meta_string_105 = {37, "or_backtrack_pos = parse_state->pos;\n"};
+static String language_meta_string_106 = {59, "meta_parse_state_backtrack(parse_state, or_backtrack_pos);\n"};
+static String language_meta_string_107 = {37, "action_start_pos = parse_state->pos;\n"};
+static String language_meta_string_108 = {7, "struct "};
+static String language_meta_string_109 = {6, "Action"};
+static String language_meta_string_110 = {7, "Vars {\n"};
+static String language_meta_string_111 = {3, "};\n"};
+static String language_meta_string_112 = {15, "if (_.valid) {\n"};
+static String language_meta_string_113 = {2, "}\n"};
+static String language_meta_string_114 = {29, "unsigned int nlookahead_pos;\n"};
+static String language_meta_string_115 = {29, "unsigned int nlookahead_pos;\n"};
+static String language_meta_string_116 = {14, "MetaAction _;\n"};
+static String language_meta_string_117 = {14, "MetaAction _;\n"};
+static String language_meta_string_118 = {35, "nlookahead_pos = parse_state->pos;\n"};
+static String language_meta_string_119 = {15, "if (_.valid) {\n"};
+static String language_meta_string_120 = {34, "_ = meta_action_create_invalid();\n"};
+static String language_meta_string_121 = {9, "} else {\n"};
+static String language_meta_string_122 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
+static String language_meta_string_123 = {2, "}\n"};
+static String language_meta_string_124 = {57, "meta_parse_state_backtrack(parse_state, nlookahead_pos);\n"};
+static String language_meta_string_125 = {28, "unsigned int lookahead_pos;\n"};
+static String language_meta_string_126 = {28, "unsigned int lookahead_pos;\n"};
+static String language_meta_string_127 = {14, "MetaAction _;\n"};
+static String language_meta_string_128 = {14, "MetaAction _;\n"};
+static String language_meta_string_129 = {34, "lookahead_pos = parse_state->pos;\n"};
+static String language_meta_string_130 = {15, "if (_.valid) {\n"};
+static String language_meta_string_131 = {69, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, 0, 0);\n"};
+static String language_meta_string_132 = {9, "} else {\n"};
+static String language_meta_string_133 = {34, "_ = meta_action_create_invalid();\n"};
+static String language_meta_string_134 = {2, "}\n"};
+static String language_meta_string_135 = {56, "meta_parse_state_backtrack(parse_state, lookahead_pos);\n"};
+static String language_meta_string_136 = {11, "MetaAction "};
+static String language_meta_string_137 = {2, ";\n"};
+static String language_meta_string_138 = {9, "((struct "};
+static String language_meta_string_139 = {6, "Action"};
+static String language_meta_string_140 = {10, "Vars*)vars"};
+static String language_meta_string_141 = {3, ")->"};
+static String language_meta_string_142 = {6, " = _;\n"};
+static String language_meta_string_143 = {22, "List* star_variables;\n"};
+static String language_meta_string_144 = {22, "List* star_variables;\n"};
+static String language_meta_string_145 = {23, "unsigned int star_pos;\n"};
+static String language_meta_string_146 = {23, "unsigned int star_pos;\n"};
+static String language_meta_string_147 = {29, "unsigned int star_start_pos;\n"};
+static String language_meta_string_148 = {29, "unsigned int star_start_pos;\n"};
+static String language_meta_string_149 = {14, "MetaAction _;\n"};
+static String language_meta_string_150 = {14, "MetaAction _;\n"};
+static String language_meta_string_151 = {50, "star_variables = list_create(parse_state->arena);\n"};
+static String language_meta_string_152 = {35, "star_start_pos = parse_state->pos;\n"};
+static String language_meta_string_153 = {12, "while (1) {\n"};
+static String language_meta_string_154 = {29, "star_pos = parse_state->pos;\n"};
+static String language_meta_string_155 = {16, "if (!_.valid) {\n"};
+static String language_meta_string_156 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
+static String language_meta_string_157 = {7, "break;\n"};
static String language_meta_string_158 = {2, "}\n"};
-static String language_meta_string_159 = {114, "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
-static String language_meta_string_160 = {23, "unsigned int star_pos;\n"};
-static String language_meta_string_161 = {23, "unsigned int star_pos;\n"};
-static String language_meta_string_162 = {29, "unsigned int star_start_pos;\n"};
-static String language_meta_string_163 = {29, "unsigned int star_start_pos;\n"};
-static String language_meta_string_164 = {14, "MetaAction _;\n"};
-static String language_meta_string_165 = {14, "MetaAction _;\n"};
-static String language_meta_string_166 = {35, "star_start_pos = parse_state->pos;\n"};
-static String language_meta_string_167 = {12, "while (1) {\n"};
-static String language_meta_string_168 = {29, "star_pos = parse_state->pos;\n"};
-static String language_meta_string_169 = {16, "if (!_.valid) {\n"};
-static String language_meta_string_170 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
-static String language_meta_string_171 = {7, "break;\n"};
-static String language_meta_string_172 = {2, "}\n"};
-static String language_meta_string_173 = {2, "}\n"};
-static String language_meta_string_174 = {97, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
-static String language_meta_string_175 = {1, ":"};
-static String language_meta_string_176 = {1, "*"};
-static String language_meta_string_177 = {1, "&"};
-static String language_meta_string_178 = {1, "!"};
-static String language_meta_string_179 = {1, "."};
-static String language_meta_string_180 = {1, "|"};
-static String language_meta_string_181 = {2, "->"};
-static String language_meta_string_182 = {1, "_"};
-static String language_meta_string_183 = {18, "bitpattern <<= 1;\n"};
-static String language_meta_string_184 = {15, "bitmask <<= 1;\n"};
-static String language_meta_string_185 = {14, "bitmask |= 1;\n"};
-static String language_meta_string_186 = {1, "0"};
-static String language_meta_string_187 = {1, "1"};
-static String language_meta_string_188 = {17, "bitpattern |= 1;\n"};
-static String language_meta_string_189 = {14, "MetaAction _;\n"};
-static String language_meta_string_190 = {14, "MetaAction _;\n"};
-static String language_meta_string_191 = {4, "_ = "};
-static String language_meta_string_192 = {15, "(parse_state);\n"};
-static String language_meta_string_193 = {2, "0b"};
-static String language_meta_string_194 = {26, "unsigned char bitpattern;\n"};
-static String language_meta_string_195 = {26, "unsigned char bitpattern;\n"};
-static String language_meta_string_196 = {23, "unsigned char bitmask;\n"};
-static String language_meta_string_197 = {23, "unsigned char bitmask;\n"};
-static String language_meta_string_198 = {14, "MetaAction _;\n"};
-static String language_meta_string_199 = {14, "MetaAction _;\n"};
-static String language_meta_string_200 = {16, "bitpattern = 0;\n"};
-static String language_meta_string_201 = {13, "bitmask = 0;\n"};
-static String language_meta_string_202 = {162, "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n"};
-static String language_meta_string_203 = {23, "parse_state->pos += 1;\n"};
-static String language_meta_string_204 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
-static String language_meta_string_205 = {9, "} else {\n"};
-static String language_meta_string_206 = {34, "_ = meta_action_create_invalid();\n"};
-static String language_meta_string_207 = {2, "}\n"};
-static String language_meta_string_208 = {14, "MetaAction _;\n"};
-static String language_meta_string_209 = {14, "MetaAction _;\n"};
-static String language_meta_string_210 = {58, "if (parse_state->pos < parse_state->input_buffer->size) {\n"};
-static String language_meta_string_211 = {23, "parse_state->pos += 1;\n"};
-static String language_meta_string_212 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
-static String language_meta_string_213 = {9, "} else {\n"};
-static String language_meta_string_214 = {34, "_ = meta_action_create_invalid();\n"};
-static String language_meta_string_215 = {2, "}\n"};
-static String language_meta_string_216 = {1, "-"};
-static String language_meta_string_217 = {14, "MetaAction _;\n"};
-static String language_meta_string_218 = {14, "MetaAction _;\n"};
-static String language_meta_string_219 = {14, "String* data;\n"};
-static String language_meta_string_220 = {14, "String* data;\n"};
-static String language_meta_string_221 = {14, "String slice;\n"};
-static String language_meta_string_222 = {14, "String slice;\n"};
-static String language_meta_string_223 = {14, "MetaAction _;\n"};
-static String language_meta_string_224 = {14, "MetaAction _;\n"};
-static String language_meta_string_225 = {7, "data = "};
-static String language_meta_string_226 = {2, ";\n"};
-static String language_meta_string_227 = {96, "string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);\n"};
-static String language_meta_string_228 = {102, "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {\n"};
-static String language_meta_string_229 = {32, "parse_state->pos += data->size;\n"};
-static String language_meta_string_230 = {110, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"};
-static String language_meta_string_231 = {9, "} else {\n"};
-static String language_meta_string_232 = {34, "_ = meta_action_create_invalid();\n"};
-static String language_meta_string_233 = {2, "}\n"};
-static String language_meta_string_234 = {1, "{"};
-static String language_meta_string_235 = {1, "}"};
-static String language_meta_string_236 = {5, "void "};
-static String language_meta_string_237 = {7, "action_"};
-static String language_meta_string_238 = {35, "(void* runtime, void* variables) {\n"};
-static String language_meta_string_239 = {2, "}\n"};
-static String language_meta_string_240 = {1, "\n"};
-static String language_meta_string_241 = {10, "void* vars"};
-static String language_meta_string_242 = {9, " = NULL;\n"};
-static String language_meta_string_243 = {4, "vars"};
-static String language_meta_string_244 = {49, " = arena_alloc(parse_state->arena, sizeof(struct "};
-static String language_meta_string_245 = {6, "Action"};
-static String language_meta_string_246 = {8, "Vars));\n"};
-static String language_meta_string_247 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
-static String language_meta_string_248 = {26, "return meta_action_create("};
-static String language_meta_string_249 = {7, "action_"};
-static String language_meta_string_250 = {6, ", vars"};
-static String language_meta_string_251 = {66, ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
-static String language_meta_string_252 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
-static String language_meta_string_253 = {102, "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
-static String language_meta_string_254 = {2, "(("};
-static String language_meta_string_255 = {17, "Runtime*)runtime)"};
-static String language_meta_string_256 = {9, "nonEmpty("};
-static String language_meta_string_257 = {6, ") -> {"};
-static String language_meta_string_258 = {1, "}"};
-static String language_meta_string_259 = {4, "if ("};
-static String language_meta_string_260 = {23, "->named_string_builder_"};
-static String language_meta_string_261 = {21, "->pre_first->next) {\n"};
-static String language_meta_string_262 = {2, "}\n"};
-static String language_meta_string_263 = {7, "unseen("};
-static String language_meta_string_264 = {6, ") -> {"};
-static String language_meta_string_265 = {1, "}"};
-static String language_meta_string_266 = {19, "MetaAction action;\n"};
-static String language_meta_string_267 = {19, "MetaAction action;\n"};
-static String language_meta_string_268 = {14, "String slice;\n"};
-static String language_meta_string_269 = {14, "String slice;\n"};
-static String language_meta_string_270 = {9, "action = "};
-static String language_meta_string_271 = {2, ";\n"};
-static String language_meta_string_272 = {69, "string_slice(action.input_buffer, action.start, action.end, &slice);\n"};
-static String language_meta_string_273 = {29, "if (!string_builder_contains("};
-static String language_meta_string_274 = {37, "->current_string_builder, &slice)) {\n"};
-static String language_meta_string_275 = {2, "}\n"};
-static String language_meta_string_276 = {7, "unique("};
-static String language_meta_string_277 = {1, ")"};
-static String language_meta_string_278 = {29, "if (!string_builder_contains("};
-static String language_meta_string_279 = {26, "->current_string_builder, "};
-static String language_meta_string_280 = {5, ")) {\n"};
-static String language_meta_string_281 = {22, "string_builder_append("};
-static String language_meta_string_282 = {26, "->current_string_builder, "};
-static String language_meta_string_283 = {9, "->arena, "};
-static String language_meta_string_284 = {12, ", 0, NULL);\n"};
-static String language_meta_string_285 = {2, "}\n"};
-static String language_meta_string_286 = {1, ">"};
-static String language_meta_string_287 = {1, "{"};
-static String language_meta_string_288 = {1, "}"};
-static String language_meta_string_289 = {36, "StringBuilder* last_string_builder;\n"};
-static String language_meta_string_290 = {36, "StringBuilder* last_string_builder;\n"};
-static String language_meta_string_291 = {31, "StringBuilder* string_builder;\n"};
-static String language_meta_string_292 = {31, "StringBuilder* string_builder;\n"};
-static String language_meta_string_293 = {22, "last_string_builder = "};
-static String language_meta_string_294 = {26, "->current_string_builder;\n"};
-static String language_meta_string_295 = {17, "string_builder = "};
-static String language_meta_string_296 = {23, "->named_string_builder_"};
-static String language_meta_string_297 = {2, ";\n"};
-static String language_meta_string_298 = {43, "->current_string_builder = string_builder;\n"};
-static String language_meta_string_299 = {48, "->current_string_builder = last_string_builder;\n"};
-static String language_meta_string_300 = {1, "<"};
-static String language_meta_string_301 = {22, "string_builder_append("};
-static String language_meta_string_302 = {26, "->current_string_builder, "};
-static String language_meta_string_303 = {18, "->arena, NULL, 0, "};
-static String language_meta_string_304 = {23, "->named_string_builder_"};
-static String language_meta_string_305 = {3, ");\n"};
-static String language_meta_string_306 = {1, "$"};
-static String language_meta_string_307 = {31, "StringBuilder* string_builder;\n"};
-static String language_meta_string_308 = {31, "StringBuilder* string_builder;\n"};
-static String language_meta_string_309 = {39, "string_builder = string_builder_create("};
-static String language_meta_string_310 = {10, "->arena);\n"};
-static String language_meta_string_311 = {23, "->named_string_builder_"};
-static String language_meta_string_312 = {19, " = string_builder;\n"};
-static String language_meta_string_313 = {22, "string_builder_append("};
-static String language_meta_string_314 = {26, "->current_string_builder, "};
-static String language_meta_string_315 = {29, "->arena, string_from_integer("};
-static String language_meta_string_316 = {9, "->arena, "};
-static String language_meta_string_317 = {13, "), 0, NULL);\n"};
-static String language_meta_string_318 = {2, "C{"};
-static String language_meta_string_319 = {1, " "};
-static String language_meta_string_320 = {1, "}"};
-static String language_meta_string_321 = {17, "meta_action_run(&"};
-static String language_meta_string_322 = {11, ", runtime, "};
-static String language_meta_string_323 = {26, "->current_string_builder, "};
-static String language_meta_string_324 = {10, "->arena);\n"};
-static String language_meta_string_325 = {17, "void placeholder_"};
-static String language_meta_string_326 = {34, "(void* runtime, void* variables);\n"};
+static String language_meta_string_159 = {112, "list_append(parse_state->arena, star_variables, arena_copy(parse_state->arena, sizeof(_), (unsigned char*)&_));\n"};
+static String language_meta_string_160 = {2, "}\n"};
+static String language_meta_string_161 = {114, "_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
+static String language_meta_string_162 = {23, "unsigned int star_pos;\n"};
+static String language_meta_string_163 = {23, "unsigned int star_pos;\n"};
+static String language_meta_string_164 = {29, "unsigned int star_start_pos;\n"};
+static String language_meta_string_165 = {29, "unsigned int star_start_pos;\n"};
+static String language_meta_string_166 = {14, "MetaAction _;\n"};
+static String language_meta_string_167 = {14, "MetaAction _;\n"};
+static String language_meta_string_168 = {35, "star_start_pos = parse_state->pos;\n"};
+static String language_meta_string_169 = {12, "while (1) {\n"};
+static String language_meta_string_170 = {29, "star_pos = parse_state->pos;\n"};
+static String language_meta_string_171 = {16, "if (!_.valid) {\n"};
+static String language_meta_string_172 = {51, "meta_parse_state_backtrack(parse_state, star_pos);\n"};
+static String language_meta_string_173 = {7, "break;\n"};
+static String language_meta_string_174 = {2, "}\n"};
+static String language_meta_string_175 = {2, "}\n"};
+static String language_meta_string_176 = {97, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, star_start_pos, parse_state->pos);\n"};
+static String language_meta_string_177 = {1, ":"};
+static String language_meta_string_178 = {1, "*"};
+static String language_meta_string_179 = {1, "&"};
+static String language_meta_string_180 = {1, "!"};
+static String language_meta_string_181 = {1, "."};
+static String language_meta_string_182 = {1, "|"};
+static String language_meta_string_183 = {2, "->"};
+static String language_meta_string_184 = {1, "_"};
+static String language_meta_string_185 = {18, "bitpattern <<= 1;\n"};
+static String language_meta_string_186 = {15, "bitmask <<= 1;\n"};
+static String language_meta_string_187 = {14, "bitmask |= 1;\n"};
+static String language_meta_string_188 = {1, "0"};
+static String language_meta_string_189 = {1, "1"};
+static String language_meta_string_190 = {17, "bitpattern |= 1;\n"};
+static String language_meta_string_191 = {14, "MetaAction _;\n"};
+static String language_meta_string_192 = {14, "MetaAction _;\n"};
+static String language_meta_string_193 = {4, "_ = "};
+static String language_meta_string_194 = {15, "(parse_state);\n"};
+static String language_meta_string_195 = {2, "0b"};
+static String language_meta_string_196 = {26, "unsigned char bitpattern;\n"};
+static String language_meta_string_197 = {26, "unsigned char bitpattern;\n"};
+static String language_meta_string_198 = {23, "unsigned char bitmask;\n"};
+static String language_meta_string_199 = {23, "unsigned char bitmask;\n"};
+static String language_meta_string_200 = {14, "MetaAction _;\n"};
+static String language_meta_string_201 = {14, "MetaAction _;\n"};
+static String language_meta_string_202 = {16, "bitpattern = 0;\n"};
+static String language_meta_string_203 = {13, "bitmask = 0;\n"};
+static String language_meta_string_204 = {162, "if (parse_state->pos < parse_state->input_buffer->size && (bitpattern ^ (bitmask & ((unsigned char)parse_state->input_buffer->buffer[parse_state->pos]))) == 0) {\n"};
+static String language_meta_string_205 = {23, "parse_state->pos += 1;\n"};
+static String language_meta_string_206 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
+static String language_meta_string_207 = {9, "} else {\n"};
+static String language_meta_string_208 = {34, "_ = meta_action_create_invalid();\n"};
+static String language_meta_string_209 = {2, "}\n"};
+static String language_meta_string_210 = {14, "MetaAction _;\n"};
+static String language_meta_string_211 = {14, "MetaAction _;\n"};
+static String language_meta_string_212 = {58, "if (parse_state->pos < parse_state->input_buffer->size) {\n"};
+static String language_meta_string_213 = {23, "parse_state->pos += 1;\n"};
+static String language_meta_string_214 = {101, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-1, parse_state->pos);\n"};
+static String language_meta_string_215 = {9, "} else {\n"};
+static String language_meta_string_216 = {34, "_ = meta_action_create_invalid();\n"};
+static String language_meta_string_217 = {2, "}\n"};
+static String language_meta_string_218 = {1, "-"};
+static String language_meta_string_219 = {14, "MetaAction _;\n"};
+static String language_meta_string_220 = {14, "MetaAction _;\n"};
+static String language_meta_string_221 = {14, "String* data;\n"};
+static String language_meta_string_222 = {14, "String* data;\n"};
+static String language_meta_string_223 = {14, "String slice;\n"};
+static String language_meta_string_224 = {14, "String slice;\n"};
+static String language_meta_string_225 = {14, "MetaAction _;\n"};
+static String language_meta_string_226 = {14, "MetaAction _;\n"};
+static String language_meta_string_227 = {7, "data = "};
+static String language_meta_string_228 = {2, ";\n"};
+static String language_meta_string_229 = {96, "string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);\n"};
+static String language_meta_string_230 = {102, "if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {\n"};
+static String language_meta_string_231 = {32, "parse_state->pos += data->size;\n"};
+static String language_meta_string_232 = {110, "_ = meta_action_create(NULL, NULL, parse_state->input_buffer, parse_state->pos-data->size, parse_state->pos);\n"};
+static String language_meta_string_233 = {9, "} else {\n"};
+static String language_meta_string_234 = {34, "_ = meta_action_create_invalid();\n"};
+static String language_meta_string_235 = {2, "}\n"};
+static String language_meta_string_236 = {1, "{"};
+static String language_meta_string_237 = {1, "}"};
+static String language_meta_string_238 = {5, "void "};
+static String language_meta_string_239 = {7, "action_"};
+static String language_meta_string_240 = {35, "(void* runtime, void* variables) {\n"};
+static String language_meta_string_241 = {2, "}\n"};
+static String language_meta_string_242 = {1, "\n"};
+static String language_meta_string_243 = {10, "void* vars"};
+static String language_meta_string_244 = {9, " = NULL;\n"};
+static String language_meta_string_245 = {4, "vars"};
+static String language_meta_string_246 = {49, " = arena_alloc(parse_state->arena, sizeof(struct "};
+static String language_meta_string_247 = {6, "Action"};
+static String language_meta_string_248 = {8, "Vars));\n"};
+static String language_meta_string_249 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
+static String language_meta_string_250 = {26, "return meta_action_create("};
+static String language_meta_string_251 = {7, "action_"};
+static String language_meta_string_252 = {6, ", vars"};
+static String language_meta_string_253 = {66, ", parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
+static String language_meta_string_254 = {85, "meta_highlight_register(parse_state, action_start_pos, parse_state->pos, highlight);\n"};
+static String language_meta_string_255 = {102, "return meta_action_create(NULL, NULL, parse_state->input_buffer, action_start_pos, parse_state->pos);\n"};
+static String language_meta_string_256 = {2, "(("};
+static String language_meta_string_257 = {17, "Runtime*)runtime)"};
+static String language_meta_string_258 = {9, "nonEmpty("};
+static String language_meta_string_259 = {6, ") -> {"};
+static String language_meta_string_260 = {1, "}"};
+static String language_meta_string_261 = {4, "if ("};
+static String language_meta_string_262 = {23, "->named_string_builder_"};
+static String language_meta_string_263 = {21, "->pre_first->next) {\n"};
+static String language_meta_string_264 = {2, "}\n"};
+static String language_meta_string_265 = {7, "unseen("};
+static String language_meta_string_266 = {6, ") -> {"};
+static String language_meta_string_267 = {1, "}"};
+static String language_meta_string_268 = {19, "MetaAction action;\n"};
+static String language_meta_string_269 = {19, "MetaAction action;\n"};
+static String language_meta_string_270 = {14, "String slice;\n"};
+static String language_meta_string_271 = {14, "String slice;\n"};
+static String language_meta_string_272 = {9, "action = "};
+static String language_meta_string_273 = {2, ";\n"};
+static String language_meta_string_274 = {69, "string_slice(action.input_buffer, action.start, action.end, &slice);\n"};
+static String language_meta_string_275 = {29, "if (!string_builder_contains("};
+static String language_meta_string_276 = {37, "->current_string_builder, &slice)) {\n"};
+static String language_meta_string_277 = {2, "}\n"};
+static String language_meta_string_278 = {7, "unique("};
+static String language_meta_string_279 = {1, ")"};
+static String language_meta_string_280 = {29, "if (!string_builder_contains("};
+static String language_meta_string_281 = {26, "->current_string_builder, "};
+static String language_meta_string_282 = {5, ")) {\n"};
+static String language_meta_string_283 = {22, "string_builder_append("};
+static String language_meta_string_284 = {26, "->current_string_builder, "};
+static String language_meta_string_285 = {9, "->arena, "};
+static String language_meta_string_286 = {12, ", 0, NULL);\n"};
+static String language_meta_string_287 = {2, "}\n"};
+static String language_meta_string_288 = {1, ">"};
+static String language_meta_string_289 = {1, "{"};
+static String language_meta_string_290 = {1, "}"};
+static String language_meta_string_291 = {36, "StringBuilder* last_string_builder;\n"};
+static String language_meta_string_292 = {36, "StringBuilder* last_string_builder;\n"};
+static String language_meta_string_293 = {31, "StringBuilder* string_builder;\n"};
+static String language_meta_string_294 = {31, "StringBuilder* string_builder;\n"};
+static String language_meta_string_295 = {22, "last_string_builder = "};
+static String language_meta_string_296 = {26, "->current_string_builder;\n"};
+static String language_meta_string_297 = {17, "string_builder = "};
+static String language_meta_string_298 = {23, "->named_string_builder_"};
+static String language_meta_string_299 = {2, ";\n"};
+static String language_meta_string_300 = {43, "->current_string_builder = string_builder;\n"};
+static String language_meta_string_301 = {48, "->current_string_builder = last_string_builder;\n"};
+static String language_meta_string_302 = {1, "<"};
+static String language_meta_string_303 = {22, "string_builder_append("};
+static String language_meta_string_304 = {26, "->current_string_builder, "};
+static String language_meta_string_305 = {18, "->arena, NULL, 0, "};
+static String language_meta_string_306 = {23, "->named_string_builder_"};
+static String language_meta_string_307 = {3, ");\n"};
+static String language_meta_string_308 = {1, "$"};
+static String language_meta_string_309 = {31, "StringBuilder* string_builder;\n"};
+static String language_meta_string_310 = {31, "StringBuilder* string_builder;\n"};
+static String language_meta_string_311 = {39, "string_builder = string_builder_create("};
+static String language_meta_string_312 = {10, "->arena);\n"};
+static String language_meta_string_313 = {23, "->named_string_builder_"};
+static String language_meta_string_314 = {19, " = string_builder;\n"};
+static String language_meta_string_315 = {22, "string_builder_append("};
+static String language_meta_string_316 = {26, "->current_string_builder, "};
+static String language_meta_string_317 = {29, "->arena, string_from_integer("};
+static String language_meta_string_318 = {9, "->arena, "};
+static String language_meta_string_319 = {13, "), 0, NULL);\n"};
+static String language_meta_string_320 = {2, "C{"};
+static String language_meta_string_321 = {1, " "};
+static String language_meta_string_322 = {1, "}"};
+static String language_meta_string_323 = {17, "meta_action_run(&"};
+static String language_meta_string_324 = {11, ", runtime, "};
+static String language_meta_string_325 = {26, "->current_string_builder, "};
+static String language_meta_string_326 = {10, "->arena);\n"};
static String language_meta_string_327 = {17, "void placeholder_"};
-static String language_meta_string_328 = {35, "(void* runtime, void* variables) {\n"};
-static String language_meta_string_329 = {2, "}\n"};
-static String language_meta_string_330 = {1, "\n"};
-static String language_meta_string_331 = {31, "StringBuilder* string_builder;\n"};
-static String language_meta_string_332 = {31, "StringBuilder* string_builder;\n"};
-static String language_meta_string_333 = {39, "string_builder = string_builder_create("};
-static String language_meta_string_334 = {10, "->arena);\n"};
-static String language_meta_string_335 = {24, "meta_placeholder_append("};
-static String language_meta_string_336 = {9, "->arena, "};
-static String language_meta_string_337 = {63, "->placeholders, string_builder, meta_action_create(placeholder_"};
-static String language_meta_string_338 = {27, ", variables, NULL, 0, 0));\n"};
-static String language_meta_string_339 = {22, "string_builder_append("};
-static String language_meta_string_340 = {26, "->current_string_builder, "};
-static String language_meta_string_341 = {35, "->arena, NULL, 0, string_builder);\n"};
-static String language_meta_string_342 = {22, "string_builder_append("};
-static String language_meta_string_343 = {26, "->current_string_builder, "};
-static String language_meta_string_344 = {9, "->arena, "};
-static String language_meta_string_345 = {12, ", 0, NULL);\n"};
-static String language_meta_string_346 = {1, "#"};
-static String language_meta_string_347 = {1, "("};
-static String language_meta_string_348 = {1, " "};
-static String language_meta_string_349 = {1, ")"};
-static String language_meta_string_350 = {4, "->W_"};
-static String language_meta_string_351 = {8, " = meta_"};
-static String language_meta_string_352 = {1, "("};
-static String language_meta_string_353 = {4, "->W_"};
-static String language_meta_string_354 = {2, ", "};
-static String language_meta_string_355 = {3, ");\n"};
-static String language_meta_string_356 = {1, ">"};
-static String language_meta_string_357 = {1, "<"};
-static String language_meta_string_358 = {22, "string_builder_append("};
-static String language_meta_string_359 = {26, "->current_string_builder, "};
-static String language_meta_string_360 = {25, "->arena, NULL, 1, NULL);\n"};
-static String language_meta_string_361 = {22, "string_builder_append("};
-static String language_meta_string_362 = {26, "->current_string_builder, "};
-static String language_meta_string_363 = {26, "->arena, NULL, -1, NULL);\n"};
-static String language_meta_string_364 = {1, "{"};
-static String language_meta_string_365 = {1, " "};
-static String language_meta_string_366 = {1, "}"};
-static String language_meta_string_367 = {22, "string_builder_append("};
-static String language_meta_string_368 = {26, "->current_string_builder, "};
-static String language_meta_string_369 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_370 = {27, "->arena, \"{\\n\"), 0, NULL);\n"};
-static String language_meta_string_371 = {22, "string_builder_append("};
-static String language_meta_string_372 = {26, "->current_string_builder, "};
-static String language_meta_string_373 = {25, "->arena, NULL, 1, NULL);\n"};
-static String language_meta_string_374 = {22, "string_builder_append("};
-static String language_meta_string_375 = {26, "->current_string_builder, "};
-static String language_meta_string_376 = {26, "->arena, NULL, -1, NULL);\n"};
-static String language_meta_string_377 = {22, "string_builder_append("};
-static String language_meta_string_378 = {26, "->current_string_builder, "};
-static String language_meta_string_379 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_380 = {27, "->arena, \"}\\n\"), 0, NULL);\n"};
-static String language_meta_string_381 = {2, "$("};
-static String language_meta_string_382 = {1, ")"};
-static String language_meta_string_383 = {1, "$"};
-static String language_meta_string_384 = {17, "meta_action_run(&"};
-static String language_meta_string_385 = {11, ", runtime, "};
-static String language_meta_string_386 = {26, "->current_string_builder, "};
-static String language_meta_string_387 = {10, "->arena);\n"};
-static String language_meta_string_388 = {1, "\n"};
-static String language_meta_string_389 = {1, " "};
-static String language_meta_string_390 = {22, "string_builder_append("};
-static String language_meta_string_391 = {26, "->current_string_builder, "};
-static String language_meta_string_392 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_393 = {26, "->arena, \"\\n\"), 0, NULL);\n"};
-static String language_meta_string_394 = {1, "\""};
-static String language_meta_string_395 = {22, "string_builder_append("};
-static String language_meta_string_396 = {26, "->current_string_builder, "};
-static String language_meta_string_397 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_398 = {26, "->arena, \"\\\"\"), 0, NULL);\n"};
-static String language_meta_string_399 = {1, "\\"};
-static String language_meta_string_400 = {22, "string_builder_append("};
-static String language_meta_string_401 = {26, "->current_string_builder, "};
-static String language_meta_string_402 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_403 = {26, "->arena, \"\\\\\"), 0, NULL);\n"};
-static String language_meta_string_404 = {1, "{"};
-static String language_meta_string_405 = {1, "}"};
-static String language_meta_string_406 = {22, "string_builder_append("};
-static String language_meta_string_407 = {26, "->current_string_builder, "};
-static String language_meta_string_408 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_409 = {10, "->arena, \""};
-static String language_meta_string_410 = {14, "\"), 0, NULL);\n"};
-static String language_meta_string_411 = {36, "StringBuilder* named_string_builder_"};
-static String language_meta_string_412 = {2, ";\n"};
-static String language_meta_string_413 = {30, "runtime->named_string_builder_"};
-static String language_meta_string_414 = {9, " = NULL;\n"};
-static String language_meta_string_415 = {1, "{"};
-static String language_meta_string_416 = {1, "*"};
-static String language_meta_string_417 = {1, "}"};
-static String language_meta_string_418 = {7, "int i;\n"};
-static String language_meta_string_419 = {7, "int i;\n"};
-static String language_meta_string_420 = {14, "for (i=0; i < "};
-static String language_meta_string_421 = {9, "; i++) {\n"};
-static String language_meta_string_422 = {22, "string_builder_append("};
-static String language_meta_string_423 = {26, "->current_string_builder, "};
-static String language_meta_string_424 = {9, "->arena, "};
-static String language_meta_string_425 = {12, ", 0, NULL);\n"};
-static String language_meta_string_426 = {2, "}\n"};
-static String language_meta_string_427 = {4, "->W_"};
-static String language_meta_string_428 = {1, "("};
-static String language_meta_string_429 = {1, "-"};
-static String language_meta_string_430 = {1, ")"};
-static String language_meta_string_431 = {2, "(("};
-static String language_meta_string_432 = {4, "->W_"};
-static String language_meta_string_433 = {2, ")-"};
-static String language_meta_string_434 = {1, ")"};
-static String language_meta_string_435 = {7, "number("};
+static String language_meta_string_328 = {34, "(void* runtime, void* variables);\n"};
+static String language_meta_string_329 = {17, "void placeholder_"};
+static String language_meta_string_330 = {35, "(void* runtime, void* variables) {\n"};
+static String language_meta_string_331 = {2, "}\n"};
+static String language_meta_string_332 = {1, "\n"};
+static String language_meta_string_333 = {31, "StringBuilder* string_builder;\n"};
+static String language_meta_string_334 = {31, "StringBuilder* string_builder;\n"};
+static String language_meta_string_335 = {39, "string_builder = string_builder_create("};
+static String language_meta_string_336 = {10, "->arena);\n"};
+static String language_meta_string_337 = {24, "meta_placeholder_append("};
+static String language_meta_string_338 = {9, "->arena, "};
+static String language_meta_string_339 = {63, "->placeholders, string_builder, meta_action_create(placeholder_"};
+static String language_meta_string_340 = {27, ", variables, NULL, 0, 0));\n"};
+static String language_meta_string_341 = {22, "string_builder_append("};
+static String language_meta_string_342 = {26, "->current_string_builder, "};
+static String language_meta_string_343 = {35, "->arena, NULL, 0, string_builder);\n"};
+static String language_meta_string_344 = {22, "string_builder_append("};
+static String language_meta_string_345 = {26, "->current_string_builder, "};
+static String language_meta_string_346 = {9, "->arena, "};
+static String language_meta_string_347 = {12, ", 0, NULL);\n"};
+static String language_meta_string_348 = {1, "#"};
+static String language_meta_string_349 = {1, "("};
+static String language_meta_string_350 = {1, " "};
+static String language_meta_string_351 = {1, ")"};
+static String language_meta_string_352 = {4, "->W_"};
+static String language_meta_string_353 = {8, " = meta_"};
+static String language_meta_string_354 = {1, "("};
+static String language_meta_string_355 = {4, "->W_"};
+static String language_meta_string_356 = {2, ", "};
+static String language_meta_string_357 = {3, ");\n"};
+static String language_meta_string_358 = {1, ">"};
+static String language_meta_string_359 = {1, "<"};
+static String language_meta_string_360 = {22, "string_builder_append("};
+static String language_meta_string_361 = {26, "->current_string_builder, "};
+static String language_meta_string_362 = {25, "->arena, NULL, 1, NULL);\n"};
+static String language_meta_string_363 = {22, "string_builder_append("};
+static String language_meta_string_364 = {26, "->current_string_builder, "};
+static String language_meta_string_365 = {26, "->arena, NULL, -1, NULL);\n"};
+static String language_meta_string_366 = {1, "{"};
+static String language_meta_string_367 = {1, " "};
+static String language_meta_string_368 = {1, "}"};
+static String language_meta_string_369 = {22, "string_builder_append("};
+static String language_meta_string_370 = {26, "->current_string_builder, "};
+static String language_meta_string_371 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_372 = {27, "->arena, \"{\\n\"), 0, NULL);\n"};
+static String language_meta_string_373 = {22, "string_builder_append("};
+static String language_meta_string_374 = {26, "->current_string_builder, "};
+static String language_meta_string_375 = {25, "->arena, NULL, 1, NULL);\n"};
+static String language_meta_string_376 = {22, "string_builder_append("};
+static String language_meta_string_377 = {26, "->current_string_builder, "};
+static String language_meta_string_378 = {26, "->arena, NULL, -1, NULL);\n"};
+static String language_meta_string_379 = {22, "string_builder_append("};
+static String language_meta_string_380 = {26, "->current_string_builder, "};
+static String language_meta_string_381 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_382 = {27, "->arena, \"}\\n\"), 0, NULL);\n"};
+static String language_meta_string_383 = {2, "$("};
+static String language_meta_string_384 = {1, ")"};
+static String language_meta_string_385 = {1, "$"};
+static String language_meta_string_386 = {17, "meta_action_run(&"};
+static String language_meta_string_387 = {11, ", runtime, "};
+static String language_meta_string_388 = {26, "->current_string_builder, "};
+static String language_meta_string_389 = {10, "->arena);\n"};
+static String language_meta_string_390 = {1, "\n"};
+static String language_meta_string_391 = {1, " "};
+static String language_meta_string_392 = {22, "string_builder_append("};
+static String language_meta_string_393 = {26, "->current_string_builder, "};
+static String language_meta_string_394 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_395 = {26, "->arena, \"\\n\"), 0, NULL);\n"};
+static String language_meta_string_396 = {1, "\""};
+static String language_meta_string_397 = {22, "string_builder_append("};
+static String language_meta_string_398 = {26, "->current_string_builder, "};
+static String language_meta_string_399 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_400 = {26, "->arena, \"\\\"\"), 0, NULL);\n"};
+static String language_meta_string_401 = {1, "\\"};
+static String language_meta_string_402 = {22, "string_builder_append("};
+static String language_meta_string_403 = {26, "->current_string_builder, "};
+static String language_meta_string_404 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_405 = {26, "->arena, \"\\\\\"), 0, NULL);\n"};
+static String language_meta_string_406 = {1, "{"};
+static String language_meta_string_407 = {1, "}"};
+static String language_meta_string_408 = {22, "string_builder_append("};
+static String language_meta_string_409 = {26, "->current_string_builder, "};
+static String language_meta_string_410 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_411 = {10, "->arena, \""};
+static String language_meta_string_412 = {14, "\"), 0, NULL);\n"};
+static String language_meta_string_413 = {36, "StringBuilder* named_string_builder_"};
+static String language_meta_string_414 = {2, ";\n"};
+static String language_meta_string_415 = {30, "runtime->named_string_builder_"};
+static String language_meta_string_416 = {9, " = NULL;\n"};
+static String language_meta_string_417 = {1, "{"};
+static String language_meta_string_418 = {1, "*"};
+static String language_meta_string_419 = {1, "}"};
+static String language_meta_string_420 = {7, "int i;\n"};
+static String language_meta_string_421 = {7, "int i;\n"};
+static String language_meta_string_422 = {14, "for (i=0; i < "};
+static String language_meta_string_423 = {9, "; i++) {\n"};
+static String language_meta_string_424 = {22, "string_builder_append("};
+static String language_meta_string_425 = {26, "->current_string_builder, "};
+static String language_meta_string_426 = {9, "->arena, "};
+static String language_meta_string_427 = {12, ", 0, NULL);\n"};
+static String language_meta_string_428 = {2, "}\n"};
+static String language_meta_string_429 = {4, "->W_"};
+static String language_meta_string_430 = {1, "("};
+static String language_meta_string_431 = {1, "-"};
+static String language_meta_string_432 = {1, ")"};
+static String language_meta_string_433 = {2, "(("};
+static String language_meta_string_434 = {4, "->W_"};
+static String language_meta_string_435 = {2, ")-"};
static String language_meta_string_436 = {1, ")"};
-static String language_meta_string_437 = {2, "(0"};
+static String language_meta_string_437 = {7, "number("};
static String language_meta_string_438 = {1, ")"};
-static String language_meta_string_439 = {25, "+(meta_action_first_byte("};
+static String language_meta_string_439 = {2, "(0"};
static String language_meta_string_440 = {1, ")"};
-static String language_meta_string_441 = {1, ")"};
-static String language_meta_string_442 = {2, "<<"};
-static String language_meta_string_443 = {1, "\""};
-static String language_meta_string_444 = {1, "\""};
-static String language_meta_string_445 = {14, "static String "};
-static String language_meta_string_446 = {7, "string_"};
-static String language_meta_string_447 = {4, " = {"};
-static String language_meta_string_448 = {3, ", \""};
-static String language_meta_string_449 = {4, "\"};\n"};
-static String language_meta_string_450 = {2, "(&"};
-static String language_meta_string_451 = {7, "string_"};
-static String language_meta_string_452 = {1, ")"};
-static String language_meta_string_453 = {1, "("};
+static String language_meta_string_441 = {25, "+(meta_action_first_byte("};
+static String language_meta_string_442 = {1, ")"};
+static String language_meta_string_443 = {1, ")"};
+static String language_meta_string_444 = {2, "<<"};
+static String language_meta_string_445 = {1, "\""};
+static String language_meta_string_446 = {1, "\""};
+static String language_meta_string_447 = {14, "static String "};
+static String language_meta_string_448 = {7, "string_"};
+static String language_meta_string_449 = {4, " = {"};
+static String language_meta_string_450 = {3, ", \""};
+static String language_meta_string_451 = {4, "\"};\n"};
+static String language_meta_string_452 = {2, "(&"};
+static String language_meta_string_453 = {7, "string_"};
static String language_meta_string_454 = {1, ")"};
-static String language_meta_string_455 = {10, "(((struct "};
-static String language_meta_string_456 = {6, "Action"};
-static String language_meta_string_457 = {18, "Vars*)variables)->"};
-static String language_meta_string_458 = {1, ")"};
-static String language_meta_string_459 = {4, ".len"};
-static String language_meta_string_460 = {15, "meta_action_len"};
-static String language_meta_string_461 = {6, ".count"};
-static String language_meta_string_462 = {17, "meta_action_count"};
-static String language_meta_string_463 = {2, "W["};
-static String language_meta_string_464 = {1, "]"};
-static String language_meta_string_465 = {15, "unsigned int W_"};
-static String language_meta_string_466 = {2, ";\n"};
-static String language_meta_string_467 = {11, "runtime->W_"};
-static String language_meta_string_468 = {6, " = 0;\n"};
-static String language_meta_string_469 = {1, "\""};
-static String language_meta_string_470 = {1, "\'"};
-static String language_meta_string_471 = {1, "\'"};
-static String language_meta_string_472 = {1, "'"};
-static String language_meta_string_473 = {1, "'"};
-static String language_meta_string_474 = {1, "\'"};
-static String language_meta_string_475 = {1, "\'"};
-static String language_meta_string_476 = {14, "static String "};
-static String language_meta_string_477 = {7, "string_"};
-static String language_meta_string_478 = {4, " = {"};
-static String language_meta_string_479 = {3, ", \""};
-static String language_meta_string_480 = {4, "\"};\n"};
-static String language_meta_string_481 = {2, "(&"};
-static String language_meta_string_482 = {7, "string_"};
-static String language_meta_string_483 = {1, ")"};
-static String language_meta_string_484 = {1, "\""};
-static String language_meta_string_485 = {2, "\\\""};
-static String language_meta_string_486 = {1, "\'"};
-static String language_meta_string_487 = {1, "\\"};
-static String language_meta_string_488 = {5, "rule_"};
-static String language_meta_string_489 = {1, " "};
-static String language_meta_string_490 = {1, "\n"};
+static String language_meta_string_455 = {1, "("};
+static String language_meta_string_456 = {1, ")"};
+static String language_meta_string_457 = {10, "(((struct "};
+static String language_meta_string_458 = {6, "Action"};
+static String language_meta_string_459 = {18, "Vars*)variables)->"};
+static String language_meta_string_460 = {1, ")"};
+static String language_meta_string_461 = {4, ".len"};
+static String language_meta_string_462 = {15, "meta_action_len"};
+static String language_meta_string_463 = {6, ".count"};
+static String language_meta_string_464 = {17, "meta_action_count"};
+static String language_meta_string_465 = {2, "W["};
+static String language_meta_string_466 = {1, "]"};
+static String language_meta_string_467 = {15, "unsigned int W_"};
+static String language_meta_string_468 = {2, ";\n"};
+static String language_meta_string_469 = {11, "runtime->W_"};
+static String language_meta_string_470 = {6, " = 0;\n"};
+static String language_meta_string_471 = {1, "\""};
+static String language_meta_string_472 = {1, "\'"};
+static String language_meta_string_473 = {1, "\'"};
+static String language_meta_string_474 = {1, "'"};
+static String language_meta_string_475 = {1, "'"};
+static String language_meta_string_476 = {1, "\'"};
+static String language_meta_string_477 = {1, "\'"};
+static String language_meta_string_478 = {14, "static String "};
+static String language_meta_string_479 = {7, "string_"};
+static String language_meta_string_480 = {4, " = {"};
+static String language_meta_string_481 = {3, ", \""};
+static String language_meta_string_482 = {4, "\"};\n"};
+static String language_meta_string_483 = {2, "(&"};
+static String language_meta_string_484 = {7, "string_"};
+static String language_meta_string_485 = {1, ")"};
+static String language_meta_string_486 = {1, "\""};
+static String language_meta_string_487 = {2, "\\\""};
+static String language_meta_string_488 = {1, "\'"};
+static String language_meta_string_489 = {1, "\\"};
+static String language_meta_string_490 = {5, "rule_"};
+static String language_meta_string_491 = {1, " "};
+static String language_meta_string_492 = {1, "\n"};
MetaAction language_meta_rule_main(MetaParseState* parse_state);
struct language_meta_Action1Vars {
MetaAction xs;
@@ -925,35 +927,35 @@ void language_meta_action_3(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_53), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_54), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_55), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_56), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_57), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_58), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_59), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_60), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_61), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_60), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_61), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_62), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_63), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_64), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_65), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_66), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_67), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_68), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_69), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_70), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_71), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_72), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_73), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_74), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_75), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_76), 0, NULL);
@@ -962,12 +964,14 @@ void language_meta_action_3(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_79), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_80), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_81), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_82), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_83), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_83), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_84), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_85), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_86), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_87), 0, NULL);
}
void language_meta_action_4(void* runtime, void* variables) {
@@ -976,40 +980,40 @@ void language_meta_action_4(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_88), 0, NULL);
- meta_action_run(&(((struct language_meta_Action4Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_89), 0, NULL);
- ((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_90), 0, NULL);
meta_action_run(&(((struct language_meta_Action4Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_91), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+ ((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_92), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action4Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_93), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_94), 0, NULL);
- meta_action_run(&(((struct language_meta_Action4Vars*)variables)->h), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_95), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_96), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action4Vars*)variables)->h), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_97), 0, NULL);
string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations = string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations);
meta_action_run(&(((struct language_meta_Action4Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_96), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_97), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_98), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_99), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_100), 0, NULL);
}
void language_meta_action_5(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_101), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_103), 0, NULL);
meta_action_run(&(((struct language_meta_Action5Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
}
void language_meta_action_6(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_102), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_104), 0, NULL);
}
void language_meta_action_8(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_103), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_105), 0, NULL);
meta_action_run(&(((struct language_meta_Action8Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
meta_action_run(&(((struct language_meta_Action8Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
}
@@ -1027,8 +1031,8 @@ void language_meta_action_13(void* runtime, void* variables) {
((language_meta_Runtime*)runtime)->W_0 = meta_inc(((language_meta_Runtime*)runtime)->W_0, 1);
string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
((language_meta_Runtime*)runtime)->named_string_builder_variables = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_104), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_105), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_106), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_107), 0, NULL);
string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
((language_meta_Runtime*)runtime)->named_string_builder_orInit = string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_orInit);
@@ -1037,26 +1041,26 @@ void language_meta_action_13(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_106), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_108), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_107), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_109), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_108), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_110), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_variables);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_109), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_111), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
}
}
void language_meta_action_14(void* runtime, void* variables) {
meta_action_run(&(((struct language_meta_Action14Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_110), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_112), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
meta_action_run(&(((struct language_meta_Action14Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_111), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_113), 0, NULL);
}
void language_meta_action_15(void* runtime, void* variables) {
@@ -1069,25 +1073,25 @@ void language_meta_action_16(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_112))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_113), 0, NULL);
- }
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_114))) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_115), 0, NULL);
}
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_116))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_117), 0, NULL);
+ }
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_116), 0, NULL);
- meta_action_run(&(((struct language_meta_Action16Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_117), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_118), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ meta_action_run(&(((struct language_meta_Action16Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_119), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_120), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_121), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_122), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_123), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_124), 0, NULL);
}
void language_meta_action_17(void* runtime, void* variables) {
@@ -1096,25 +1100,25 @@ void language_meta_action_17(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_123))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_124), 0, NULL);
- }
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_125))) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_126), 0, NULL);
}
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_127))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_128), 0, NULL);
+ }
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_127), 0, NULL);
- meta_action_run(&(((struct language_meta_Action17Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_128), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_129), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ meta_action_run(&(((struct language_meta_Action17Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_130), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_131), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_132), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_133), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_134), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_135), 0, NULL);
}
void language_meta_action_18(void* runtime, void* variables) {
@@ -1128,19 +1132,19 @@ void language_meta_action_19(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_variables;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_134), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_136), 0, NULL);
meta_action_run(&(((struct language_meta_Action19Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_135), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_137), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_136), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_138), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_137), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_139), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_138), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_140), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_139), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_141), 0, NULL);
meta_action_run(&(((struct language_meta_Action19Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_140), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_142), 0, NULL);
}
void language_meta_action_20(void* runtime, void* variables) {
@@ -1152,9 +1156,6 @@ void language_meta_action_21(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_141))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_142), 0, NULL);
- }
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_143))) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_144), 0, NULL);
}
@@ -1164,23 +1165,26 @@ void language_meta_action_21(void* runtime, void* variables) {
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_147))) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_148), 0, NULL);
}
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_149))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_150), 0, NULL);
+ }
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_149), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_150), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_151), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_152), 0, NULL);
- meta_action_run(&(((struct language_meta_Action21Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_153), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_154), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action21Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_155), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_156), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_157), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_158), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_159), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_160), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_161), 0, NULL);
}
void language_meta_action_22(void* runtime, void* variables) {
@@ -1189,30 +1193,30 @@ void language_meta_action_22(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_160))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_161), 0, NULL);
- }
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_162))) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_163), 0, NULL);
}
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_164))) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_165), 0, NULL);
}
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_166))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_167), 0, NULL);
+ }
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_166), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_167), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_168), 0, NULL);
- meta_action_run(&(((struct language_meta_Action22Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_169), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_170), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action22Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_171), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_172), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_173), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_174), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_175), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_176), 0, NULL);
}
void language_meta_action_23(void* runtime, void* variables) {
@@ -1220,14 +1224,14 @@ void language_meta_action_23(void* runtime, void* variables) {
}
void language_meta_action_31(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_183), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_184), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_185), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_186), 0, NULL);
meta_action_run(&(((struct language_meta_Action31Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
}
void language_meta_action_32(void* runtime, void* variables) {
meta_action_run(&(((struct language_meta_Action32Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_185), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_187), 0, NULL);
}
void language_meta_action_33(void* runtime, void* variables) {
@@ -1237,7 +1241,7 @@ void language_meta_action_34(void* runtime, void* variables) {
}
void language_meta_action_35(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_188), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_190), 0, NULL);
}
void language_meta_action_36(void* runtime, void* variables) {
@@ -1246,13 +1250,13 @@ void language_meta_action_36(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_189))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_190), 0, NULL);
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_191))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_192), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_191), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_193), 0, NULL);
meta_action_run(&(((struct language_meta_Action36Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_192), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_194), 0, NULL);
}
void language_meta_action_37(void* runtime, void* variables) {
@@ -1261,29 +1265,29 @@ void language_meta_action_37(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_194))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_195), 0, NULL);
- }
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_196))) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_197), 0, NULL);
}
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_198))) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_199), 0, NULL);
}
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_200))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_201), 0, NULL);
+ }
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_200), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_201), 0, NULL);
- meta_action_run(&(((struct language_meta_Action37Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_202), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_203), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action37Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_204), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_205), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_205), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_206), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_207), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_208), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_209), 0, NULL);
}
void language_meta_action_38(void* runtime, void* variables) {
@@ -1292,20 +1296,20 @@ void language_meta_action_38(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_208))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_209), 0, NULL);
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_210))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_211), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_210), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_211), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_212), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_213), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_213), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_214), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_215), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_216), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_217), 0, NULL);
}
void language_meta_action_39(void* runtime, void* variables) {
@@ -1314,8 +1318,8 @@ void language_meta_action_39(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_217))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_218), 0, NULL);
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_219))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_220), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_alloc_from_cstring(((language_meta_Runtime*)runtime)->arena, "\n"), 0, NULL);
@@ -1680,30 +1684,30 @@ void language_meta_action_40(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_219))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_220), 0, NULL);
- }
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_221))) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_222), 0, NULL);
}
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_223))) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_224), 0, NULL);
}
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_225))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_226), 0, NULL);
+ }
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_225), 0, NULL);
- meta_action_run(&(((struct language_meta_Action40Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_226), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_227), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action40Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_228), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_229), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_230), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_231), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_231), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_232), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_233), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_234), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_235), 0, NULL);
}
void language_meta_action_41(void* runtime, void* variables) {
@@ -1712,71 +1716,71 @@ void language_meta_action_41(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_actions;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_236), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_238), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_237), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_239), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_238), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_240), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
((language_meta_Runtime*)runtime)->named_string_builder_actionDeclarations = string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_actionDeclarations);
meta_action_run(&(((struct language_meta_Action41Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_239), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_240), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_241), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_242), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_241), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_243), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_242), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_244), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_orInit;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
if (((language_meta_Runtime*)runtime)->named_string_builder_variables->pre_first->next) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_243), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_244), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_245), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_246), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_247), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_248), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_247), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_248), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_249), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_250), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_251), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_252), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_253), 0, NULL);
}
void language_meta_action_42(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_252), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_253), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_254), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_255), 0, NULL);
}
void language_meta_action_43(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_254), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_256), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_255), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_257), 0, NULL);
}
void language_meta_action_44(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_259), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_261), 0, NULL);
meta_action_run(&(((struct language_meta_Action44Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_260), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_262), 0, NULL);
meta_action_run(&(((struct language_meta_Action44Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_261), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_263), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
meta_action_run(&(((struct language_meta_Action44Vars*)variables)->ys), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_262), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_264), 0, NULL);
}
void language_meta_action_45(void* runtime, void* variables) {
@@ -1785,42 +1789,42 @@ void language_meta_action_45(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_266))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_267), 0, NULL);
- }
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_268))) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_269), 0, NULL);
}
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_270))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_271), 0, NULL);
+ }
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_270), 0, NULL);
- meta_action_run(&(((struct language_meta_Action45Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_271), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_272), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action45Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_273), 0, NULL);
- meta_action_run(&(((struct language_meta_Action45Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_274), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_275), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action45Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_276), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
meta_action_run(&(((struct language_meta_Action45Vars*)variables)->ys), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_275), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_277), 0, NULL);
}
void language_meta_action_46(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_278), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_280), 0, NULL);
meta_action_run(&(((struct language_meta_Action46Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_279), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_281), 0, NULL);
meta_action_run(&(((struct language_meta_Action46Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_280), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_282), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_281), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_283), 0, NULL);
meta_action_run(&(((struct language_meta_Action46Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_282), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_284), 0, NULL);
meta_action_run(&(((struct language_meta_Action46Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_283), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_285), 0, NULL);
meta_action_run(&(((struct language_meta_Action46Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_284), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_286), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_285), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_287), 0, NULL);
}
void language_meta_action_47(void* runtime, void* variables) {
@@ -1829,38 +1833,38 @@ void language_meta_action_47(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_289))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_290), 0, NULL);
- }
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_291))) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_292), 0, NULL);
}
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_293))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_294), 0, NULL);
+ }
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_293), 0, NULL);
- meta_action_run(&(((struct language_meta_Action47Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_294), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_295), 0, NULL);
meta_action_run(&(((struct language_meta_Action47Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_296), 0, NULL);
- meta_action_run(&(((struct language_meta_Action47Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_297), 0, NULL);
meta_action_run(&(((struct language_meta_Action47Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_298), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action47Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_299), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action47Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_300), 0, NULL);
meta_action_run(&(((struct language_meta_Action47Vars*)variables)->ys), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
meta_action_run(&(((struct language_meta_Action47Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_299), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_301), 0, NULL);
}
void language_meta_action_48(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_301), 0, NULL);
- meta_action_run(&(((struct language_meta_Action48Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_302), 0, NULL);
- meta_action_run(&(((struct language_meta_Action48Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_303), 0, NULL);
meta_action_run(&(((struct language_meta_Action48Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_304), 0, NULL);
- meta_action_run(&(((struct language_meta_Action48Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ meta_action_run(&(((struct language_meta_Action48Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_305), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action48Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_306), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action48Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_307), 0, NULL);
}
void language_meta_action_49(void* runtime, void* variables) {
@@ -1869,29 +1873,29 @@ void language_meta_action_49(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_307))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_308), 0, NULL);
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_309))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_310), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_309), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_311), 0, NULL);
meta_action_run(&(((struct language_meta_Action49Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_310), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_312), 0, NULL);
meta_action_run(&(((struct language_meta_Action49Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_311), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_313), 0, NULL);
meta_action_run(&(((struct language_meta_Action49Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_312), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_314), 0, NULL);
}
void language_meta_action_50(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_313), 0, NULL);
- meta_action_run(&(((struct language_meta_Action50Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_314), 0, NULL);
- meta_action_run(&(((struct language_meta_Action50Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_315), 0, NULL);
meta_action_run(&(((struct language_meta_Action50Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_316), 0, NULL);
- meta_action_run(&(((struct language_meta_Action50Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ meta_action_run(&(((struct language_meta_Action50Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_317), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action50Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_318), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action50Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_319), 0, NULL);
}
void language_meta_action_51(void* runtime, void* variables) {
@@ -1899,13 +1903,13 @@ void language_meta_action_51(void* runtime, void* variables) {
}
void language_meta_action_52(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_321), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_323), 0, NULL);
meta_action_run(&(((struct language_meta_Action52Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_322), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_324), 0, NULL);
meta_action_run(&(((struct language_meta_Action52Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_323), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_325), 0, NULL);
meta_action_run(&(((struct language_meta_Action52Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_324), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_326), 0, NULL);
}
void language_meta_action_53(void* runtime, void* variables) {
@@ -1915,114 +1919,114 @@ void language_meta_action_53(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_325), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_327), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_1), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_326), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_328), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_placeholders;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_327), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_329), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_1), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_328), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_330), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
((language_meta_Runtime*)runtime)->named_string_builder_placeholderVars = string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_placeholderVars);
meta_action_run(&(((struct language_meta_Action53Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_329), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_330), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_331), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_332), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_actionDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_331))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_332), 0, NULL);
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_333))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_334), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_333), 0, NULL);
- meta_action_run(&(((struct language_meta_Action53Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_334), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_335), 0, NULL);
meta_action_run(&(((struct language_meta_Action53Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_336), 0, NULL);
- meta_action_run(&(((struct language_meta_Action53Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_337), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_1), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action53Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_338), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_339), 0, NULL);
meta_action_run(&(((struct language_meta_Action53Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_339), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_1), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_340), 0, NULL);
- meta_action_run(&(((struct language_meta_Action53Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_341), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action53Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_342), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action53Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_343), 0, NULL);
}
void language_meta_action_54(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_342), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_344), 0, NULL);
meta_action_run(&(((struct language_meta_Action54Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_343), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_345), 0, NULL);
meta_action_run(&(((struct language_meta_Action54Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_344), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_346), 0, NULL);
meta_action_run(&(((struct language_meta_Action54Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_345), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_347), 0, NULL);
}
void language_meta_action_55(void* runtime, void* variables) {
meta_action_run(&(((struct language_meta_Action55Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_350), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_352), 0, NULL);
meta_action_run(&(((struct language_meta_Action55Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_351), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_353), 0, NULL);
meta_action_run(&(((struct language_meta_Action55Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_352), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_354), 0, NULL);
meta_action_run(&(((struct language_meta_Action55Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_353), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_355), 0, NULL);
meta_action_run(&(((struct language_meta_Action55Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_354), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_356), 0, NULL);
meta_action_run(&(((struct language_meta_Action55Vars*)variables)->z), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_355), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_357), 0, NULL);
}
void language_meta_action_56(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_358), 0, NULL);
- meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_359), 0, NULL);
- meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_360), 0, NULL);
- meta_action_run(&(((struct language_meta_Action56Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_361), 0, NULL);
meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_362), 0, NULL);
- meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ meta_action_run(&(((struct language_meta_Action56Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_363), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_364), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_365), 0, NULL);
}
void language_meta_action_57(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_367), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_368), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_369), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_370), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_371), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_372), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_373), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_374), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_375), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_376), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_377), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_378), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_379), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_380), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_381), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_382), 0, NULL);
}
void language_meta_action_58(void* runtime, void* variables) {
@@ -2030,55 +2034,55 @@ void language_meta_action_58(void* runtime, void* variables) {
}
void language_meta_action_59(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_384), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_386), 0, NULL);
meta_action_run(&(((struct language_meta_Action59Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_385), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_387), 0, NULL);
meta_action_run(&(((struct language_meta_Action59Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_386), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_388), 0, NULL);
meta_action_run(&(((struct language_meta_Action59Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_387), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_389), 0, NULL);
}
void language_meta_action_60(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_390), 0, NULL);
- meta_action_run(&(((struct language_meta_Action60Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_391), 0, NULL);
- meta_action_run(&(((struct language_meta_Action60Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_392), 0, NULL);
meta_action_run(&(((struct language_meta_Action60Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_393), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action60Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_394), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action60Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_395), 0, NULL);
}
void language_meta_action_61(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_395), 0, NULL);
- meta_action_run(&(((struct language_meta_Action61Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_396), 0, NULL);
- meta_action_run(&(((struct language_meta_Action61Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_397), 0, NULL);
meta_action_run(&(((struct language_meta_Action61Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_398), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action61Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_399), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action61Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_400), 0, NULL);
}
void language_meta_action_62(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_400), 0, NULL);
- meta_action_run(&(((struct language_meta_Action62Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_401), 0, NULL);
- meta_action_run(&(((struct language_meta_Action62Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_402), 0, NULL);
meta_action_run(&(((struct language_meta_Action62Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_403), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action62Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_404), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action62Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_405), 0, NULL);
}
void language_meta_action_63(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_406), 0, NULL);
- meta_action_run(&(((struct language_meta_Action63Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_407), 0, NULL);
- meta_action_run(&(((struct language_meta_Action63Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_408), 0, NULL);
meta_action_run(&(((struct language_meta_Action63Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_409), 0, NULL);
- meta_action_run(&(((struct language_meta_Action63Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ meta_action_run(&(((struct language_meta_Action63Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_410), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action63Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_411), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action63Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_412), 0, NULL);
}
void language_meta_action_64(void* runtime, void* variables) {
@@ -2092,9 +2096,9 @@ void language_meta_action_64(void* runtime, void* variables) {
action = (((struct language_meta_Action64Vars*)variables)->x);
string_slice(action.input_buffer, action.start, action.end, &slice);
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, &slice)) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_411), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_413), 0, NULL);
meta_action_run(&(((struct language_meta_Action64Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_412), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_414), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
@@ -2103,9 +2107,9 @@ void language_meta_action_64(void* runtime, void* variables) {
action = (((struct language_meta_Action64Vars*)variables)->x);
string_slice(action.input_buffer, action.start, action.end, &slice);
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, &slice)) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_413), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_415), 0, NULL);
meta_action_run(&(((struct language_meta_Action64Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_414), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_416), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
meta_action_run(&(((struct language_meta_Action64Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
@@ -2121,39 +2125,39 @@ void language_meta_action_68(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_placeholderVars;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_418))) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_419), 0, NULL);
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, (&language_meta_string_420))) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_421), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_420), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_422), 0, NULL);
meta_action_run(&(((struct language_meta_Action68Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_421), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_423), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_422), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_424), 0, NULL);
meta_action_run(&(((struct language_meta_Action68Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_423), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_425), 0, NULL);
meta_action_run(&(((struct language_meta_Action68Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_424), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_426), 0, NULL);
meta_action_run(&(((struct language_meta_Action68Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_425), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_427), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_426), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_428), 0, NULL);
}
void language_meta_action_69(void* runtime, void* variables) {
meta_action_run(&(((struct language_meta_Action69Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_427), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_429), 0, NULL);
meta_action_run(&(((struct language_meta_Action69Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
}
void language_meta_action_70(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_431), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_433), 0, NULL);
meta_action_run(&(((struct language_meta_Action70Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_432), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_434), 0, NULL);
meta_action_run(&(((struct language_meta_Action70Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_433), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_435), 0, NULL);
meta_action_run(&(((struct language_meta_Action70Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_434), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_436), 0, NULL);
}
void language_meta_action_71(void* runtime, void* variables) {
@@ -2161,17 +2165,17 @@ void language_meta_action_71(void* runtime, void* variables) {
}
void language_meta_action_72(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_437), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_439), 0, NULL);
meta_action_run(&(((struct language_meta_Action72Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_438), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_440), 0, NULL);
}
void language_meta_action_73(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_439), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_441), 0, NULL);
meta_action_run(&(((struct language_meta_Action73Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_440), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_442), 0, NULL);
meta_action_run(&(((struct language_meta_Action73Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_441), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_443), 0, NULL);
}
void language_meta_action_75(void* runtime, void* variables) {
@@ -2184,46 +2188,46 @@ void language_meta_action_76(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_symbols;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_445), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_447), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_446), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_448), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_2), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_447), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_449), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, meta_action_count((((struct language_meta_Action76Vars*)variables)->xs))), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_448), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_450), 0, NULL);
meta_action_run(&(((struct language_meta_Action76Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_449), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_451), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_450), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_452), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_451), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_453), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_2), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_452), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_454), 0, NULL);
}
void language_meta_action_77(void* runtime, void* variables) {
meta_action_run(&(((struct language_meta_Action77Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_453), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_455), 0, NULL);
meta_action_run(&(((struct language_meta_Action77Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_454), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_456), 0, NULL);
}
void language_meta_action_78(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_455), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_457), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_456), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_458), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_457), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_459), 0, NULL);
meta_action_run(&(((struct language_meta_Action78Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_458), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_460), 0, NULL);
}
void language_meta_action_79(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_460), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_462), 0, NULL);
}
void language_meta_action_80(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_462), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_464), 0, NULL);
}
void language_meta_action_81(void* runtime, void* variables) {
@@ -2237,9 +2241,9 @@ void language_meta_action_81(void* runtime, void* variables) {
action = (((struct language_meta_Action81Vars*)variables)->x);
string_slice(action.input_buffer, action.start, action.end, &slice);
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, &slice)) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_465), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_467), 0, NULL);
meta_action_run(&(((struct language_meta_Action81Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_466), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_468), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
@@ -2248,18 +2252,18 @@ void language_meta_action_81(void* runtime, void* variables) {
action = (((struct language_meta_Action81Vars*)variables)->x);
string_slice(action.input_buffer, action.start, action.end, &slice);
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, &slice)) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_467), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_469), 0, NULL);
meta_action_run(&(((struct language_meta_Action81Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_468), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_470), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
meta_action_run(&(((struct language_meta_Action81Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
}
void language_meta_action_84(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_472), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_474), 0, NULL);
meta_action_run(&(((struct language_meta_Action84Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_473), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_475), 0, NULL);
}
void language_meta_action_85(void* runtime, void* variables) {
@@ -2269,30 +2273,30 @@ void language_meta_action_85(void* runtime, void* variables) {
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_symbols;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_476), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_478), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_477), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_479), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_2), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_478), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_480), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, meta_action_count((((struct language_meta_Action85Vars*)variables)->xs))), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_479), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_481), 0, NULL);
meta_action_run(&(((struct language_meta_Action85Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_480), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_482), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_481), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_483), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_482), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_484), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_2), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_483), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_485), 0, NULL);
}
void language_meta_action_87(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_485), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_487), 0, NULL);
}
void language_meta_action_90(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_488), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_490), 0, NULL);
meta_action_run(&(((struct language_meta_Action90Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
}
@@ -2438,7 +2442,7 @@ MetaAction language_meta_rule_rule(MetaParseState* parse_state) {
if (_.valid) {
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_86);
+ data = (&language_meta_string_88);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -2454,7 +2458,7 @@ MetaAction language_meta_rule_rule(MetaParseState* parse_state) {
if (_.valid) {
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_87);
+ data = (&language_meta_string_89);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -2490,7 +2494,7 @@ MetaAction language_meta_rule_highlight(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars5 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action5Vars));
- data = (&language_meta_string_99);
+ data = (&language_meta_string_101);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -2502,7 +2506,7 @@ MetaAction language_meta_rule_highlight(MetaParseState* parse_state) {
_ = language_meta_rule_metaName(parse_state);
((struct language_meta_Action5Vars*)vars5)->x = _;
if (_.valid) {
- data = (&language_meta_string_100);
+ data = (&language_meta_string_102);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -2838,7 +2842,7 @@ MetaAction language_meta_rule_opBind(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_175);
+ data = (&language_meta_string_177);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -2863,7 +2867,7 @@ MetaAction language_meta_rule_opStar(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_176);
+ data = (&language_meta_string_178);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -2888,7 +2892,7 @@ MetaAction language_meta_rule_opLookahead(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_177);
+ data = (&language_meta_string_179);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -2913,7 +2917,7 @@ MetaAction language_meta_rule_opNegativeLookahead(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_178);
+ data = (&language_meta_string_180);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -2938,7 +2942,7 @@ MetaAction language_meta_rule_opAny(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_179);
+ data = (&language_meta_string_181);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -2963,7 +2967,7 @@ MetaAction language_meta_rule_opOr(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_180);
+ data = (&language_meta_string_182);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -2988,7 +2992,7 @@ MetaAction language_meta_rule_opAction(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_181);
+ data = (&language_meta_string_183);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3020,7 +3024,7 @@ MetaAction language_meta_rule_sepBit(MetaParseState* parse_state) {
star_start_pos = parse_state->pos;
while (1) {
star_pos = parse_state->pos;
- data = (&language_meta_string_182);
+ data = (&language_meta_string_184);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3084,7 +3088,7 @@ MetaAction language_meta_rule_bit(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_186);
+ data = (&language_meta_string_188);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3098,7 +3102,7 @@ MetaAction language_meta_rule_bit(MetaParseState* parse_state) {
}
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_187);
+ data = (&language_meta_string_189);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3141,7 +3145,7 @@ MetaAction language_meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars37 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action37Vars));
- data = (&language_meta_string_193);
+ data = (&language_meta_string_195);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3181,7 +3185,7 @@ MetaAction language_meta_rule_matchExprPrimitive(MetaParseState* parse_state) {
_ = language_meta_rule_singleChar(parse_state);
((struct language_meta_Action39Vars*)vars39)->x = _;
if (_.valid) {
- data = (&language_meta_string_216);
+ data = (&language_meta_string_218);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3232,7 +3236,7 @@ MetaAction language_meta_rule_action(MetaParseState* parse_state) {
if (_.valid) {
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_234);
+ data = (&language_meta_string_236);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3257,7 +3261,7 @@ MetaAction language_meta_rule_action(MetaParseState* parse_state) {
if (_.valid) {
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_235);
+ data = (&language_meta_string_237);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3324,7 +3328,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
vars44 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action44Vars));
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_256);
+ data = (&language_meta_string_258);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3336,7 +3340,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
_ = language_meta_rule_stringBuilderName(parse_state);
((struct language_meta_Action44Vars*)vars44)->x = _;
if (_.valid) {
- data = (&language_meta_string_257);
+ data = (&language_meta_string_259);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3361,7 +3365,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
if (_.valid) {
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_258);
+ data = (&language_meta_string_260);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3388,7 +3392,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
vars45 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action45Vars));
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_263);
+ data = (&language_meta_string_265);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3400,7 +3404,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
_ = language_meta_rule_nameAsActionLookup(parse_state);
((struct language_meta_Action45Vars*)vars45)->x = _;
if (_.valid) {
- data = (&language_meta_string_264);
+ data = (&language_meta_string_266);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3425,7 +3429,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
if (_.valid) {
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_265);
+ data = (&language_meta_string_267);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3452,7 +3456,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
vars46 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action46Vars));
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_276);
+ data = (&language_meta_string_278);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3464,7 +3468,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
_ = language_meta_rule_string(parse_state);
((struct language_meta_Action46Vars*)vars46)->x = _;
if (_.valid) {
- data = (&language_meta_string_277);
+ data = (&language_meta_string_279);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3488,7 +3492,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
vars47 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action47Vars));
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_286);
+ data = (&language_meta_string_288);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3502,7 +3506,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
if (_.valid) {
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_287);
+ data = (&language_meta_string_289);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3527,7 +3531,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
if (_.valid) {
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_288);
+ data = (&language_meta_string_290);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3555,7 +3559,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
vars48 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action48Vars));
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_300);
+ data = (&language_meta_string_302);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3581,7 +3585,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
vars49 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action49Vars));
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_306);
+ data = (&language_meta_string_308);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3623,7 +3627,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
vars51 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action51Vars));
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_318);
+ data = (&language_meta_string_320);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3635,7 +3639,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
star_start_pos = parse_state->pos;
while (1) {
star_pos = parse_state->pos;
- data = (&language_meta_string_319);
+ data = (&language_meta_string_321);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3664,7 +3668,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action51Vars*)vars51)->xs = _;
if (_.valid) {
- data = (&language_meta_string_320);
+ data = (&language_meta_string_322);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3733,7 +3737,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
vars55 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action55Vars));
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_346);
+ data = (&language_meta_string_348);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3745,7 +3749,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
_ = language_meta_rule_name(parse_state);
((struct language_meta_Action55Vars*)vars55)->x = _;
if (_.valid) {
- data = (&language_meta_string_347);
+ data = (&language_meta_string_349);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3757,7 +3761,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
_ = language_meta_rule_wvar(parse_state);
((struct language_meta_Action55Vars*)vars55)->y = _;
if (_.valid) {
- data = (&language_meta_string_348);
+ data = (&language_meta_string_350);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3769,7 +3773,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
_ = language_meta_rule_actionPrimitiveExpression(parse_state);
((struct language_meta_Action55Vars*)vars55)->z = _;
if (_.valid) {
- data = (&language_meta_string_349);
+ data = (&language_meta_string_351);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3797,7 +3801,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
vars56 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action56Vars));
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_356);
+ data = (&language_meta_string_358);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3822,7 +3826,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
if (_.valid) {
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_357);
+ data = (&language_meta_string_359);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3867,7 +3871,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars57 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action57Vars));
- data = (&language_meta_string_364);
+ data = (&language_meta_string_366);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3879,7 +3883,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
star_start_pos = parse_state->pos;
while (1) {
star_pos = parse_state->pos;
- data = (&language_meta_string_365);
+ data = (&language_meta_string_367);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3908,7 +3912,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action57Vars*)vars57)->xs = _;
if (_.valid) {
- data = (&language_meta_string_366);
+ data = (&language_meta_string_368);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3930,7 +3934,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars58 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action58Vars));
- data = (&language_meta_string_381);
+ data = (&language_meta_string_383);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3953,7 +3957,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action58Vars*)vars58)->xs = _;
if (_.valid) {
- data = (&language_meta_string_382);
+ data = (&language_meta_string_384);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3970,7 +3974,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars59 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action59Vars));
- data = (&language_meta_string_383);
+ data = (&language_meta_string_385);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3993,7 +3997,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars60 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action60Vars));
- data = (&language_meta_string_388);
+ data = (&language_meta_string_390);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4005,7 +4009,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
star_start_pos = parse_state->pos;
while (1) {
star_pos = parse_state->pos;
- data = (&language_meta_string_389);
+ data = (&language_meta_string_391);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4031,7 +4035,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars61 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action61Vars));
- data = (&language_meta_string_394);
+ data = (&language_meta_string_396);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4050,7 +4054,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars62 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action62Vars));
- data = (&language_meta_string_399);
+ data = (&language_meta_string_401);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4070,7 +4074,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
action_start_pos = parse_state->pos;
vars63 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action63Vars));
nlookahead_pos = parse_state->pos;
- data = (&language_meta_string_404);
+ data = (&language_meta_string_406);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4086,7 +4090,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, nlookahead_pos);
if (_.valid) {
nlookahead_pos = parse_state->pos;
- data = (&language_meta_string_405);
+ data = (&language_meta_string_407);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4208,7 +4212,7 @@ MetaAction language_meta_rule_placeholder(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars68 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action68Vars));
- data = (&language_meta_string_415);
+ data = (&language_meta_string_417);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4222,7 +4226,7 @@ MetaAction language_meta_rule_placeholder(MetaParseState* parse_state) {
_ = language_meta_rule_string(parse_state);
((struct language_meta_Action68Vars*)vars68)->x = _;
if (_.valid) {
- data = (&language_meta_string_416);
+ data = (&language_meta_string_418);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4236,7 +4240,7 @@ MetaAction language_meta_rule_placeholder(MetaParseState* parse_state) {
if (_.valid) {
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_417);
+ data = (&language_meta_string_419);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4292,7 +4296,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars70 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action70Vars));
- data = (&language_meta_string_428);
+ data = (&language_meta_string_430);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4304,7 +4308,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
_ = language_meta_rule_wvar(parse_state);
((struct language_meta_Action70Vars*)vars70)->x = _;
if (_.valid) {
- data = (&language_meta_string_429);
+ data = (&language_meta_string_431);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4316,7 +4320,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
_ = language_meta_rule_dotname(parse_state);
((struct language_meta_Action70Vars*)vars70)->y = _;
if (_.valid) {
- data = (&language_meta_string_430);
+ data = (&language_meta_string_432);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4348,7 +4352,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars72 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action72Vars));
- data = (&language_meta_string_435);
+ data = (&language_meta_string_437);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4371,7 +4375,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action72Vars*)vars72)->xs = _;
if (_.valid) {
- data = (&language_meta_string_436);
+ data = (&language_meta_string_438);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4425,7 +4429,7 @@ MetaAction language_meta_rule_maybeShift(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_442);
+ data = (&language_meta_string_444);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4462,7 +4466,7 @@ MetaAction language_meta_rule_string(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars76 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action76Vars));
- data = (&language_meta_string_443);
+ data = (&language_meta_string_445);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4485,7 +4489,7 @@ MetaAction language_meta_rule_string(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action76Vars*)vars76)->xs = _;
if (_.valid) {
- data = (&language_meta_string_444);
+ data = (&language_meta_string_446);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4561,7 +4565,7 @@ MetaAction language_meta_rule_nextname(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_459);
+ data = (&language_meta_string_461);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4585,7 +4589,7 @@ MetaAction language_meta_rule_nextname(MetaParseState* parse_state) {
}
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_461);
+ data = (&language_meta_string_463);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4622,7 +4626,7 @@ MetaAction language_meta_rule_wvar(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars81 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action81Vars));
- data = (&language_meta_string_463);
+ data = (&language_meta_string_465);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4639,7 +4643,7 @@ MetaAction language_meta_rule_wvar(MetaParseState* parse_state) {
}
((struct language_meta_Action81Vars*)vars81)->x = _;
if (_.valid) {
- data = (&language_meta_string_464);
+ data = (&language_meta_string_466);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4675,7 +4679,7 @@ MetaAction language_meta_rule_stringInner(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
nlookahead_pos = parse_state->pos;
- data = (&language_meta_string_469);
+ data = (&language_meta_string_471);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4716,7 +4720,7 @@ MetaAction language_meta_rule_singleChar(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars84 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action84Vars));
- data = (&language_meta_string_470);
+ data = (&language_meta_string_472);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4728,7 +4732,7 @@ MetaAction language_meta_rule_singleChar(MetaParseState* parse_state) {
_ = language_meta_rule_charStringInner(parse_state);
((struct language_meta_Action84Vars*)vars84)->x = _;
if (_.valid) {
- data = (&language_meta_string_471);
+ data = (&language_meta_string_473);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4760,7 +4764,7 @@ MetaAction language_meta_rule_charString(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars85 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action85Vars));
- data = (&language_meta_string_474);
+ data = (&language_meta_string_476);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4783,7 +4787,7 @@ MetaAction language_meta_rule_charString(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action85Vars*)vars85)->xs = _;
if (_.valid) {
- data = (&language_meta_string_475);
+ data = (&language_meta_string_477);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4819,7 +4823,7 @@ MetaAction language_meta_rule_charStringInner(MetaParseState* parse_state) {
}
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_484);
+ data = (&language_meta_string_486);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4834,7 +4838,7 @@ MetaAction language_meta_rule_charStringInner(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
nlookahead_pos = parse_state->pos;
- data = (&language_meta_string_486);
+ data = (&language_meta_string_488);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4873,7 +4877,7 @@ MetaAction language_meta_rule_stringEscape(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_487);
+ data = (&language_meta_string_489);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -5141,7 +5145,7 @@ MetaAction language_meta_rule_spacechar(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_489);
+ data = (&language_meta_string_491);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -5155,7 +5159,7 @@ MetaAction language_meta_rule_spacechar(MetaParseState* parse_state) {
}
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_490);
+ data = (&language_meta_string_492);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -5183,6 +5187,7 @@ int main(int argc, char** argv) {
ListItem* placeholder_item;
if (!action.valid) {
fprintf(stderr, "ERROR: parse error [pos=%d] [size=%d]", parse_state->pos, parse_state->input_buffer->size);
+ arena_free(&arena);
exit(1);
}
arg_shift(&argc, &argv);
@@ -5212,6 +5217,7 @@ int main(int argc, char** argv) {
fprintf(stderr, " DEBUG: Ratio = %dx\n", codegen_size/parse_state->input_buffer->size);
fprintf(stderr, " DEBUG: Total size = %d\n", arena.used);
}
+ arena_free(&arena);
return 0;
}
#endif
diff --git a/src/languages/meta.meta b/src/languages/meta.meta
index eb774e6..d3a4c89 100644
--- a/src/languages/meta.meta
+++ b/src/languages/meta.meta
@@ -68,6 +68,7 @@ file = rule*:xs space !. -> {
"ListItem* placeholder_item;\n"
"if (!action.valid) {\n" >
"fprintf(stderr, \"ERROR: parse error [pos=%d] [size=%d]\", parse_state->pos, parse_state->input_buffer->size);\n"
+ "arena_free(&arena);\n"
"exit(1);\n"
< "}\n"
"arg_shift(&argc, &argv);\n"
@@ -97,6 +98,7 @@ file = rule*:xs space !. -> {
"fprintf(stderr, \" DEBUG: Ratio = %dx\\n\", codegen_size/parse_state->input_buffer->size);\n"
"fprintf(stderr, \" DEBUG: Total size = %d\\n\", arena.used);\n"
< "}\n"
+ "arena_free(&arena);\n"
"return 0;\n"
< "}\n"
"#endif\n"
commit 03e6744d348676a9fc5cf1cd3b396f87005c2c49
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 19:23:41 2025 +0100
Better if accept runs debug build
diff --git a/accept.sh b/accept.sh
index d96718f..6f85697 100755
--- a/accept.sh
+++ b/accept.sh
@@ -6,4 +6,4 @@ cd "$(dirname "$0")"
mv out/language_meta.c src/languages/language_meta.c
-./make.sh
+./debug.sh
commit 98f61f583ace4a3409bc98fbfe288c3f7bfd45e3
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 19:10:14 2025 +0100
Do debug och release build in CI
diff --git a/Dockerfile.debug.ci b/Dockerfile.debug.ci
new file mode 100644
index 0000000..9f98171
--- /dev/null
+++ b/Dockerfile.debug.ci
@@ -0,0 +1,7 @@
+FROM fedora
+
+RUN dnf install -y gcc diff SDL3-devel SDL3_ttf-devel
+
+RUN dnf install -y libasan
+
+CMD ["./debug.sh"]
diff --git a/Dockerfile.ci b/Dockerfile.release.ci
similarity index 76%
rename from Dockerfile.ci
rename to Dockerfile.release.ci
index 3c2d5cf..a5f8aed 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.release.ci
@@ -2,4 +2,4 @@ FROM fedora
RUN dnf install -y gcc diff SDL3-devel SDL3_ttf-devel
-CMD ["./make.sh"]
+CMD ["./release.sh"]
diff --git a/README.md b/README.md
index 9506dad..6cd1c51 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,6 @@
* Generate highlight.c from high level description
* Generate language.c from list of available languages
* Generate input C files in out/c and add only that to include path
-* Add optimized build to CI to catch unused variables
## Platform layer
diff --git a/debug.sh b/debug.sh
new file mode 100755
index 0000000..65baeb6
--- /dev/null
+++ b/debug.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env sh
+
+CFLAGS="-fsanitize=address" ./make.sh "$@"
diff --git a/make.sh b/make.sh
index defda27..3dcaa2b 100755
--- a/make.sh
+++ b/make.sh
@@ -191,7 +191,7 @@ c_compile() {
out=$1
shift
echo "Compiling $in -> $out"
- gcc -fsanitize=address -Iout -Isrc -std=c89 -Wfatal-errors -Wall -Werror -pedantic $@ -o $out $in
+ gcc $CFLAGS -Iout -Isrc -std=c89 -Wfatal-errors -Wall -Werror -pedantic $@ -o $out $in
}
main "$@"
diff --git a/release.sh b/release.sh
new file mode 100755
index 0000000..5ee22c4
--- /dev/null
+++ b/release.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env sh
+
+CFLAGS="-O2" ./make.sh "$@"
diff --git a/watch.sh b/watch.sh
index 33cc915..21bdd0d 100755
--- a/watch.sh
+++ b/watch.sh
@@ -1,3 +1,3 @@
#!/usr/bin/env sh
-command-server bash -c "ctags -R src; ./make.sh $1 $2"
+command-server bash -c "ctags -R src; ./debug.sh $1 $2"
commit 31d299e5961cee63b2d1ca212eab94b893e97331
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 18:51:39 2025 +0100
Fix memory errors with the help of -fsanitize=address
diff --git a/examples/aoc202512/aoc202512.meta b/examples/aoc202512/aoc202512.meta
index 77a873f..410e41f 100644
--- a/examples/aoc202512/aoc202512.meta
+++ b/examples/aoc202512/aoc202512.meta
@@ -320,6 +320,7 @@ main = piece*:xs spec*:ys !. -> {C{
for (i=0; i<grids->count; i++) {
printf("can place %d? %d\n", i, can_place_piece(&arena, &grids->grids[i], pieces, 0, 0));
}
+ arena_free(&arena);
return 0;
}
diff --git a/make.sh b/make.sh
index 8822c6e..defda27 100755
--- a/make.sh
+++ b/make.sh
@@ -191,7 +191,7 @@ c_compile() {
out=$1
shift
echo "Compiling $in -> $out"
- gcc -Iout -Isrc -std=c89 -Wfatal-errors -Wall -Werror -pedantic $@ -o $out $in
+ gcc -fsanitize=address -Iout -Isrc -std=c89 -Wfatal-errors -Wall -Werror -pedantic $@ -o $out $in
}
main "$@"
diff --git a/src/arena.c b/src/arena.c
index 466b549..109cb6d 100644
--- a/src/arena.c
+++ b/src/arena.c
@@ -20,6 +20,10 @@ Arena arena_create(unsigned int size) {
return arena;
}
+void arena_free(Arena* arena) {
+ free(arena->memory);
+}
+
Arena arena_temp(Arena* arena) {
Arena temp;
temp.memory = arena->memory + arena->used;
diff --git a/src/buffer.c b/src/buffer.c
index 90e0a72..f775df8 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -26,6 +26,14 @@ char* buffer_at(Buffer* buffer, int position) {
}
}
+Highlight buffer_highlight_at(Buffer* buffer, int position) {
+ if (position >= 0 && position < buffer->parse_state->input_buffer->size) {
+ return buffer->parse_state->highlight[position];
+ } else {
+ return Highlight_None;
+ }
+}
+
int buffer_max_index(Buffer* buffer) {
return buffer->parse_state->input_buffer->size;
}
@@ -258,7 +266,7 @@ void buffer_render(Buffer* buffer, int line_height, int padding, int start_x, in
" ",
&x,
&y,
- buffer->parse_state->highlight[i],
+ buffer_highlight_at(buffer, i),
background,
line_height
);
@@ -269,7 +277,7 @@ void buffer_render(Buffer* buffer, int line_height, int padding, int start_x, in
str,
&x,
&y,
- buffer->parse_state->highlight[i],
+ buffer_highlight_at(buffer, i),
background,
line_height
);
diff --git a/src/languages/language_meta.c b/src/languages/language_meta.c
index 4b42e1e..9edf2fa 100644
--- a/src/languages/language_meta.c
+++ b/src/languages/language_meta.c
@@ -19,6 +19,7 @@ typedef struct language_meta_runtime {
Arena* arena;
StringBuilder* named_string_builder_prefix;
StringBuilder* named_string_builder_runtimeStruct;
+ StringBuilder* named_string_builder_runtimeInit;
StringBuilder* named_string_builder_symbols;
StringBuilder* named_string_builder_fileDeclarations;
StringBuilder* named_string_builder_actions;
@@ -39,6 +40,21 @@ language_meta_Runtime* language_meta_create_runtime(Arena* arena) {
runtime->current_string_builder = runtime->main_string_builder;
runtime->placeholders = meta_placeholders_create(arena);
runtime->arena = arena;
+ runtime->named_string_builder_prefix = NULL;
+ runtime->named_string_builder_runtimeStruct = NULL;
+ runtime->named_string_builder_runtimeInit = NULL;
+ runtime->named_string_builder_symbols = NULL;
+ runtime->named_string_builder_fileDeclarations = NULL;
+ runtime->named_string_builder_actions = NULL;
+ runtime->named_string_builder_placeholders = NULL;
+ runtime->named_string_builder_ruleDeclarations = NULL;
+ runtime->W_0 = 0;
+ runtime->named_string_builder_variables = NULL;
+ runtime->named_string_builder_orInit = NULL;
+ runtime->named_string_builder_actionDeclarations = NULL;
+ runtime->W_1 = 0;
+ runtime->named_string_builder_placeholderVars = NULL;
+ runtime->W_2 = 0;
return runtime;
}
@@ -395,67 +411,67 @@ static String language_meta_string_350 = {4, "->W_"};
static String language_meta_string_351 = {8, " = meta_"};
static String language_meta_string_352 = {1, "("};
static String language_meta_string_353 = {4, "->W_"};
-static String language_meta_string_354 = {3, " ? "};
-static String language_meta_string_355 = {4, "->W_"};
-static String language_meta_string_356 = {6, " : 0, "};
-static String language_meta_string_357 = {3, ");\n"};
-static String language_meta_string_358 = {1, ">"};
-static String language_meta_string_359 = {1, "<"};
-static String language_meta_string_360 = {22, "string_builder_append("};
-static String language_meta_string_361 = {26, "->current_string_builder, "};
-static String language_meta_string_362 = {25, "->arena, NULL, 1, NULL);\n"};
-static String language_meta_string_363 = {22, "string_builder_append("};
-static String language_meta_string_364 = {26, "->current_string_builder, "};
-static String language_meta_string_365 = {26, "->arena, NULL, -1, NULL);\n"};
-static String language_meta_string_366 = {1, "{"};
-static String language_meta_string_367 = {1, " "};
-static String language_meta_string_368 = {1, "}"};
-static String language_meta_string_369 = {22, "string_builder_append("};
-static String language_meta_string_370 = {26, "->current_string_builder, "};
-static String language_meta_string_371 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_372 = {27, "->arena, \"{\\n\"), 0, NULL);\n"};
-static String language_meta_string_373 = {22, "string_builder_append("};
-static String language_meta_string_374 = {26, "->current_string_builder, "};
-static String language_meta_string_375 = {25, "->arena, NULL, 1, NULL);\n"};
-static String language_meta_string_376 = {22, "string_builder_append("};
-static String language_meta_string_377 = {26, "->current_string_builder, "};
-static String language_meta_string_378 = {26, "->arena, NULL, -1, NULL);\n"};
-static String language_meta_string_379 = {22, "string_builder_append("};
-static String language_meta_string_380 = {26, "->current_string_builder, "};
-static String language_meta_string_381 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_382 = {27, "->arena, \"}\\n\"), 0, NULL);\n"};
-static String language_meta_string_383 = {2, "$("};
-static String language_meta_string_384 = {1, ")"};
-static String language_meta_string_385 = {1, "$"};
-static String language_meta_string_386 = {17, "meta_action_run(&"};
-static String language_meta_string_387 = {11, ", runtime, "};
-static String language_meta_string_388 = {26, "->current_string_builder, "};
-static String language_meta_string_389 = {10, "->arena);\n"};
-static String language_meta_string_390 = {1, "\n"};
-static String language_meta_string_391 = {1, " "};
-static String language_meta_string_392 = {22, "string_builder_append("};
-static String language_meta_string_393 = {26, "->current_string_builder, "};
-static String language_meta_string_394 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_395 = {26, "->arena, \"\\n\"), 0, NULL);\n"};
-static String language_meta_string_396 = {1, "\""};
-static String language_meta_string_397 = {22, "string_builder_append("};
-static String language_meta_string_398 = {26, "->current_string_builder, "};
-static String language_meta_string_399 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_400 = {26, "->arena, \"\\\"\"), 0, NULL);\n"};
-static String language_meta_string_401 = {1, "\\"};
-static String language_meta_string_402 = {22, "string_builder_append("};
-static String language_meta_string_403 = {26, "->current_string_builder, "};
-static String language_meta_string_404 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_405 = {26, "->arena, \"\\\\\"), 0, NULL);\n"};
-static String language_meta_string_406 = {1, "{"};
-static String language_meta_string_407 = {1, "}"};
-static String language_meta_string_408 = {22, "string_builder_append("};
-static String language_meta_string_409 = {26, "->current_string_builder, "};
-static String language_meta_string_410 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_411 = {10, "->arena, \""};
-static String language_meta_string_412 = {14, "\"), 0, NULL);\n"};
-static String language_meta_string_413 = {36, "StringBuilder* named_string_builder_"};
-static String language_meta_string_414 = {2, ";\n"};
+static String language_meta_string_354 = {2, ", "};
+static String language_meta_string_355 = {3, ");\n"};
+static String language_meta_string_356 = {1, ">"};
+static String language_meta_string_357 = {1, "<"};
+static String language_meta_string_358 = {22, "string_builder_append("};
+static String language_meta_string_359 = {26, "->current_string_builder, "};
+static String language_meta_string_360 = {25, "->arena, NULL, 1, NULL);\n"};
+static String language_meta_string_361 = {22, "string_builder_append("};
+static String language_meta_string_362 = {26, "->current_string_builder, "};
+static String language_meta_string_363 = {26, "->arena, NULL, -1, NULL);\n"};
+static String language_meta_string_364 = {1, "{"};
+static String language_meta_string_365 = {1, " "};
+static String language_meta_string_366 = {1, "}"};
+static String language_meta_string_367 = {22, "string_builder_append("};
+static String language_meta_string_368 = {26, "->current_string_builder, "};
+static String language_meta_string_369 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_370 = {27, "->arena, \"{\\n\"), 0, NULL);\n"};
+static String language_meta_string_371 = {22, "string_builder_append("};
+static String language_meta_string_372 = {26, "->current_string_builder, "};
+static String language_meta_string_373 = {25, "->arena, NULL, 1, NULL);\n"};
+static String language_meta_string_374 = {22, "string_builder_append("};
+static String language_meta_string_375 = {26, "->current_string_builder, "};
+static String language_meta_string_376 = {26, "->arena, NULL, -1, NULL);\n"};
+static String language_meta_string_377 = {22, "string_builder_append("};
+static String language_meta_string_378 = {26, "->current_string_builder, "};
+static String language_meta_string_379 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_380 = {27, "->arena, \"}\\n\"), 0, NULL);\n"};
+static String language_meta_string_381 = {2, "$("};
+static String language_meta_string_382 = {1, ")"};
+static String language_meta_string_383 = {1, "$"};
+static String language_meta_string_384 = {17, "meta_action_run(&"};
+static String language_meta_string_385 = {11, ", runtime, "};
+static String language_meta_string_386 = {26, "->current_string_builder, "};
+static String language_meta_string_387 = {10, "->arena);\n"};
+static String language_meta_string_388 = {1, "\n"};
+static String language_meta_string_389 = {1, " "};
+static String language_meta_string_390 = {22, "string_builder_append("};
+static String language_meta_string_391 = {26, "->current_string_builder, "};
+static String language_meta_string_392 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_393 = {26, "->arena, \"\\n\"), 0, NULL);\n"};
+static String language_meta_string_394 = {1, "\""};
+static String language_meta_string_395 = {22, "string_builder_append("};
+static String language_meta_string_396 = {26, "->current_string_builder, "};
+static String language_meta_string_397 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_398 = {26, "->arena, \"\\\"\"), 0, NULL);\n"};
+static String language_meta_string_399 = {1, "\\"};
+static String language_meta_string_400 = {22, "string_builder_append("};
+static String language_meta_string_401 = {26, "->current_string_builder, "};
+static String language_meta_string_402 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_403 = {26, "->arena, \"\\\\\"), 0, NULL);\n"};
+static String language_meta_string_404 = {1, "{"};
+static String language_meta_string_405 = {1, "}"};
+static String language_meta_string_406 = {22, "string_builder_append("};
+static String language_meta_string_407 = {26, "->current_string_builder, "};
+static String language_meta_string_408 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_409 = {10, "->arena, \""};
+static String language_meta_string_410 = {14, "\"), 0, NULL);\n"};
+static String language_meta_string_411 = {36, "StringBuilder* named_string_builder_"};
+static String language_meta_string_412 = {2, ";\n"};
+static String language_meta_string_413 = {30, "runtime->named_string_builder_"};
+static String language_meta_string_414 = {9, " = NULL;\n"};
static String language_meta_string_415 = {1, "{"};
static String language_meta_string_416 = {1, "*"};
static String language_meta_string_417 = {1, "}"};
@@ -468,74 +484,70 @@ static String language_meta_string_423 = {26, "->current_string_builder, "};
static String language_meta_string_424 = {9, "->arena, "};
static String language_meta_string_425 = {12, ", 0, NULL);\n"};
static String language_meta_string_426 = {2, "}\n"};
-static String language_meta_string_427 = {1, "("};
-static String language_meta_string_428 = {4, "->W_"};
-static String language_meta_string_429 = {3, " ? "};
-static String language_meta_string_430 = {4, "->W_"};
-static String language_meta_string_431 = {5, " : 0)"};
-static String language_meta_string_432 = {1, "("};
-static String language_meta_string_433 = {1, "-"};
+static String language_meta_string_427 = {4, "->W_"};
+static String language_meta_string_428 = {1, "("};
+static String language_meta_string_429 = {1, "-"};
+static String language_meta_string_430 = {1, ")"};
+static String language_meta_string_431 = {2, "(("};
+static String language_meta_string_432 = {4, "->W_"};
+static String language_meta_string_433 = {2, ")-"};
static String language_meta_string_434 = {1, ")"};
-static String language_meta_string_435 = {2, "(("};
-static String language_meta_string_436 = {4, "->W_"};
-static String language_meta_string_437 = {3, " ? "};
-static String language_meta_string_438 = {4, "->W_"};
-static String language_meta_string_439 = {6, " : 0)-"};
+static String language_meta_string_435 = {7, "number("};
+static String language_meta_string_436 = {1, ")"};
+static String language_meta_string_437 = {2, "(0"};
+static String language_meta_string_438 = {1, ")"};
+static String language_meta_string_439 = {25, "+(meta_action_first_byte("};
static String language_meta_string_440 = {1, ")"};
-static String language_meta_string_441 = {7, "number("};
-static String language_meta_string_442 = {1, ")"};
-static String language_meta_string_443 = {2, "(0"};
-static String language_meta_string_444 = {1, ")"};
-static String language_meta_string_445 = {25, "+(meta_action_first_byte("};
-static String language_meta_string_446 = {1, ")"};
-static String language_meta_string_447 = {1, ")"};
-static String language_meta_string_448 = {2, "<<"};
-static String language_meta_string_449 = {1, "\""};
-static String language_meta_string_450 = {1, "\""};
-static String language_meta_string_451 = {14, "static String "};
-static String language_meta_string_452 = {7, "string_"};
-static String language_meta_string_453 = {4, " = {"};
-static String language_meta_string_454 = {3, ", \""};
-static String language_meta_string_455 = {4, "\"};\n"};
-static String language_meta_string_456 = {2, "(&"};
-static String language_meta_string_457 = {7, "string_"};
+static String language_meta_string_441 = {1, ")"};
+static String language_meta_string_442 = {2, "<<"};
+static String language_meta_string_443 = {1, "\""};
+static String language_meta_string_444 = {1, "\""};
+static String language_meta_string_445 = {14, "static String "};
+static String language_meta_string_446 = {7, "string_"};
+static String language_meta_string_447 = {4, " = {"};
+static String language_meta_string_448 = {3, ", \""};
+static String language_meta_string_449 = {4, "\"};\n"};
+static String language_meta_string_450 = {2, "(&"};
+static String language_meta_string_451 = {7, "string_"};
+static String language_meta_string_452 = {1, ")"};
+static String language_meta_string_453 = {1, "("};
+static String language_meta_string_454 = {1, ")"};
+static String language_meta_string_455 = {10, "(((struct "};
+static String language_meta_string_456 = {6, "Action"};
+static String language_meta_string_457 = {18, "Vars*)variables)->"};
static String language_meta_string_458 = {1, ")"};
-static String language_meta_string_459 = {1, "("};
-static String language_meta_string_460 = {1, ")"};
-static String language_meta_string_461 = {10, "(((struct "};
-static String language_meta_string_462 = {6, "Action"};
-static String language_meta_string_463 = {18, "Vars*)variables)->"};
-static String language_meta_string_464 = {1, ")"};
-static String language_meta_string_465 = {4, ".len"};
-static String language_meta_string_466 = {15, "meta_action_len"};
-static String language_meta_string_467 = {6, ".count"};
-static String language_meta_string_468 = {17, "meta_action_count"};
-static String language_meta_string_469 = {2, "W["};
-static String language_meta_string_470 = {1, "]"};
-static String language_meta_string_471 = {15, "unsigned int W_"};
-static String language_meta_string_472 = {2, ";\n"};
-static String language_meta_string_473 = {1, "\""};
+static String language_meta_string_459 = {4, ".len"};
+static String language_meta_string_460 = {15, "meta_action_len"};
+static String language_meta_string_461 = {6, ".count"};
+static String language_meta_string_462 = {17, "meta_action_count"};
+static String language_meta_string_463 = {2, "W["};
+static String language_meta_string_464 = {1, "]"};
+static String language_meta_string_465 = {15, "unsigned int W_"};
+static String language_meta_string_466 = {2, ";\n"};
+static String language_meta_string_467 = {11, "runtime->W_"};
+static String language_meta_string_468 = {6, " = 0;\n"};
+static String language_meta_string_469 = {1, "\""};
+static String language_meta_string_470 = {1, "\'"};
+static String language_meta_string_471 = {1, "\'"};
+static String language_meta_string_472 = {1, "'"};
+static String language_meta_string_473 = {1, "'"};
static String language_meta_string_474 = {1, "\'"};
static String language_meta_string_475 = {1, "\'"};
-static String language_meta_string_476 = {1, "'"};
-static String language_meta_string_477 = {1, "'"};
-static String language_meta_string_478 = {1, "\'"};
-static String language_meta_string_479 = {1, "\'"};
-static String language_meta_string_480 = {14, "static String "};
-static String language_meta_string_481 = {7, "string_"};
-static String language_meta_string_482 = {4, " = {"};
-static String language_meta_string_483 = {3, ", \""};
-static String language_meta_string_484 = {4, "\"};\n"};
-static String language_meta_string_485 = {2, "(&"};
-static String language_meta_string_486 = {7, "string_"};
-static String language_meta_string_487 = {1, ")"};
-static String language_meta_string_488 = {1, "\""};
-static String language_meta_string_489 = {2, "\\\""};
-static String language_meta_string_490 = {1, "\'"};
-static String language_meta_string_491 = {1, "\\"};
-static String language_meta_string_492 = {5, "rule_"};
-static String language_meta_string_493 = {1, " "};
-static String language_meta_string_494 = {1, "\n"};
+static String language_meta_string_476 = {14, "static String "};
+static String language_meta_string_477 = {7, "string_"};
+static String language_meta_string_478 = {4, " = {"};
+static String language_meta_string_479 = {3, ", \""};
+static String language_meta_string_480 = {4, "\"};\n"};
+static String language_meta_string_481 = {2, "(&"};
+static String language_meta_string_482 = {7, "string_"};
+static String language_meta_string_483 = {1, ")"};
+static String language_meta_string_484 = {1, "\""};
+static String language_meta_string_485 = {2, "\\\""};
+static String language_meta_string_486 = {1, "\'"};
+static String language_meta_string_487 = {1, "\\"};
+static String language_meta_string_488 = {5, "rule_"};
+static String language_meta_string_489 = {1, " "};
+static String language_meta_string_490 = {1, "\n"};
MetaAction language_meta_rule_main(MetaParseState* parse_state);
struct language_meta_Action1Vars {
MetaAction xs;
@@ -871,6 +883,9 @@ void language_meta_action_3(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_32), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_33), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_34), 0, NULL);
+ string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
+ ((language_meta_Runtime*)runtime)->named_string_builder_runtimeInit = string_builder;
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_runtimeInit);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_35), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_36), 0, NULL);
@@ -1009,7 +1024,7 @@ void language_meta_action_11(void* runtime, void* variables) {
void language_meta_action_13(void* runtime, void* variables) {
StringBuilder* string_builder;
StringBuilder* last_string_builder;
- ((language_meta_Runtime*)runtime)->W_0 = meta_inc(((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0, 1);
+ ((language_meta_Runtime*)runtime)->W_0 = meta_inc(((language_meta_Runtime*)runtime)->W_0, 1);
string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
((language_meta_Runtime*)runtime)->named_string_builder_variables = string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_104), 0, NULL);
@@ -1025,7 +1040,7 @@ void language_meta_action_13(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_106), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_107), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_108), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_variables);
@@ -1120,9 +1135,9 @@ void language_meta_action_19(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_136), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_137), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_138), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_139), 0, NULL);
meta_action_run(&(((struct language_meta_Action19Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_140), 0, NULL);
@@ -1700,7 +1715,7 @@ void language_meta_action_41(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_236), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_237), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_238), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
@@ -1715,7 +1730,7 @@ void language_meta_action_41(void* runtime, void* variables) {
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_241), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_242), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
@@ -1723,11 +1738,11 @@ void language_meta_action_41(void* runtime, void* variables) {
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
if (((language_meta_Runtime*)runtime)->named_string_builder_variables->pre_first->next) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_243), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_244), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_245), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_246), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
@@ -1735,9 +1750,9 @@ void language_meta_action_41(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_248), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_249), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_250), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_251), 0, NULL);
}
@@ -1896,19 +1911,19 @@ void language_meta_action_52(void* runtime, void* variables) {
void language_meta_action_53(void* runtime, void* variables) {
StringBuilder* last_string_builder;
StringBuilder* string_builder;
- ((language_meta_Runtime*)runtime)->W_1 = meta_inc(((language_meta_Runtime*)runtime)->W_1 ? ((language_meta_Runtime*)runtime)->W_1 : 0, 1);
+ ((language_meta_Runtime*)runtime)->W_1 = meta_inc(((language_meta_Runtime*)runtime)->W_1, 1);
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_325), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_1 ? ((language_meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_1), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_326), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_placeholders;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_327), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_1 ? ((language_meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_1), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_328), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
@@ -1934,7 +1949,7 @@ void language_meta_action_53(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_336), 0, NULL);
meta_action_run(&(((struct language_meta_Action53Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_337), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_1 ? ((language_meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_1), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_338), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_339), 0, NULL);
meta_action_run(&(((struct language_meta_Action53Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
@@ -1964,54 +1979,50 @@ void language_meta_action_55(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_353), 0, NULL);
meta_action_run(&(((struct language_meta_Action55Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_354), 0, NULL);
- meta_action_run(&(((struct language_meta_Action55Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_355), 0, NULL);
- meta_action_run(&(((struct language_meta_Action55Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_356), 0, NULL);
meta_action_run(&(((struct language_meta_Action55Vars*)variables)->z), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_357), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_355), 0, NULL);
}
void language_meta_action_56(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_360), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_358), 0, NULL);
meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_361), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_359), 0, NULL);
meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_362), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_360), 0, NULL);
meta_action_run(&(((struct language_meta_Action56Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_363), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_361), 0, NULL);
meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_364), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_362), 0, NULL);
meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_365), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_363), 0, NULL);
}
void language_meta_action_57(void* runtime, void* variables) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_367), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_368), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_369), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_370), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_371), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_372), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_373), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_373), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_374), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_375), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_376), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_376), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_377), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_378), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_379), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_380), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_381), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_382), 0, NULL);
}
void language_meta_action_58(void* runtime, void* variables) {
@@ -2019,55 +2030,55 @@ void language_meta_action_58(void* runtime, void* variables) {
}
void language_meta_action_59(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_386), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_384), 0, NULL);
meta_action_run(&(((struct language_meta_Action59Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_387), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_385), 0, NULL);
meta_action_run(&(((struct language_meta_Action59Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_388), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_386), 0, NULL);
meta_action_run(&(((struct language_meta_Action59Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_389), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_387), 0, NULL);
}
void language_meta_action_60(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_392), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_390), 0, NULL);
meta_action_run(&(((struct language_meta_Action60Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_393), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_391), 0, NULL);
meta_action_run(&(((struct language_meta_Action60Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_394), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_392), 0, NULL);
meta_action_run(&(((struct language_meta_Action60Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_395), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_393), 0, NULL);
}
void language_meta_action_61(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_397), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_395), 0, NULL);
meta_action_run(&(((struct language_meta_Action61Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_398), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_396), 0, NULL);
meta_action_run(&(((struct language_meta_Action61Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_399), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_397), 0, NULL);
meta_action_run(&(((struct language_meta_Action61Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_400), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_398), 0, NULL);
}
void language_meta_action_62(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_402), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_400), 0, NULL);
meta_action_run(&(((struct language_meta_Action62Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_403), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_401), 0, NULL);
meta_action_run(&(((struct language_meta_Action62Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_404), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_402), 0, NULL);
meta_action_run(&(((struct language_meta_Action62Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_405), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_403), 0, NULL);
}
void language_meta_action_63(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_408), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_406), 0, NULL);
meta_action_run(&(((struct language_meta_Action63Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_409), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_407), 0, NULL);
meta_action_run(&(((struct language_meta_Action63Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_410), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_408), 0, NULL);
meta_action_run(&(((struct language_meta_Action63Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_411), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_409), 0, NULL);
meta_action_run(&(((struct language_meta_Action63Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_412), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_410), 0, NULL);
}
void language_meta_action_64(void* runtime, void* variables) {
@@ -2080,6 +2091,17 @@ void language_meta_action_64(void* runtime, void* variables) {
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
action = (((struct language_meta_Action64Vars*)variables)->x);
string_slice(action.input_buffer, action.start, action.end, &slice);
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, &slice)) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_411), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action64Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_412), 0, NULL);
+ }
+ ((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+ last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
+ string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_runtimeInit;
+ ((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
+ action = (((struct language_meta_Action64Vars*)variables)->x);
+ string_slice(action.input_buffer, action.start, action.end, &slice);
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, &slice)) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_413), 0, NULL);
meta_action_run(&(((struct language_meta_Action64Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
@@ -2119,29 +2141,19 @@ void language_meta_action_68(void* runtime, void* variables) {
}
void language_meta_action_69(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_427), 0, NULL);
- meta_action_run(&(((struct language_meta_Action69Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_428), 0, NULL);
- meta_action_run(&(((struct language_meta_Action69Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_429), 0, NULL);
meta_action_run(&(((struct language_meta_Action69Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_430), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_427), 0, NULL);
meta_action_run(&(((struct language_meta_Action69Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_431), 0, NULL);
}
void language_meta_action_70(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_435), 0, NULL);
- meta_action_run(&(((struct language_meta_Action70Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_436), 0, NULL);
- meta_action_run(&(((struct language_meta_Action70Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_437), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_431), 0, NULL);
meta_action_run(&(((struct language_meta_Action70Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_438), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_432), 0, NULL);
meta_action_run(&(((struct language_meta_Action70Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_439), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_433), 0, NULL);
meta_action_run(&(((struct language_meta_Action70Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_440), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_434), 0, NULL);
}
void language_meta_action_71(void* runtime, void* variables) {
@@ -2149,17 +2161,17 @@ void language_meta_action_71(void* runtime, void* variables) {
}
void language_meta_action_72(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_443), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_437), 0, NULL);
meta_action_run(&(((struct language_meta_Action72Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_444), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_438), 0, NULL);
}
void language_meta_action_73(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_445), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_439), 0, NULL);
meta_action_run(&(((struct language_meta_Action73Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_446), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_440), 0, NULL);
meta_action_run(&(((struct language_meta_Action73Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_447), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_441), 0, NULL);
}
void language_meta_action_75(void* runtime, void* variables) {
@@ -2168,50 +2180,50 @@ void language_meta_action_75(void* runtime, void* variables) {
void language_meta_action_76(void* runtime, void* variables) {
StringBuilder* last_string_builder;
StringBuilder* string_builder;
- ((language_meta_Runtime*)runtime)->W_2 = meta_inc(((language_meta_Runtime*)runtime)->W_2 ? ((language_meta_Runtime*)runtime)->W_2 : 0, 1);
+ ((language_meta_Runtime*)runtime)->W_2 = meta_inc(((language_meta_Runtime*)runtime)->W_2, 1);
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_symbols;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_451), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_445), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_452), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_2 ? ((language_meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_453), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_446), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_2), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_447), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, meta_action_count((((struct language_meta_Action76Vars*)variables)->xs))), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_454), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_448), 0, NULL);
meta_action_run(&(((struct language_meta_Action76Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_455), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_449), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_456), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_450), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_457), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_2 ? ((language_meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_458), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_451), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_2), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_452), 0, NULL);
}
void language_meta_action_77(void* runtime, void* variables) {
meta_action_run(&(((struct language_meta_Action77Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_459), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_453), 0, NULL);
meta_action_run(&(((struct language_meta_Action77Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_460), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_454), 0, NULL);
}
void language_meta_action_78(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_461), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_455), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_462), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_463), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_456), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_457), 0, NULL);
meta_action_run(&(((struct language_meta_Action78Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_464), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_458), 0, NULL);
}
void language_meta_action_79(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_466), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_460), 0, NULL);
}
void language_meta_action_80(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_468), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_462), 0, NULL);
}
void language_meta_action_81(void* runtime, void* variables) {
@@ -2225,51 +2237,62 @@ void language_meta_action_81(void* runtime, void* variables) {
action = (((struct language_meta_Action81Vars*)variables)->x);
string_slice(action.input_buffer, action.start, action.end, &slice);
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, &slice)) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_471), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_465), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action81Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_466), 0, NULL);
+ }
+ ((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+ last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
+ string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_runtimeInit;
+ ((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
+ action = (((struct language_meta_Action81Vars*)variables)->x);
+ string_slice(action.input_buffer, action.start, action.end, &slice);
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, &slice)) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_467), 0, NULL);
meta_action_run(&(((struct language_meta_Action81Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_472), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_468), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
meta_action_run(&(((struct language_meta_Action81Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
}
void language_meta_action_84(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_476), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_472), 0, NULL);
meta_action_run(&(((struct language_meta_Action84Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_477), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_473), 0, NULL);
}
void language_meta_action_85(void* runtime, void* variables) {
StringBuilder* last_string_builder;
StringBuilder* string_builder;
- ((language_meta_Runtime*)runtime)->W_2 = meta_inc(((language_meta_Runtime*)runtime)->W_2 ? ((language_meta_Runtime*)runtime)->W_2 : 0, 1);
+ ((language_meta_Runtime*)runtime)->W_2 = meta_inc(((language_meta_Runtime*)runtime)->W_2, 1);
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_symbols;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_480), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_476), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_481), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_2 ? ((language_meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_482), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_477), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_2), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_478), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, meta_action_count((((struct language_meta_Action85Vars*)variables)->xs))), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_483), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_479), 0, NULL);
meta_action_run(&(((struct language_meta_Action85Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_484), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_480), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_485), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_481), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_486), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_2 ? ((language_meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_487), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_482), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_2), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_483), 0, NULL);
}
void language_meta_action_87(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_489), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_485), 0, NULL);
}
void language_meta_action_90(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_492), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_488), 0, NULL);
meta_action_run(&(((struct language_meta_Action90Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
}
@@ -3774,7 +3797,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
vars56 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action56Vars));
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_358);
+ data = (&language_meta_string_356);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3799,7 +3822,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
if (_.valid) {
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_359);
+ data = (&language_meta_string_357);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3844,7 +3867,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars57 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action57Vars));
- data = (&language_meta_string_366);
+ data = (&language_meta_string_364);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3856,7 +3879,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
star_start_pos = parse_state->pos;
while (1) {
star_pos = parse_state->pos;
- data = (&language_meta_string_367);
+ data = (&language_meta_string_365);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3885,7 +3908,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action57Vars*)vars57)->xs = _;
if (_.valid) {
- data = (&language_meta_string_368);
+ data = (&language_meta_string_366);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3907,7 +3930,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars58 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action58Vars));
- data = (&language_meta_string_383);
+ data = (&language_meta_string_381);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3930,7 +3953,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action58Vars*)vars58)->xs = _;
if (_.valid) {
- data = (&language_meta_string_384);
+ data = (&language_meta_string_382);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3947,7 +3970,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars59 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action59Vars));
- data = (&language_meta_string_385);
+ data = (&language_meta_string_383);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3970,7 +3993,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars60 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action60Vars));
- data = (&language_meta_string_390);
+ data = (&language_meta_string_388);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3982,7 +4005,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
star_start_pos = parse_state->pos;
while (1) {
star_pos = parse_state->pos;
- data = (&language_meta_string_391);
+ data = (&language_meta_string_389);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4008,7 +4031,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars61 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action61Vars));
- data = (&language_meta_string_396);
+ data = (&language_meta_string_394);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4027,7 +4050,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars62 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action62Vars));
- data = (&language_meta_string_401);
+ data = (&language_meta_string_399);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4047,7 +4070,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
action_start_pos = parse_state->pos;
vars63 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action63Vars));
nlookahead_pos = parse_state->pos;
- data = (&language_meta_string_406);
+ data = (&language_meta_string_404);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4063,7 +4086,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, nlookahead_pos);
if (_.valid) {
nlookahead_pos = parse_state->pos;
- data = (&language_meta_string_407);
+ data = (&language_meta_string_405);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4269,7 +4292,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars70 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action70Vars));
- data = (&language_meta_string_432);
+ data = (&language_meta_string_428);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4281,7 +4304,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
_ = language_meta_rule_wvar(parse_state);
((struct language_meta_Action70Vars*)vars70)->x = _;
if (_.valid) {
- data = (&language_meta_string_433);
+ data = (&language_meta_string_429);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4293,7 +4316,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
_ = language_meta_rule_dotname(parse_state);
((struct language_meta_Action70Vars*)vars70)->y = _;
if (_.valid) {
- data = (&language_meta_string_434);
+ data = (&language_meta_string_430);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4325,7 +4348,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars72 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action72Vars));
- data = (&language_meta_string_441);
+ data = (&language_meta_string_435);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4348,7 +4371,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action72Vars*)vars72)->xs = _;
if (_.valid) {
- data = (&language_meta_string_442);
+ data = (&language_meta_string_436);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4402,7 +4425,7 @@ MetaAction language_meta_rule_maybeShift(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_448);
+ data = (&language_meta_string_442);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4439,7 +4462,7 @@ MetaAction language_meta_rule_string(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars76 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action76Vars));
- data = (&language_meta_string_449);
+ data = (&language_meta_string_443);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4462,7 +4485,7 @@ MetaAction language_meta_rule_string(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action76Vars*)vars76)->xs = _;
if (_.valid) {
- data = (&language_meta_string_450);
+ data = (&language_meta_string_444);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4538,7 +4561,7 @@ MetaAction language_meta_rule_nextname(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_465);
+ data = (&language_meta_string_459);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4562,7 +4585,7 @@ MetaAction language_meta_rule_nextname(MetaParseState* parse_state) {
}
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_467);
+ data = (&language_meta_string_461);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4599,7 +4622,7 @@ MetaAction language_meta_rule_wvar(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars81 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action81Vars));
- data = (&language_meta_string_469);
+ data = (&language_meta_string_463);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4616,7 +4639,7 @@ MetaAction language_meta_rule_wvar(MetaParseState* parse_state) {
}
((struct language_meta_Action81Vars*)vars81)->x = _;
if (_.valid) {
- data = (&language_meta_string_470);
+ data = (&language_meta_string_464);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4652,7 +4675,7 @@ MetaAction language_meta_rule_stringInner(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
nlookahead_pos = parse_state->pos;
- data = (&language_meta_string_473);
+ data = (&language_meta_string_469);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4693,7 +4716,7 @@ MetaAction language_meta_rule_singleChar(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars84 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action84Vars));
- data = (&language_meta_string_474);
+ data = (&language_meta_string_470);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4705,7 +4728,7 @@ MetaAction language_meta_rule_singleChar(MetaParseState* parse_state) {
_ = language_meta_rule_charStringInner(parse_state);
((struct language_meta_Action84Vars*)vars84)->x = _;
if (_.valid) {
- data = (&language_meta_string_475);
+ data = (&language_meta_string_471);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4737,7 +4760,7 @@ MetaAction language_meta_rule_charString(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars85 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action85Vars));
- data = (&language_meta_string_478);
+ data = (&language_meta_string_474);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4760,7 +4783,7 @@ MetaAction language_meta_rule_charString(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action85Vars*)vars85)->xs = _;
if (_.valid) {
- data = (&language_meta_string_479);
+ data = (&language_meta_string_475);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4796,7 +4819,7 @@ MetaAction language_meta_rule_charStringInner(MetaParseState* parse_state) {
}
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_488);
+ data = (&language_meta_string_484);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4811,7 +4834,7 @@ MetaAction language_meta_rule_charStringInner(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
nlookahead_pos = parse_state->pos;
- data = (&language_meta_string_490);
+ data = (&language_meta_string_486);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4850,7 +4873,7 @@ MetaAction language_meta_rule_stringEscape(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_491);
+ data = (&language_meta_string_487);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -5118,7 +5141,7 @@ MetaAction language_meta_rule_spacechar(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_493);
+ data = (&language_meta_string_489);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -5132,7 +5155,7 @@ MetaAction language_meta_rule_spacechar(MetaParseState* parse_state) {
}
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_494);
+ data = (&language_meta_string_490);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
diff --git a/src/languages/meta.meta b/src/languages/meta.meta
index 87a1c40..eb774e6 100644
--- a/src/languages/meta.meta
+++ b/src/languages/meta.meta
@@ -40,6 +40,8 @@ file = rule*:xs space !. -> {
"runtime->current_string_builder = runtime->main_string_builder;\n"
"runtime->placeholders = meta_placeholders_create(arena);\n"
"runtime->arena = arena;\n"
+ $runtimeInit
+ <runtimeInit
"return runtime;\n"
< "}\n"
"\n"
@@ -448,7 +450,7 @@ actionexpr =
"string_builder_append(" runtime "->current_string_builder, " runtime "->arena, " x ", 0, NULL);\n"
}
| space '#' name:x '(' wvar:y ' ' actionPrimitiveExpression:z ')' genRuntime:runtime -> {
- runtime "->W_" y " = meta_" x "(" runtime "->W_" y " ? " runtime "->W_" y " : 0, " z ");\n"
+ runtime "->W_" y " = meta_" x "(" runtime "->W_" y ", " z ");\n"
}
| space '>' actionexpr*:xs space '<' genRuntime:runtime -> {
"string_builder_append(" runtime "->current_string_builder, " runtime "->arena, NULL, 1, NULL);\n"
@@ -491,6 +493,11 @@ stringBuilderName = name:x -> {
"StringBuilder* named_string_builder_" x ";\n"
}
}
+ >runtimeInit {
+ unseen(x) -> {
+ "runtime->named_string_builder_" x " = NULL;\n"
+ }
+ }
x
};
@@ -514,10 +521,10 @@ placeholder
expr =
| wvar:x genRuntime:runtime -> {
- "(" runtime "->W_" x " ? " runtime "->W_" x " : 0)"
+ runtime "->W_" x
}
| '(' wvar:x '-' dotname:y ')' genRuntime:runtime -> {
- "((" runtime "->W_" x " ? " runtime "->W_" x " : 0)-" y ")"
+ "((" runtime "->W_" x ")-" y ")"
}
| dotname:y -> {
y
@@ -560,6 +567,11 @@ wvar = 'W[' .:x ']' -> {
"unsigned int W_" x ";\n"
}
}
+ >runtimeInit {
+ unseen(x) -> {
+ "runtime->W_" x " = 0;\n"
+ }
+ }
x
};
diff --git a/src/workbench.c b/src/workbench.c
index 36fe618..0729395 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -105,16 +105,21 @@ WorkbenchAppInit workbench_cli_command_highlight(int argc, char** argv) {
parse_state = meta_parse_state_from_file(&arena, args.filename);
action = parse_function(parse_state);
- if (!action.valid) {
+ if (action.valid) {
+ if (html) {
+ meta_highlight_html(parse_state);
+ } else {
+ meta_highlight_terminal(parse_state);
+ }
+ } else {
fprintf(stderr, "ERROR: parse error [pos=%d] [size=%d]", parse_state->pos, parse_state->input_buffer->size);
- return workbench_app_init_fail();
}
- if (html) {
- meta_highlight_html(parse_state);
+ arena_free(&arena);
+ if (action.valid) {
+ return workbench_app_init_success(NULL);
} else {
- meta_highlight_terminal(parse_state);
+ return workbench_app_init_fail();
}
- return workbench_app_init_success(NULL);
}
WorkbenchAppInit workbench_cli_command_gui(int argc, char** argv) {
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
index f48cc78..0bb66ac 100644
--- a/src/workbench_sdl.c
+++ b/src/workbench_sdl.c
@@ -28,7 +28,8 @@ void platform_sdl_char_textures_init(void) {
}
SDL_Texture* platform_sdl_char_textures_get(char *c, Highlight color) {
- SDL_Texture** slot = &charTextures[*c % PLATFORM_SDL_CHAR_CACHE_SIZE][color];
+ SDL_Texture** slot;
+ slot = &charTextures[*c % PLATFORM_SDL_CHAR_CACHE_SIZE][color];
if (*slot == NULL) {
SDL_Surface *text = NULL;
SDL_Texture *texture = NULL;
commit 98f61f583ace4a3409bc98fbfe288c3f7bfd45e3
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 19:10:14 2025 +0100
Do debug och release build in CI
diff --git a/Dockerfile.debug.ci b/Dockerfile.debug.ci
new file mode 100644
index 0000000..9f98171
--- /dev/null
+++ b/Dockerfile.debug.ci
@@ -0,0 +1,7 @@
+FROM fedora
+
+RUN dnf install -y gcc diff SDL3-devel SDL3_ttf-devel
+
+RUN dnf install -y libasan
+
+CMD ["./debug.sh"]
diff --git a/Dockerfile.ci b/Dockerfile.release.ci
similarity index 76%
rename from Dockerfile.ci
rename to Dockerfile.release.ci
index 3c2d5cf..a5f8aed 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.release.ci
@@ -2,4 +2,4 @@ FROM fedora
RUN dnf install -y gcc diff SDL3-devel SDL3_ttf-devel
-CMD ["./make.sh"]
+CMD ["./release.sh"]
diff --git a/README.md b/README.md
index 9506dad..6cd1c51 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,6 @@
* Generate highlight.c from high level description
* Generate language.c from list of available languages
* Generate input C files in out/c and add only that to include path
-* Add optimized build to CI to catch unused variables
## Platform layer
diff --git a/debug.sh b/debug.sh
new file mode 100755
index 0000000..65baeb6
--- /dev/null
+++ b/debug.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env sh
+
+CFLAGS="-fsanitize=address" ./make.sh "$@"
diff --git a/make.sh b/make.sh
index defda27..3dcaa2b 100755
--- a/make.sh
+++ b/make.sh
@@ -191,7 +191,7 @@ c_compile() {
out=$1
shift
echo "Compiling $in -> $out"
- gcc -fsanitize=address -Iout -Isrc -std=c89 -Wfatal-errors -Wall -Werror -pedantic $@ -o $out $in
+ gcc $CFLAGS -Iout -Isrc -std=c89 -Wfatal-errors -Wall -Werror -pedantic $@ -o $out $in
}
main "$@"
diff --git a/release.sh b/release.sh
new file mode 100755
index 0000000..5ee22c4
--- /dev/null
+++ b/release.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env sh
+
+CFLAGS="-O2" ./make.sh "$@"
diff --git a/watch.sh b/watch.sh
index 33cc915..21bdd0d 100755
--- a/watch.sh
+++ b/watch.sh
@@ -1,3 +1,3 @@
#!/usr/bin/env sh
-command-server bash -c "ctags -R src; ./make.sh $1 $2"
+command-server bash -c "ctags -R src; ./debug.sh $1 $2"
commit 31d299e5961cee63b2d1ca212eab94b893e97331
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 18:51:39 2025 +0100
Fix memory errors with the help of -fsanitize=address
diff --git a/examples/aoc202512/aoc202512.meta b/examples/aoc202512/aoc202512.meta
index 77a873f..410e41f 100644
--- a/examples/aoc202512/aoc202512.meta
+++ b/examples/aoc202512/aoc202512.meta
@@ -320,6 +320,7 @@ main = piece*:xs spec*:ys !. -> {C{
for (i=0; i<grids->count; i++) {
printf("can place %d? %d\n", i, can_place_piece(&arena, &grids->grids[i], pieces, 0, 0));
}
+ arena_free(&arena);
return 0;
}
diff --git a/make.sh b/make.sh
index 8822c6e..defda27 100755
--- a/make.sh
+++ b/make.sh
@@ -191,7 +191,7 @@ c_compile() {
out=$1
shift
echo "Compiling $in -> $out"
- gcc -Iout -Isrc -std=c89 -Wfatal-errors -Wall -Werror -pedantic $@ -o $out $in
+ gcc -fsanitize=address -Iout -Isrc -std=c89 -Wfatal-errors -Wall -Werror -pedantic $@ -o $out $in
}
main "$@"
diff --git a/src/arena.c b/src/arena.c
index 466b549..109cb6d 100644
--- a/src/arena.c
+++ b/src/arena.c
@@ -20,6 +20,10 @@ Arena arena_create(unsigned int size) {
return arena;
}
+void arena_free(Arena* arena) {
+ free(arena->memory);
+}
+
Arena arena_temp(Arena* arena) {
Arena temp;
temp.memory = arena->memory + arena->used;
diff --git a/src/buffer.c b/src/buffer.c
index 90e0a72..f775df8 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -26,6 +26,14 @@ char* buffer_at(Buffer* buffer, int position) {
}
}
+Highlight buffer_highlight_at(Buffer* buffer, int position) {
+ if (position >= 0 && position < buffer->parse_state->input_buffer->size) {
+ return buffer->parse_state->highlight[position];
+ } else {
+ return Highlight_None;
+ }
+}
+
int buffer_max_index(Buffer* buffer) {
return buffer->parse_state->input_buffer->size;
}
@@ -258,7 +266,7 @@ void buffer_render(Buffer* buffer, int line_height, int padding, int start_x, in
" ",
&x,
&y,
- buffer->parse_state->highlight[i],
+ buffer_highlight_at(buffer, i),
background,
line_height
);
@@ -269,7 +277,7 @@ void buffer_render(Buffer* buffer, int line_height, int padding, int start_x, in
str,
&x,
&y,
- buffer->parse_state->highlight[i],
+ buffer_highlight_at(buffer, i),
background,
line_height
);
diff --git a/src/languages/language_meta.c b/src/languages/language_meta.c
index 4b42e1e..9edf2fa 100644
--- a/src/languages/language_meta.c
+++ b/src/languages/language_meta.c
@@ -19,6 +19,7 @@ typedef struct language_meta_runtime {
Arena* arena;
StringBuilder* named_string_builder_prefix;
StringBuilder* named_string_builder_runtimeStruct;
+ StringBuilder* named_string_builder_runtimeInit;
StringBuilder* named_string_builder_symbols;
StringBuilder* named_string_builder_fileDeclarations;
StringBuilder* named_string_builder_actions;
@@ -39,6 +40,21 @@ language_meta_Runtime* language_meta_create_runtime(Arena* arena) {
runtime->current_string_builder = runtime->main_string_builder;
runtime->placeholders = meta_placeholders_create(arena);
runtime->arena = arena;
+ runtime->named_string_builder_prefix = NULL;
+ runtime->named_string_builder_runtimeStruct = NULL;
+ runtime->named_string_builder_runtimeInit = NULL;
+ runtime->named_string_builder_symbols = NULL;
+ runtime->named_string_builder_fileDeclarations = NULL;
+ runtime->named_string_builder_actions = NULL;
+ runtime->named_string_builder_placeholders = NULL;
+ runtime->named_string_builder_ruleDeclarations = NULL;
+ runtime->W_0 = 0;
+ runtime->named_string_builder_variables = NULL;
+ runtime->named_string_builder_orInit = NULL;
+ runtime->named_string_builder_actionDeclarations = NULL;
+ runtime->W_1 = 0;
+ runtime->named_string_builder_placeholderVars = NULL;
+ runtime->W_2 = 0;
return runtime;
}
@@ -395,67 +411,67 @@ static String language_meta_string_350 = {4, "->W_"};
static String language_meta_string_351 = {8, " = meta_"};
static String language_meta_string_352 = {1, "("};
static String language_meta_string_353 = {4, "->W_"};
-static String language_meta_string_354 = {3, " ? "};
-static String language_meta_string_355 = {4, "->W_"};
-static String language_meta_string_356 = {6, " : 0, "};
-static String language_meta_string_357 = {3, ");\n"};
-static String language_meta_string_358 = {1, ">"};
-static String language_meta_string_359 = {1, "<"};
-static String language_meta_string_360 = {22, "string_builder_append("};
-static String language_meta_string_361 = {26, "->current_string_builder, "};
-static String language_meta_string_362 = {25, "->arena, NULL, 1, NULL);\n"};
-static String language_meta_string_363 = {22, "string_builder_append("};
-static String language_meta_string_364 = {26, "->current_string_builder, "};
-static String language_meta_string_365 = {26, "->arena, NULL, -1, NULL);\n"};
-static String language_meta_string_366 = {1, "{"};
-static String language_meta_string_367 = {1, " "};
-static String language_meta_string_368 = {1, "}"};
-static String language_meta_string_369 = {22, "string_builder_append("};
-static String language_meta_string_370 = {26, "->current_string_builder, "};
-static String language_meta_string_371 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_372 = {27, "->arena, \"{\\n\"), 0, NULL);\n"};
-static String language_meta_string_373 = {22, "string_builder_append("};
-static String language_meta_string_374 = {26, "->current_string_builder, "};
-static String language_meta_string_375 = {25, "->arena, NULL, 1, NULL);\n"};
-static String language_meta_string_376 = {22, "string_builder_append("};
-static String language_meta_string_377 = {26, "->current_string_builder, "};
-static String language_meta_string_378 = {26, "->arena, NULL, -1, NULL);\n"};
-static String language_meta_string_379 = {22, "string_builder_append("};
-static String language_meta_string_380 = {26, "->current_string_builder, "};
-static String language_meta_string_381 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_382 = {27, "->arena, \"}\\n\"), 0, NULL);\n"};
-static String language_meta_string_383 = {2, "$("};
-static String language_meta_string_384 = {1, ")"};
-static String language_meta_string_385 = {1, "$"};
-static String language_meta_string_386 = {17, "meta_action_run(&"};
-static String language_meta_string_387 = {11, ", runtime, "};
-static String language_meta_string_388 = {26, "->current_string_builder, "};
-static String language_meta_string_389 = {10, "->arena);\n"};
-static String language_meta_string_390 = {1, "\n"};
-static String language_meta_string_391 = {1, " "};
-static String language_meta_string_392 = {22, "string_builder_append("};
-static String language_meta_string_393 = {26, "->current_string_builder, "};
-static String language_meta_string_394 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_395 = {26, "->arena, \"\\n\"), 0, NULL);\n"};
-static String language_meta_string_396 = {1, "\""};
-static String language_meta_string_397 = {22, "string_builder_append("};
-static String language_meta_string_398 = {26, "->current_string_builder, "};
-static String language_meta_string_399 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_400 = {26, "->arena, \"\\\"\"), 0, NULL);\n"};
-static String language_meta_string_401 = {1, "\\"};
-static String language_meta_string_402 = {22, "string_builder_append("};
-static String language_meta_string_403 = {26, "->current_string_builder, "};
-static String language_meta_string_404 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_405 = {26, "->arena, \"\\\\\"), 0, NULL);\n"};
-static String language_meta_string_406 = {1, "{"};
-static String language_meta_string_407 = {1, "}"};
-static String language_meta_string_408 = {22, "string_builder_append("};
-static String language_meta_string_409 = {26, "->current_string_builder, "};
-static String language_meta_string_410 = {35, "->arena, string_alloc_from_cstring("};
-static String language_meta_string_411 = {10, "->arena, \""};
-static String language_meta_string_412 = {14, "\"), 0, NULL);\n"};
-static String language_meta_string_413 = {36, "StringBuilder* named_string_builder_"};
-static String language_meta_string_414 = {2, ";\n"};
+static String language_meta_string_354 = {2, ", "};
+static String language_meta_string_355 = {3, ");\n"};
+static String language_meta_string_356 = {1, ">"};
+static String language_meta_string_357 = {1, "<"};
+static String language_meta_string_358 = {22, "string_builder_append("};
+static String language_meta_string_359 = {26, "->current_string_builder, "};
+static String language_meta_string_360 = {25, "->arena, NULL, 1, NULL);\n"};
+static String language_meta_string_361 = {22, "string_builder_append("};
+static String language_meta_string_362 = {26, "->current_string_builder, "};
+static String language_meta_string_363 = {26, "->arena, NULL, -1, NULL);\n"};
+static String language_meta_string_364 = {1, "{"};
+static String language_meta_string_365 = {1, " "};
+static String language_meta_string_366 = {1, "}"};
+static String language_meta_string_367 = {22, "string_builder_append("};
+static String language_meta_string_368 = {26, "->current_string_builder, "};
+static String language_meta_string_369 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_370 = {27, "->arena, \"{\\n\"), 0, NULL);\n"};
+static String language_meta_string_371 = {22, "string_builder_append("};
+static String language_meta_string_372 = {26, "->current_string_builder, "};
+static String language_meta_string_373 = {25, "->arena, NULL, 1, NULL);\n"};
+static String language_meta_string_374 = {22, "string_builder_append("};
+static String language_meta_string_375 = {26, "->current_string_builder, "};
+static String language_meta_string_376 = {26, "->arena, NULL, -1, NULL);\n"};
+static String language_meta_string_377 = {22, "string_builder_append("};
+static String language_meta_string_378 = {26, "->current_string_builder, "};
+static String language_meta_string_379 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_380 = {27, "->arena, \"}\\n\"), 0, NULL);\n"};
+static String language_meta_string_381 = {2, "$("};
+static String language_meta_string_382 = {1, ")"};
+static String language_meta_string_383 = {1, "$"};
+static String language_meta_string_384 = {17, "meta_action_run(&"};
+static String language_meta_string_385 = {11, ", runtime, "};
+static String language_meta_string_386 = {26, "->current_string_builder, "};
+static String language_meta_string_387 = {10, "->arena);\n"};
+static String language_meta_string_388 = {1, "\n"};
+static String language_meta_string_389 = {1, " "};
+static String language_meta_string_390 = {22, "string_builder_append("};
+static String language_meta_string_391 = {26, "->current_string_builder, "};
+static String language_meta_string_392 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_393 = {26, "->arena, \"\\n\"), 0, NULL);\n"};
+static String language_meta_string_394 = {1, "\""};
+static String language_meta_string_395 = {22, "string_builder_append("};
+static String language_meta_string_396 = {26, "->current_string_builder, "};
+static String language_meta_string_397 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_398 = {26, "->arena, \"\\\"\"), 0, NULL);\n"};
+static String language_meta_string_399 = {1, "\\"};
+static String language_meta_string_400 = {22, "string_builder_append("};
+static String language_meta_string_401 = {26, "->current_string_builder, "};
+static String language_meta_string_402 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_403 = {26, "->arena, \"\\\\\"), 0, NULL);\n"};
+static String language_meta_string_404 = {1, "{"};
+static String language_meta_string_405 = {1, "}"};
+static String language_meta_string_406 = {22, "string_builder_append("};
+static String language_meta_string_407 = {26, "->current_string_builder, "};
+static String language_meta_string_408 = {35, "->arena, string_alloc_from_cstring("};
+static String language_meta_string_409 = {10, "->arena, \""};
+static String language_meta_string_410 = {14, "\"), 0, NULL);\n"};
+static String language_meta_string_411 = {36, "StringBuilder* named_string_builder_"};
+static String language_meta_string_412 = {2, ";\n"};
+static String language_meta_string_413 = {30, "runtime->named_string_builder_"};
+static String language_meta_string_414 = {9, " = NULL;\n"};
static String language_meta_string_415 = {1, "{"};
static String language_meta_string_416 = {1, "*"};
static String language_meta_string_417 = {1, "}"};
@@ -468,74 +484,70 @@ static String language_meta_string_423 = {26, "->current_string_builder, "};
static String language_meta_string_424 = {9, "->arena, "};
static String language_meta_string_425 = {12, ", 0, NULL);\n"};
static String language_meta_string_426 = {2, "}\n"};
-static String language_meta_string_427 = {1, "("};
-static String language_meta_string_428 = {4, "->W_"};
-static String language_meta_string_429 = {3, " ? "};
-static String language_meta_string_430 = {4, "->W_"};
-static String language_meta_string_431 = {5, " : 0)"};
-static String language_meta_string_432 = {1, "("};
-static String language_meta_string_433 = {1, "-"};
+static String language_meta_string_427 = {4, "->W_"};
+static String language_meta_string_428 = {1, "("};
+static String language_meta_string_429 = {1, "-"};
+static String language_meta_string_430 = {1, ")"};
+static String language_meta_string_431 = {2, "(("};
+static String language_meta_string_432 = {4, "->W_"};
+static String language_meta_string_433 = {2, ")-"};
static String language_meta_string_434 = {1, ")"};
-static String language_meta_string_435 = {2, "(("};
-static String language_meta_string_436 = {4, "->W_"};
-static String language_meta_string_437 = {3, " ? "};
-static String language_meta_string_438 = {4, "->W_"};
-static String language_meta_string_439 = {6, " : 0)-"};
+static String language_meta_string_435 = {7, "number("};
+static String language_meta_string_436 = {1, ")"};
+static String language_meta_string_437 = {2, "(0"};
+static String language_meta_string_438 = {1, ")"};
+static String language_meta_string_439 = {25, "+(meta_action_first_byte("};
static String language_meta_string_440 = {1, ")"};
-static String language_meta_string_441 = {7, "number("};
-static String language_meta_string_442 = {1, ")"};
-static String language_meta_string_443 = {2, "(0"};
-static String language_meta_string_444 = {1, ")"};
-static String language_meta_string_445 = {25, "+(meta_action_first_byte("};
-static String language_meta_string_446 = {1, ")"};
-static String language_meta_string_447 = {1, ")"};
-static String language_meta_string_448 = {2, "<<"};
-static String language_meta_string_449 = {1, "\""};
-static String language_meta_string_450 = {1, "\""};
-static String language_meta_string_451 = {14, "static String "};
-static String language_meta_string_452 = {7, "string_"};
-static String language_meta_string_453 = {4, " = {"};
-static String language_meta_string_454 = {3, ", \""};
-static String language_meta_string_455 = {4, "\"};\n"};
-static String language_meta_string_456 = {2, "(&"};
-static String language_meta_string_457 = {7, "string_"};
+static String language_meta_string_441 = {1, ")"};
+static String language_meta_string_442 = {2, "<<"};
+static String language_meta_string_443 = {1, "\""};
+static String language_meta_string_444 = {1, "\""};
+static String language_meta_string_445 = {14, "static String "};
+static String language_meta_string_446 = {7, "string_"};
+static String language_meta_string_447 = {4, " = {"};
+static String language_meta_string_448 = {3, ", \""};
+static String language_meta_string_449 = {4, "\"};\n"};
+static String language_meta_string_450 = {2, "(&"};
+static String language_meta_string_451 = {7, "string_"};
+static String language_meta_string_452 = {1, ")"};
+static String language_meta_string_453 = {1, "("};
+static String language_meta_string_454 = {1, ")"};
+static String language_meta_string_455 = {10, "(((struct "};
+static String language_meta_string_456 = {6, "Action"};
+static String language_meta_string_457 = {18, "Vars*)variables)->"};
static String language_meta_string_458 = {1, ")"};
-static String language_meta_string_459 = {1, "("};
-static String language_meta_string_460 = {1, ")"};
-static String language_meta_string_461 = {10, "(((struct "};
-static String language_meta_string_462 = {6, "Action"};
-static String language_meta_string_463 = {18, "Vars*)variables)->"};
-static String language_meta_string_464 = {1, ")"};
-static String language_meta_string_465 = {4, ".len"};
-static String language_meta_string_466 = {15, "meta_action_len"};
-static String language_meta_string_467 = {6, ".count"};
-static String language_meta_string_468 = {17, "meta_action_count"};
-static String language_meta_string_469 = {2, "W["};
-static String language_meta_string_470 = {1, "]"};
-static String language_meta_string_471 = {15, "unsigned int W_"};
-static String language_meta_string_472 = {2, ";\n"};
-static String language_meta_string_473 = {1, "\""};
+static String language_meta_string_459 = {4, ".len"};
+static String language_meta_string_460 = {15, "meta_action_len"};
+static String language_meta_string_461 = {6, ".count"};
+static String language_meta_string_462 = {17, "meta_action_count"};
+static String language_meta_string_463 = {2, "W["};
+static String language_meta_string_464 = {1, "]"};
+static String language_meta_string_465 = {15, "unsigned int W_"};
+static String language_meta_string_466 = {2, ";\n"};
+static String language_meta_string_467 = {11, "runtime->W_"};
+static String language_meta_string_468 = {6, " = 0;\n"};
+static String language_meta_string_469 = {1, "\""};
+static String language_meta_string_470 = {1, "\'"};
+static String language_meta_string_471 = {1, "\'"};
+static String language_meta_string_472 = {1, "'"};
+static String language_meta_string_473 = {1, "'"};
static String language_meta_string_474 = {1, "\'"};
static String language_meta_string_475 = {1, "\'"};
-static String language_meta_string_476 = {1, "'"};
-static String language_meta_string_477 = {1, "'"};
-static String language_meta_string_478 = {1, "\'"};
-static String language_meta_string_479 = {1, "\'"};
-static String language_meta_string_480 = {14, "static String "};
-static String language_meta_string_481 = {7, "string_"};
-static String language_meta_string_482 = {4, " = {"};
-static String language_meta_string_483 = {3, ", \""};
-static String language_meta_string_484 = {4, "\"};\n"};
-static String language_meta_string_485 = {2, "(&"};
-static String language_meta_string_486 = {7, "string_"};
-static String language_meta_string_487 = {1, ")"};
-static String language_meta_string_488 = {1, "\""};
-static String language_meta_string_489 = {2, "\\\""};
-static String language_meta_string_490 = {1, "\'"};
-static String language_meta_string_491 = {1, "\\"};
-static String language_meta_string_492 = {5, "rule_"};
-static String language_meta_string_493 = {1, " "};
-static String language_meta_string_494 = {1, "\n"};
+static String language_meta_string_476 = {14, "static String "};
+static String language_meta_string_477 = {7, "string_"};
+static String language_meta_string_478 = {4, " = {"};
+static String language_meta_string_479 = {3, ", \""};
+static String language_meta_string_480 = {4, "\"};\n"};
+static String language_meta_string_481 = {2, "(&"};
+static String language_meta_string_482 = {7, "string_"};
+static String language_meta_string_483 = {1, ")"};
+static String language_meta_string_484 = {1, "\""};
+static String language_meta_string_485 = {2, "\\\""};
+static String language_meta_string_486 = {1, "\'"};
+static String language_meta_string_487 = {1, "\\"};
+static String language_meta_string_488 = {5, "rule_"};
+static String language_meta_string_489 = {1, " "};
+static String language_meta_string_490 = {1, "\n"};
MetaAction language_meta_rule_main(MetaParseState* parse_state);
struct language_meta_Action1Vars {
MetaAction xs;
@@ -871,6 +883,9 @@ void language_meta_action_3(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_32), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_33), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_34), 0, NULL);
+ string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
+ ((language_meta_Runtime*)runtime)->named_string_builder_runtimeInit = string_builder;
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_runtimeInit);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_35), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, -1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_36), 0, NULL);
@@ -1009,7 +1024,7 @@ void language_meta_action_11(void* runtime, void* variables) {
void language_meta_action_13(void* runtime, void* variables) {
StringBuilder* string_builder;
StringBuilder* last_string_builder;
- ((language_meta_Runtime*)runtime)->W_0 = meta_inc(((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0, 1);
+ ((language_meta_Runtime*)runtime)->W_0 = meta_inc(((language_meta_Runtime*)runtime)->W_0, 1);
string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
((language_meta_Runtime*)runtime)->named_string_builder_variables = string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_104), 0, NULL);
@@ -1025,7 +1040,7 @@ void language_meta_action_13(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_106), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_107), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_108), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_variables);
@@ -1120,9 +1135,9 @@ void language_meta_action_19(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_136), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_137), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_138), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_139), 0, NULL);
meta_action_run(&(((struct language_meta_Action19Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_140), 0, NULL);
@@ -1700,7 +1715,7 @@ void language_meta_action_41(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_236), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_237), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_238), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
@@ -1715,7 +1730,7 @@ void language_meta_action_41(void* runtime, void* variables) {
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_ruleDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_241), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_242), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
@@ -1723,11 +1738,11 @@ void language_meta_action_41(void* runtime, void* variables) {
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
if (((language_meta_Runtime*)runtime)->named_string_builder_variables->pre_first->next) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_243), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_244), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_245), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_246), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
@@ -1735,9 +1750,9 @@ void language_meta_action_41(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_248), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_249), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_250), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_251), 0, NULL);
}
@@ -1896,19 +1911,19 @@ void language_meta_action_52(void* runtime, void* variables) {
void language_meta_action_53(void* runtime, void* variables) {
StringBuilder* last_string_builder;
StringBuilder* string_builder;
- ((language_meta_Runtime*)runtime)->W_1 = meta_inc(((language_meta_Runtime*)runtime)->W_1 ? ((language_meta_Runtime*)runtime)->W_1 : 0, 1);
+ ((language_meta_Runtime*)runtime)->W_1 = meta_inc(((language_meta_Runtime*)runtime)->W_1, 1);
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_fileDeclarations;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_325), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_1 ? ((language_meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_1), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_326), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_placeholders;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_327), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_1 ? ((language_meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_1), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_328), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 1, NULL);
string_builder = string_builder_create(((language_meta_Runtime*)runtime)->arena);
@@ -1934,7 +1949,7 @@ void language_meta_action_53(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_336), 0, NULL);
meta_action_run(&(((struct language_meta_Action53Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_337), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_1 ? ((language_meta_Runtime*)runtime)->W_1 : 0)), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_1), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_338), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_339), 0, NULL);
meta_action_run(&(((struct language_meta_Action53Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
@@ -1964,54 +1979,50 @@ void language_meta_action_55(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_353), 0, NULL);
meta_action_run(&(((struct language_meta_Action55Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_354), 0, NULL);
- meta_action_run(&(((struct language_meta_Action55Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_355), 0, NULL);
- meta_action_run(&(((struct language_meta_Action55Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_356), 0, NULL);
meta_action_run(&(((struct language_meta_Action55Vars*)variables)->z), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_357), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_355), 0, NULL);
}
void language_meta_action_56(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_360), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_358), 0, NULL);
meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_361), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_359), 0, NULL);
meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_362), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_360), 0, NULL);
meta_action_run(&(((struct language_meta_Action56Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_363), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_361), 0, NULL);
meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_364), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_362), 0, NULL);
meta_action_run(&(((struct language_meta_Action56Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_365), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_363), 0, NULL);
}
void language_meta_action_57(void* runtime, void* variables) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_367), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_368), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_369), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_370), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_371), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_372), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_373), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_373), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_374), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_375), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_376), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_376), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_377), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_378), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_379), 0, NULL);
meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_380), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_381), 0, NULL);
- meta_action_run(&(((struct language_meta_Action57Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_382), 0, NULL);
}
void language_meta_action_58(void* runtime, void* variables) {
@@ -2019,55 +2030,55 @@ void language_meta_action_58(void* runtime, void* variables) {
}
void language_meta_action_59(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_386), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_384), 0, NULL);
meta_action_run(&(((struct language_meta_Action59Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_387), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_385), 0, NULL);
meta_action_run(&(((struct language_meta_Action59Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_388), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_386), 0, NULL);
meta_action_run(&(((struct language_meta_Action59Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_389), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_387), 0, NULL);
}
void language_meta_action_60(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_392), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_390), 0, NULL);
meta_action_run(&(((struct language_meta_Action60Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_393), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_391), 0, NULL);
meta_action_run(&(((struct language_meta_Action60Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_394), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_392), 0, NULL);
meta_action_run(&(((struct language_meta_Action60Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_395), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_393), 0, NULL);
}
void language_meta_action_61(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_397), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_395), 0, NULL);
meta_action_run(&(((struct language_meta_Action61Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_398), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_396), 0, NULL);
meta_action_run(&(((struct language_meta_Action61Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_399), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_397), 0, NULL);
meta_action_run(&(((struct language_meta_Action61Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_400), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_398), 0, NULL);
}
void language_meta_action_62(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_402), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_400), 0, NULL);
meta_action_run(&(((struct language_meta_Action62Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_403), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_401), 0, NULL);
meta_action_run(&(((struct language_meta_Action62Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_404), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_402), 0, NULL);
meta_action_run(&(((struct language_meta_Action62Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_405), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_403), 0, NULL);
}
void language_meta_action_63(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_408), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_406), 0, NULL);
meta_action_run(&(((struct language_meta_Action63Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_409), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_407), 0, NULL);
meta_action_run(&(((struct language_meta_Action63Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_410), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_408), 0, NULL);
meta_action_run(&(((struct language_meta_Action63Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_411), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_409), 0, NULL);
meta_action_run(&(((struct language_meta_Action63Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_412), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_410), 0, NULL);
}
void language_meta_action_64(void* runtime, void* variables) {
@@ -2080,6 +2091,17 @@ void language_meta_action_64(void* runtime, void* variables) {
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
action = (((struct language_meta_Action64Vars*)variables)->x);
string_slice(action.input_buffer, action.start, action.end, &slice);
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, &slice)) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_411), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action64Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_412), 0, NULL);
+ }
+ ((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+ last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
+ string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_runtimeInit;
+ ((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
+ action = (((struct language_meta_Action64Vars*)variables)->x);
+ string_slice(action.input_buffer, action.start, action.end, &slice);
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, &slice)) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_413), 0, NULL);
meta_action_run(&(((struct language_meta_Action64Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
@@ -2119,29 +2141,19 @@ void language_meta_action_68(void* runtime, void* variables) {
}
void language_meta_action_69(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_427), 0, NULL);
- meta_action_run(&(((struct language_meta_Action69Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_428), 0, NULL);
- meta_action_run(&(((struct language_meta_Action69Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_429), 0, NULL);
meta_action_run(&(((struct language_meta_Action69Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_430), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_427), 0, NULL);
meta_action_run(&(((struct language_meta_Action69Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_431), 0, NULL);
}
void language_meta_action_70(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_435), 0, NULL);
- meta_action_run(&(((struct language_meta_Action70Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_436), 0, NULL);
- meta_action_run(&(((struct language_meta_Action70Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_437), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_431), 0, NULL);
meta_action_run(&(((struct language_meta_Action70Vars*)variables)->runtime), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_438), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_432), 0, NULL);
meta_action_run(&(((struct language_meta_Action70Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_439), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_433), 0, NULL);
meta_action_run(&(((struct language_meta_Action70Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_440), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_434), 0, NULL);
}
void language_meta_action_71(void* runtime, void* variables) {
@@ -2149,17 +2161,17 @@ void language_meta_action_71(void* runtime, void* variables) {
}
void language_meta_action_72(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_443), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_437), 0, NULL);
meta_action_run(&(((struct language_meta_Action72Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_444), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_438), 0, NULL);
}
void language_meta_action_73(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_445), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_439), 0, NULL);
meta_action_run(&(((struct language_meta_Action73Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_446), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_440), 0, NULL);
meta_action_run(&(((struct language_meta_Action73Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_447), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_441), 0, NULL);
}
void language_meta_action_75(void* runtime, void* variables) {
@@ -2168,50 +2180,50 @@ void language_meta_action_75(void* runtime, void* variables) {
void language_meta_action_76(void* runtime, void* variables) {
StringBuilder* last_string_builder;
StringBuilder* string_builder;
- ((language_meta_Runtime*)runtime)->W_2 = meta_inc(((language_meta_Runtime*)runtime)->W_2 ? ((language_meta_Runtime*)runtime)->W_2 : 0, 1);
+ ((language_meta_Runtime*)runtime)->W_2 = meta_inc(((language_meta_Runtime*)runtime)->W_2, 1);
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_symbols;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_451), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_445), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_452), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_2 ? ((language_meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_453), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_446), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_2), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_447), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, meta_action_count((((struct language_meta_Action76Vars*)variables)->xs))), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_454), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_448), 0, NULL);
meta_action_run(&(((struct language_meta_Action76Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_455), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_449), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_456), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_450), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_457), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_2 ? ((language_meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_458), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_451), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_2), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_452), 0, NULL);
}
void language_meta_action_77(void* runtime, void* variables) {
meta_action_run(&(((struct language_meta_Action77Vars*)variables)->y), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_459), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_453), 0, NULL);
meta_action_run(&(((struct language_meta_Action77Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_460), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_454), 0, NULL);
}
void language_meta_action_78(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_461), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_455), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_462), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_0 ? ((language_meta_Runtime*)runtime)->W_0 : 0)), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_463), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_456), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_0), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_457), 0, NULL);
meta_action_run(&(((struct language_meta_Action78Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_464), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_458), 0, NULL);
}
void language_meta_action_79(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_466), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_460), 0, NULL);
}
void language_meta_action_80(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_468), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_462), 0, NULL);
}
void language_meta_action_81(void* runtime, void* variables) {
@@ -2225,51 +2237,62 @@ void language_meta_action_81(void* runtime, void* variables) {
action = (((struct language_meta_Action81Vars*)variables)->x);
string_slice(action.input_buffer, action.start, action.end, &slice);
if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, &slice)) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_471), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_465), 0, NULL);
+ meta_action_run(&(((struct language_meta_Action81Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_466), 0, NULL);
+ }
+ ((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
+ last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
+ string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_runtimeInit;
+ ((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
+ action = (((struct language_meta_Action81Vars*)variables)->x);
+ string_slice(action.input_buffer, action.start, action.end, &slice);
+ if (!string_builder_contains(((language_meta_Runtime*)runtime)->current_string_builder, &slice)) {
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_467), 0, NULL);
meta_action_run(&(((struct language_meta_Action81Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_472), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_468), 0, NULL);
}
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
meta_action_run(&(((struct language_meta_Action81Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
}
void language_meta_action_84(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_476), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_472), 0, NULL);
meta_action_run(&(((struct language_meta_Action84Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_477), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_473), 0, NULL);
}
void language_meta_action_85(void* runtime, void* variables) {
StringBuilder* last_string_builder;
StringBuilder* string_builder;
- ((language_meta_Runtime*)runtime)->W_2 = meta_inc(((language_meta_Runtime*)runtime)->W_2 ? ((language_meta_Runtime*)runtime)->W_2 : 0, 1);
+ ((language_meta_Runtime*)runtime)->W_2 = meta_inc(((language_meta_Runtime*)runtime)->W_2, 1);
last_string_builder = ((language_meta_Runtime*)runtime)->current_string_builder;
string_builder = ((language_meta_Runtime*)runtime)->named_string_builder_symbols;
((language_meta_Runtime*)runtime)->current_string_builder = string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_480), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_476), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_481), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_2 ? ((language_meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_482), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_477), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_2), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_478), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, meta_action_count((((struct language_meta_Action85Vars*)variables)->xs))), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_483), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_479), 0, NULL);
meta_action_run(&(((struct language_meta_Action85Vars*)variables)->xs), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_484), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_480), 0, NULL);
((language_meta_Runtime*)runtime)->current_string_builder = last_string_builder;
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_485), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_481), 0, NULL);
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_486), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, (((language_meta_Runtime*)runtime)->W_2 ? ((language_meta_Runtime*)runtime)->W_2 : 0)), 0, NULL);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_487), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_482), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, string_from_integer(((language_meta_Runtime*)runtime)->arena, ((language_meta_Runtime*)runtime)->W_2), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_483), 0, NULL);
}
void language_meta_action_87(void* runtime, void* variables) {
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_489), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_485), 0, NULL);
}
void language_meta_action_90(void* runtime, void* variables) {
string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, NULL, 0, ((language_meta_Runtime*)runtime)->named_string_builder_prefix);
- string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_492), 0, NULL);
+ string_builder_append(((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena, (&language_meta_string_488), 0, NULL);
meta_action_run(&(((struct language_meta_Action90Vars*)variables)->x), runtime, ((language_meta_Runtime*)runtime)->current_string_builder, ((language_meta_Runtime*)runtime)->arena);
}
@@ -3774,7 +3797,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
vars56 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action56Vars));
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_358);
+ data = (&language_meta_string_356);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3799,7 +3822,7 @@ MetaAction language_meta_rule_actionexpr(MetaParseState* parse_state) {
if (_.valid) {
_ = language_meta_rule_space(parse_state);
if (_.valid) {
- data = (&language_meta_string_359);
+ data = (&language_meta_string_357);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3844,7 +3867,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars57 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action57Vars));
- data = (&language_meta_string_366);
+ data = (&language_meta_string_364);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3856,7 +3879,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
star_start_pos = parse_state->pos;
while (1) {
star_pos = parse_state->pos;
- data = (&language_meta_string_367);
+ data = (&language_meta_string_365);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3885,7 +3908,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action57Vars*)vars57)->xs = _;
if (_.valid) {
- data = (&language_meta_string_368);
+ data = (&language_meta_string_366);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3907,7 +3930,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars58 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action58Vars));
- data = (&language_meta_string_383);
+ data = (&language_meta_string_381);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3930,7 +3953,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action58Vars*)vars58)->xs = _;
if (_.valid) {
- data = (&language_meta_string_384);
+ data = (&language_meta_string_382);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3947,7 +3970,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars59 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action59Vars));
- data = (&language_meta_string_385);
+ data = (&language_meta_string_383);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3970,7 +3993,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars60 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action60Vars));
- data = (&language_meta_string_390);
+ data = (&language_meta_string_388);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -3982,7 +4005,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
star_start_pos = parse_state->pos;
while (1) {
star_pos = parse_state->pos;
- data = (&language_meta_string_391);
+ data = (&language_meta_string_389);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4008,7 +4031,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars61 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action61Vars));
- data = (&language_meta_string_396);
+ data = (&language_meta_string_394);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4027,7 +4050,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars62 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action62Vars));
- data = (&language_meta_string_401);
+ data = (&language_meta_string_399);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4047,7 +4070,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
action_start_pos = parse_state->pos;
vars63 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action63Vars));
nlookahead_pos = parse_state->pos;
- data = (&language_meta_string_406);
+ data = (&language_meta_string_404);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4063,7 +4086,7 @@ MetaAction language_meta_rule_cFragment(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, nlookahead_pos);
if (_.valid) {
nlookahead_pos = parse_state->pos;
- data = (&language_meta_string_407);
+ data = (&language_meta_string_405);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4269,7 +4292,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars70 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action70Vars));
- data = (&language_meta_string_432);
+ data = (&language_meta_string_428);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4281,7 +4304,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
_ = language_meta_rule_wvar(parse_state);
((struct language_meta_Action70Vars*)vars70)->x = _;
if (_.valid) {
- data = (&language_meta_string_433);
+ data = (&language_meta_string_429);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4293,7 +4316,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
_ = language_meta_rule_dotname(parse_state);
((struct language_meta_Action70Vars*)vars70)->y = _;
if (_.valid) {
- data = (&language_meta_string_434);
+ data = (&language_meta_string_430);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4325,7 +4348,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars72 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action72Vars));
- data = (&language_meta_string_441);
+ data = (&language_meta_string_435);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4348,7 +4371,7 @@ MetaAction language_meta_rule_expr(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action72Vars*)vars72)->xs = _;
if (_.valid) {
- data = (&language_meta_string_442);
+ data = (&language_meta_string_436);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4402,7 +4425,7 @@ MetaAction language_meta_rule_maybeShift(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_448);
+ data = (&language_meta_string_442);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4439,7 +4462,7 @@ MetaAction language_meta_rule_string(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars76 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action76Vars));
- data = (&language_meta_string_449);
+ data = (&language_meta_string_443);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4462,7 +4485,7 @@ MetaAction language_meta_rule_string(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action76Vars*)vars76)->xs = _;
if (_.valid) {
- data = (&language_meta_string_450);
+ data = (&language_meta_string_444);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4538,7 +4561,7 @@ MetaAction language_meta_rule_nextname(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_465);
+ data = (&language_meta_string_459);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4562,7 +4585,7 @@ MetaAction language_meta_rule_nextname(MetaParseState* parse_state) {
}
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_467);
+ data = (&language_meta_string_461);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4599,7 +4622,7 @@ MetaAction language_meta_rule_wvar(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars81 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action81Vars));
- data = (&language_meta_string_469);
+ data = (&language_meta_string_463);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4616,7 +4639,7 @@ MetaAction language_meta_rule_wvar(MetaParseState* parse_state) {
}
((struct language_meta_Action81Vars*)vars81)->x = _;
if (_.valid) {
- data = (&language_meta_string_470);
+ data = (&language_meta_string_464);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4652,7 +4675,7 @@ MetaAction language_meta_rule_stringInner(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
nlookahead_pos = parse_state->pos;
- data = (&language_meta_string_473);
+ data = (&language_meta_string_469);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4693,7 +4716,7 @@ MetaAction language_meta_rule_singleChar(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars84 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action84Vars));
- data = (&language_meta_string_474);
+ data = (&language_meta_string_470);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4705,7 +4728,7 @@ MetaAction language_meta_rule_singleChar(MetaParseState* parse_state) {
_ = language_meta_rule_charStringInner(parse_state);
((struct language_meta_Action84Vars*)vars84)->x = _;
if (_.valid) {
- data = (&language_meta_string_475);
+ data = (&language_meta_string_471);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4737,7 +4760,7 @@ MetaAction language_meta_rule_charString(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
vars85 = arena_alloc(parse_state->arena, sizeof(struct language_meta_Action85Vars));
- data = (&language_meta_string_478);
+ data = (&language_meta_string_474);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4760,7 +4783,7 @@ MetaAction language_meta_rule_charString(MetaParseState* parse_state) {
_ = meta_action_create(NULL, (void*)star_variables, parse_state->input_buffer, star_start_pos, parse_state->pos);
((struct language_meta_Action85Vars*)vars85)->xs = _;
if (_.valid) {
- data = (&language_meta_string_479);
+ data = (&language_meta_string_475);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4796,7 +4819,7 @@ MetaAction language_meta_rule_charStringInner(MetaParseState* parse_state) {
}
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_488);
+ data = (&language_meta_string_484);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4811,7 +4834,7 @@ MetaAction language_meta_rule_charStringInner(MetaParseState* parse_state) {
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
nlookahead_pos = parse_state->pos;
- data = (&language_meta_string_490);
+ data = (&language_meta_string_486);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -4850,7 +4873,7 @@ MetaAction language_meta_rule_stringEscape(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_491);
+ data = (&language_meta_string_487);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -5118,7 +5141,7 @@ MetaAction language_meta_rule_spacechar(MetaParseState* parse_state) {
or_backtrack_pos = parse_state->pos;
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_493);
+ data = (&language_meta_string_489);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
@@ -5132,7 +5155,7 @@ MetaAction language_meta_rule_spacechar(MetaParseState* parse_state) {
}
meta_parse_state_backtrack(parse_state, or_backtrack_pos);
action_start_pos = parse_state->pos;
- data = (&language_meta_string_494);
+ data = (&language_meta_string_490);
string_slice(parse_state->input_buffer, parse_state->pos, parse_state->pos+data->size, &slice);
if (parse_state->input_buffer->size-parse_state->pos >= data->size && string_compare(data, &slice)) {
parse_state->pos += data->size;
diff --git a/src/languages/meta.meta b/src/languages/meta.meta
index 87a1c40..eb774e6 100644
--- a/src/languages/meta.meta
+++ b/src/languages/meta.meta
@@ -40,6 +40,8 @@ file = rule*:xs space !. -> {
"runtime->current_string_builder = runtime->main_string_builder;\n"
"runtime->placeholders = meta_placeholders_create(arena);\n"
"runtime->arena = arena;\n"
+ $runtimeInit
+ <runtimeInit
"return runtime;\n"
< "}\n"
"\n"
@@ -448,7 +450,7 @@ actionexpr =
"string_builder_append(" runtime "->current_string_builder, " runtime "->arena, " x ", 0, NULL);\n"
}
| space '#' name:x '(' wvar:y ' ' actionPrimitiveExpression:z ')' genRuntime:runtime -> {
- runtime "->W_" y " = meta_" x "(" runtime "->W_" y " ? " runtime "->W_" y " : 0, " z ");\n"
+ runtime "->W_" y " = meta_" x "(" runtime "->W_" y ", " z ");\n"
}
| space '>' actionexpr*:xs space '<' genRuntime:runtime -> {
"string_builder_append(" runtime "->current_string_builder, " runtime "->arena, NULL, 1, NULL);\n"
@@ -491,6 +493,11 @@ stringBuilderName = name:x -> {
"StringBuilder* named_string_builder_" x ";\n"
}
}
+ >runtimeInit {
+ unseen(x) -> {
+ "runtime->named_string_builder_" x " = NULL;\n"
+ }
+ }
x
};
@@ -514,10 +521,10 @@ placeholder
expr =
| wvar:x genRuntime:runtime -> {
- "(" runtime "->W_" x " ? " runtime "->W_" x " : 0)"
+ runtime "->W_" x
}
| '(' wvar:x '-' dotname:y ')' genRuntime:runtime -> {
- "((" runtime "->W_" x " ? " runtime "->W_" x " : 0)-" y ")"
+ "((" runtime "->W_" x ")-" y ")"
}
| dotname:y -> {
y
@@ -560,6 +567,11 @@ wvar = 'W[' .:x ']' -> {
"unsigned int W_" x ";\n"
}
}
+ >runtimeInit {
+ unseen(x) -> {
+ "runtime->W_" x " = 0;\n"
+ }
+ }
x
};
diff --git a/src/workbench.c b/src/workbench.c
index 36fe618..0729395 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -105,16 +105,21 @@ WorkbenchAppInit workbench_cli_command_highlight(int argc, char** argv) {
parse_state = meta_parse_state_from_file(&arena, args.filename);
action = parse_function(parse_state);
- if (!action.valid) {
+ if (action.valid) {
+ if (html) {
+ meta_highlight_html(parse_state);
+ } else {
+ meta_highlight_terminal(parse_state);
+ }
+ } else {
fprintf(stderr, "ERROR: parse error [pos=%d] [size=%d]", parse_state->pos, parse_state->input_buffer->size);
- return workbench_app_init_fail();
}
- if (html) {
- meta_highlight_html(parse_state);
+ arena_free(&arena);
+ if (action.valid) {
+ return workbench_app_init_success(NULL);
} else {
- meta_highlight_terminal(parse_state);
+ return workbench_app_init_fail();
}
- return workbench_app_init_success(NULL);
}
WorkbenchAppInit workbench_cli_command_gui(int argc, char** argv) {
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
index f48cc78..0bb66ac 100644
--- a/src/workbench_sdl.c
+++ b/src/workbench_sdl.c
@@ -28,7 +28,8 @@ void platform_sdl_char_textures_init(void) {
}
SDL_Texture* platform_sdl_char_textures_get(char *c, Highlight color) {
- SDL_Texture** slot = &charTextures[*c % PLATFORM_SDL_CHAR_CACHE_SIZE][color];
+ SDL_Texture** slot;
+ slot = &charTextures[*c % PLATFORM_SDL_CHAR_CACHE_SIZE][color];
if (*slot == NULL) {
SDL_Surface *text = NULL;
SDL_Texture *texture = NULL;
fatal: Invalid revision range 9456134a4eefe3dbbb7dcda9e31b1290cd7e66c2..aa884e0dcaf4757535aaf1b8128c61fe40ec49c9
commit 9456134a4eefe3dbbb7dcda9e31b1290cd7e66c2
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 17:43:46 2025 +0100
Support backspace and delete in regular buffer
diff --git a/src/workbench.c b/src/workbench.c
index 904ba8d..36fe618 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -36,6 +36,7 @@ typedef struct {
typedef enum {
WorkbenchKey_Enter,
WorkbenchKey_Backspace,
+ WorkbenchKey_Delete,
WorkbenchKey_Other
} WorkbenchKey;
@@ -181,6 +182,14 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
buffer->cursor_preferred_line++;
return;
}
+ if (is_special(key, WorkbenchKey_Backspace)) {
+ buffer_command_delete_left(buffer);
+ return;
+ }
+ if (is_special(key, WorkbenchKey_Delete)) {
+ buffer_command_delete_right(buffer);
+ return;
+ }
if (key.string.size && !key.ctrl) { buffer_command_replace_selection_with(buffer, key.string); return; }
break;
}
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
index a28b009..f48cc78 100644
--- a/src/workbench_sdl.c
+++ b/src/workbench_sdl.c
@@ -191,6 +191,9 @@ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) {
case SDLK_BACKSPACE:
key.key = WorkbenchKey_Backspace;
break;
+ case SDLK_DELETE:
+ key.key = WorkbenchKey_Delete;
+ break;
default:
key.key = WorkbenchKey_Other;
break;
commit 3ceaf35dc174ce1521022ce2d8c59faccc04527f
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 17:40:27 2025 +0100
Can delete with backspace in search buffer
diff --git a/src/buffer.c b/src/buffer.c
index a603e28..90e0a72 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -147,7 +147,11 @@ String* buffer_replace_selection(Buffer* buffer, Arena* arena, String string) {
unsigned int selection_end;
String* new_string = arena_alloc(arena, sizeof(String));
if (buffer->selection_offset < 0) {
- selection_start = buffer->cursor + buffer->selection_offset;
+ if ((-buffer->selection_offset) > buffer->cursor) {
+ selection_start = 0;
+ } else {
+ selection_start = buffer->cursor + buffer->selection_offset;
+ }
selection_end = buffer->cursor;
} else {
selection_start = buffer->cursor;
@@ -195,6 +199,16 @@ void buffer_command_save(Buffer* buffer) {
io_write_file(buffer->filename, *buffer->parse_state->input_buffer);
}
+void buffer_command_delete_left(Buffer* buffer) {
+ buffer->selection_offset = -1;
+ buffer_command_replace_selection_with(buffer, string_empty());
+}
+
+void buffer_command_delete_right(Buffer* buffer) {
+ buffer->selection_offset = 1;
+ buffer_command_replace_selection_with(buffer, string_empty());
+}
+
unsigned int buffer_calculate_draw_pos_offset(Buffer* buffer) {
unsigned int offset = 0;
unsigned int line;
diff --git a/src/workbench.c b/src/workbench.c
index d58175c..904ba8d 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -35,6 +35,7 @@ typedef struct {
typedef enum {
WorkbenchKey_Enter,
+ WorkbenchKey_Backspace,
WorkbenchKey_Other
} WorkbenchKey;
@@ -148,10 +149,8 @@ int is_special(WorkbenchKeyEvent event, WorkbenchKey key) {
void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
Buffer* buffer = &state->buffer;
- String empty, newline;
+ String newline;
char buf[1] = {'\n'};
- empty.size = 0;
- empty.buffer = NULL;
newline.size = 1;
newline.buffer = buf;
switch (state->mode) {
@@ -166,7 +165,7 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
if (is_key(key, "$")) { buffer_command_cursor_end_line(buffer); return; }
if (is_ctrl(key, "f")) { buffer_command_scroll_down(buffer); return; }
if (is_ctrl(key, "b")) { buffer_command_scroll_up(buffer); return; }
- if (is_key(key, "x")) { buffer->selection_offset = 1; buffer_command_replace_selection_with(buffer, empty); return; }
+ if (is_key(key, "x")) { buffer_command_delete_right(buffer); return; }
if (is_key(key, "s")) { buffer_command_save(buffer); return; }
if (is_key(key, "i")) { buffer->mode = Buffer_Mode_INSERT; return; }
if (is_key(key, "/")) { state->mode = WorkbenchMode_SEARCH; return ; }
@@ -195,6 +194,10 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
buffer_command_replace_selection_with(&state->search, key.string);
return;
}
+ if (is_special(key, WorkbenchKey_Backspace)) {
+ buffer_command_delete_left(&state->search);
+ return;
+ }
break;
}
}
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
index f6606d0..a28b009 100644
--- a/src/workbench_sdl.c
+++ b/src/workbench_sdl.c
@@ -188,6 +188,9 @@ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) {
case SDLK_RETURN:
key.key = WorkbenchKey_Enter;
break;
+ case SDLK_BACKSPACE:
+ key.key = WorkbenchKey_Backspace;
+ break;
default:
key.key = WorkbenchKey_Other;
break;
commit fefdfb959cee3961b6410506dff55a932b79e0a3
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 17:23:13 2025 +0100
Can insert at end of buffer
diff --git a/README.md b/README.md
index 33cf449..9506dad 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,6 @@
## Editor
* Implement buffer abstraction that can be used for search box as well
-* Handle cursor at end
* Support for undo/redo
* Fun "character explode" animation when saving
diff --git a/src/buffer.c b/src/buffer.c
index 00664ad..a603e28 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -18,6 +18,18 @@ typedef struct {
unsigned int number_of_lines_available;
} Buffer;
+char* buffer_at(Buffer* buffer, int position) {
+ if (position >= 0 && position < buffer->parse_state->input_buffer->size) {
+ return &buffer->parse_state->input_buffer->buffer[position];
+ } else {
+ return NULL;
+ }
+}
+
+int buffer_max_index(Buffer* buffer) {
+ return buffer->parse_state->input_buffer->size;
+}
+
void buffer_init_from_file(char* filename, Language language, Buffer* buffer) {
buffer->parse = LANGUAGE_HIGHLIGHERS[language];
buffer->arena = arena_create(2<<25);
@@ -143,7 +155,7 @@ String* buffer_replace_selection(Buffer* buffer, Arena* arena, String string) {
}
new_string->buffer = next = arena_alloc(arena, 1);
new_string->size = 0;
- for (i=0; i<buffer->parse_state->input_buffer->size; i++) {
+ for (i=0; i<=buffer_max_index(buffer); i++) {
if (i == selection_start) {
for (j=0; j<string.size; j++) {
*next = string.buffer[j];
@@ -151,7 +163,7 @@ String* buffer_replace_selection(Buffer* buffer, Arena* arena, String string) {
new_string->size++;
}
}
- if (i < selection_start || i >= selection_end) {
+ if (i < buffer_max_index(buffer) && (i < selection_start || i >= selection_end)) {
*next = buffer->parse_state->input_buffer->buffer[i];
next = arena_alloc(arena, 1);
new_string->size++;
@@ -201,18 +213,6 @@ unsigned int buffer_calculate_draw_pos_offset(Buffer* buffer) {
return offset;
}
-char* buffer_at(Buffer* buffer, int position) {
- if (position >= 0 && position < buffer->parse_state->input_buffer->size) {
- return &buffer->parse_state->input_buffer->buffer[position];
- } else {
- return NULL;
- }
-}
-
-int buffer_max_index(Buffer* buffer) {
- return buffer->parse_state->input_buffer->size;
-}
-
void buffer_render(Buffer* buffer, int line_height, int padding, int start_x, int start_y, int w, int h, unsigned int elapsed_ms, int cursor) {
int i;
int x = start_x;
commit 1f4367abab2c08a93dc68bb329b5e934fef57840
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 17:18:34 2025 +0100
Render cursor if it is at the end of the buffer
diff --git a/src/buffer.c b/src/buffer.c
index 960d06a..00664ad 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -38,7 +38,7 @@ void buffer_init_memory(Language language, Buffer* buffer) {
buffer->parse = LANGUAGE_HIGHLIGHERS[language];
buffer->arena = arena_create(2<<25);
buffer->next_arena = arena_create(2<<25);
- buffer->parse_state = meta_parse_state_alloc(&buffer->arena, string_alloc_from_cstring(&buffer->arena, "?"));
+ buffer->parse_state = meta_parse_state_alloc(&buffer->arena, string_alloc_from_cstring(&buffer->arena, ""));
buffer->cursor = 0;
buffer->selection_offset = 0;
buffer->cursor_time_ms = 0;
@@ -201,16 +201,29 @@ unsigned int buffer_calculate_draw_pos_offset(Buffer* buffer) {
return offset;
}
+char* buffer_at(Buffer* buffer, int position) {
+ if (position >= 0 && position < buffer->parse_state->input_buffer->size) {
+ return &buffer->parse_state->input_buffer->buffer[position];
+ } else {
+ return NULL;
+ }
+}
+
+int buffer_max_index(Buffer* buffer) {
+ return buffer->parse_state->input_buffer->size;
+}
+
void buffer_render(Buffer* buffer, int line_height, int padding, int start_x, int start_y, int w, int h, unsigned int elapsed_ms, int cursor) {
int i;
int x = start_x;
int y = start_y;
+ char* str;
Highlight background;
buffer->cursor_time_ms += elapsed_ms;
buffer->cursor_time_ms %= (CURSOR_BLINK_TIME*2);
buffer->number_of_lines_available = h/line_height;
- for (i=buffer_calculate_draw_pos_offset(buffer); i<buffer->parse_state->input_buffer->size; i++) {
+ for (i=buffer_calculate_draw_pos_offset(buffer); i<=buffer_max_index(buffer); i++) {
if (y > h) {
break;
}
@@ -225,7 +238,8 @@ void buffer_render(Buffer* buffer, int line_height, int padding, int start_x, in
break;
}
}
- if (buffer->parse_state->input_buffer->buffer[i] == '\n') {
+ str = buffer_at(buffer, i);
+ if (str == NULL || str[0] == '\n') {
platform_draw_char(
" ",
&x,
@@ -238,7 +252,7 @@ void buffer_render(Buffer* buffer, int line_height, int padding, int start_x, in
x = padding;
} else if (x < w && y < h) {
platform_draw_char(
- &buffer->parse_state->input_buffer->buffer[i],
+ str,
&x,
&y,
buffer->parse_state->highlight[i],
commit 0b0e4fce8c051098f12d9dc4e2bcc4f398d91ce5
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 16:58:09 2025 +0100
Can insert characters into search buffer
diff --git a/src/buffer.c b/src/buffer.c
index 03969ac..960d06a 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -43,7 +43,7 @@ void buffer_init_memory(Language language, Buffer* buffer) {
buffer->selection_offset = 0;
buffer->cursor_time_ms = 0;
buffer->cursor_column = 0;
- buffer->mode = Buffer_Mode_NORMAL;
+ buffer->mode = Buffer_Mode_INSERT;
buffer->filename = NULL;
buffer->cursor_preferred_line = 0;
buffer->number_of_lines_available = 0;
diff --git a/src/workbench.c b/src/workbench.c
index ee34945..d58175c 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -187,7 +187,14 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
}
break;
case WorkbenchMode_SEARCH:
- if (is_ctrl(key, "[")) { state->mode = WorkbenchMode_BUFFER; return; }
+ if (is_ctrl(key, "[")) {
+ state->mode = WorkbenchMode_BUFFER;
+ return;
+ }
+ if (key.string.size && !key.ctrl) {
+ buffer_command_replace_selection_with(&state->search, key.string);
+ return;
+ }
break;
}
}
@@ -221,13 +228,13 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
y,
w,
line_height,
- HighlightBackground_Input
+ HighlightBackground_Cursor
);
platform_draw_char(
">",
&x,
&y,
- Highlight_Meta,
+ Highlight_CharString,
HighlightBackground_Cursor,
line_height
);
@@ -235,7 +242,7 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
" ",
&x,
&y,
- Highlight_Meta,
+ Highlight_CharString,
HighlightBackground_Cursor,
line_height
);
commit 221495a03e2f1f06a4e7ce915d714c8d2d771e78
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 16:53:46 2025 +0100
Nicer rendering of search bar
diff --git a/src/buffer.c b/src/buffer.c
index c3297f4..03969ac 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -231,7 +231,8 @@ void buffer_render(Buffer* buffer, int line_height, int padding, int start_x, in
&x,
&y,
buffer->parse_state->highlight[i],
- background
+ background,
+ line_height
);
y += line_height;
x = padding;
@@ -241,7 +242,8 @@ void buffer_render(Buffer* buffer, int line_height, int padding, int start_x, in
&x,
&y,
buffer->parse_state->highlight[i],
- background
+ background,
+ line_height
);
}
}
diff --git a/src/workbench.c b/src/workbench.c
index 0fa8b90..ee34945 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -13,7 +13,8 @@
#include "language.c"
void platform_clear(HighlightBackground highlight);
-void platform_draw_char(char* c, int* x, int* y, Highlight highlight, HighlightBackground background);
+void platform_draw_char(char* c, int* x, int* y, Highlight highlight, HighlightBackground background, int line_height);
+void platform_fill_rect(int x, int y, int w, int h, HighlightBackground background);
static int CURSOR_BLINK_TIME = 490;
@@ -213,14 +214,39 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
!in_search_mode
);
if (in_search_mode) {
+ x = padding;
+ y = h+padding;
+ platform_fill_rect(
+ 0,
+ y,
+ w,
+ line_height,
+ HighlightBackground_Input
+ );
+ platform_draw_char(
+ ">",
+ &x,
+ &y,
+ Highlight_Meta,
+ HighlightBackground_Cursor,
+ line_height
+ );
+ platform_draw_char(
+ " ",
+ &x,
+ &y,
+ Highlight_Meta,
+ HighlightBackground_Cursor,
+ line_height
+ );
buffer_render(
&state->search,
line_height,
padding,
x,
- h+padding,
+ y,
w,
- h+1+line_height,
+ h+line_height,
elapsed_ms,
1
);
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
index 5b64b5f..f6606d0 100644
--- a/src/workbench_sdl.c
+++ b/src/workbench_sdl.c
@@ -51,9 +51,9 @@ int platform_sdl_debug_height() {
return WORKBENCH_FONT_SIZE * 1.5;
}
-void platform_sdl_draw_cstring(char* cstring, int* x, int* y, Highlight highlight) {
+void platform_sdl_draw_cstring(char* cstring, int* x, int* y, Highlight highlight, int line_height) {
while (*cstring) {
- platform_draw_char(cstring, x, y, highlight, HighlightBackground_None);
+ platform_draw_char(cstring, x, y, highlight, HighlightBackground_None, line_height);
cstring++;
}
}
@@ -61,8 +61,8 @@ void platform_sdl_draw_cstring(char* cstring, int* x, int* y, Highlight highligh
void platform_sdl_draw_ms(unsigned int ms, int* x, int* y) {
char buffer[100];
sprintf(buffer, "%2d", ms);
- platform_sdl_draw_cstring(buffer, x, y, Highlight_CharString);
- platform_sdl_draw_cstring("ms", x, y, Highlight_None);
+ platform_sdl_draw_cstring(buffer, x, y, Highlight_CharString, WORKBENCH_FONT_SIZE);
+ platform_sdl_draw_cstring("ms", x, y, Highlight_None, WORKBENCH_FONT_SIZE);
}
void platform_sdl_draw_debug(unsigned int elapsed_ms) {
@@ -96,19 +96,19 @@ void platform_sdl_draw_debug(unsigned int elapsed_ms) {
}
x = (platform_sdl_debug_height()-WORKBENCH_FONT_SIZE)/2;
y = x-platform_sdl_debug_height();
- platform_sdl_draw_cstring("DEBUG[", &x, &y, Highlight_VariableName);
- platform_sdl_draw_cstring("key:", &x, &y, Highlight_Meta);
+ platform_sdl_draw_cstring("DEBUG[", &x, &y, Highlight_VariableName, WORKBENCH_FONT_SIZE);
+ platform_sdl_draw_cstring("key:", &x, &y, Highlight_Meta, WORKBENCH_FONT_SIZE);
platform_sdl_draw_ms(duration_ms_key_down, &x, &y);
- platform_sdl_draw_cstring("|", &x, &y, Highlight_VariableName);
- platform_sdl_draw_cstring("app iterate:", &x, &y, Highlight_Meta);
+ platform_sdl_draw_cstring("|", &x, &y, Highlight_VariableName, WORKBENCH_FONT_SIZE);
+ platform_sdl_draw_cstring("app iterate:", &x, &y, Highlight_Meta, WORKBENCH_FONT_SIZE);
platform_sdl_draw_ms(duration_ms_app_iterate_last, &x, &y);
- platform_sdl_draw_cstring("|", &x, &y, Highlight_VariableName);
- platform_sdl_draw_cstring("draw char:", &x, &y, Highlight_Meta);
+ platform_sdl_draw_cstring("|", &x, &y, Highlight_VariableName, WORKBENCH_FONT_SIZE);
+ platform_sdl_draw_cstring("draw char:", &x, &y, Highlight_Meta, WORKBENCH_FONT_SIZE);
platform_sdl_draw_ms(duration_ms_total_draw_char_last, &x, &y);
- platform_sdl_draw_cstring("|", &x, &y, Highlight_VariableName);
- platform_sdl_draw_cstring("flip:", &x, &y, Highlight_Meta);
+ platform_sdl_draw_cstring("|", &x, &y, Highlight_VariableName, WORKBENCH_FONT_SIZE);
+ platform_sdl_draw_cstring("flip:", &x, &y, Highlight_Meta, WORKBENCH_FONT_SIZE);
platform_sdl_draw_ms(duration_ms_flip_last, &x, &y);
- platform_sdl_draw_cstring("]", &x, &y, Highlight_VariableName);
+ platform_sdl_draw_cstring("]", &x, &y, Highlight_VariableName, WORKBENCH_FONT_SIZE);
}
SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv) {
@@ -229,7 +229,7 @@ void platform_clear(HighlightBackground highlight) {
SDL_RenderClear(renderer);
}
-void platform_draw_char(char* c, int* x, int* y, Highlight highlight, HighlightBackground background) {
+void platform_draw_char(char* c, int* x, int* y, Highlight highlight, HighlightBackground background, int line_height) {
Uint64 start, end;
SDL_Texture *texture = NULL;
SDL_FRect dst;
@@ -256,6 +256,7 @@ void platform_draw_char(char* c, int* x, int* y, Highlight highlight, HighlightB
if (background == HighlightBackground_Input) {
dst.w = 3;
}
+ dst.h = line_height;
SDL_RenderFillRect(renderer, &dst);
dst.w = old_w;
}
@@ -265,3 +266,19 @@ void platform_draw_char(char* c, int* x, int* y, Highlight highlight, HighlightB
end = SDL_GetTicks();
duration_ms_total_draw_char += end - start;
}
+
+void platform_fill_rect(int x, int y, int w, int h, HighlightBackground background) {
+ SDL_FRect dst;
+ SDL_SetRenderDrawColor(
+ renderer,
+ HIGHLIGHT_BACKGROUND_COLORS[background].r,
+ HIGHLIGHT_BACKGROUND_COLORS[background].g,
+ HIGHLIGHT_BACKGROUND_COLORS[background].b,
+ SDL_ALPHA_OPAQUE
+ );
+ dst.x = x;
+ dst.y = y+platform_sdl_debug_height();
+ dst.w = w;
+ dst.h = h;
+ SDL_RenderFillRect(renderer, &dst);
+}
commit d0fce5e4f94872679cb3155a4cf3fe3a53c3960c
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 16:28:46 2025 +0100
Render search buffer
diff --git a/src/buffer.c b/src/buffer.c
index b0ea2ac..c3297f4 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -200,3 +200,49 @@ unsigned int buffer_calculate_draw_pos_offset(Buffer* buffer) {
}
return offset;
}
+
+void buffer_render(Buffer* buffer, int line_height, int padding, int start_x, int start_y, int w, int h, unsigned int elapsed_ms, int cursor) {
+ int i;
+ int x = start_x;
+ int y = start_y;
+ Highlight background;
+
+ buffer->cursor_time_ms += elapsed_ms;
+ buffer->cursor_time_ms %= (CURSOR_BLINK_TIME*2);
+ buffer->number_of_lines_available = h/line_height;
+ for (i=buffer_calculate_draw_pos_offset(buffer); i<buffer->parse_state->input_buffer->size; i++) {
+ if (y > h) {
+ break;
+ }
+ background = Highlight_None;
+ if (cursor && buffer->cursor == i && buffer->cursor_time_ms < CURSOR_BLINK_TIME) {
+ switch (buffer->mode) {
+ case Buffer_Mode_NORMAL:
+ background = HighlightBackground_Cursor;
+ break;
+ case Buffer_Mode_INSERT:
+ background = HighlightBackground_Input;
+ break;
+ }
+ }
+ if (buffer->parse_state->input_buffer->buffer[i] == '\n') {
+ platform_draw_char(
+ " ",
+ &x,
+ &y,
+ buffer->parse_state->highlight[i],
+ background
+ );
+ y += line_height;
+ x = padding;
+ } else if (x < w && y < h) {
+ platform_draw_char(
+ &buffer->parse_state->input_buffer->buffer[i],
+ &x,
+ &y,
+ buffer->parse_state->highlight[i],
+ background
+ );
+ }
+ }
+}
diff --git a/src/workbench.c b/src/workbench.c
index 9b60922..0fa8b90 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -11,10 +11,15 @@
#include "highlight.c"
#include "meta.c"
#include "language.c"
+
+void platform_clear(HighlightBackground highlight);
+void platform_draw_char(char* c, int* x, int* y, Highlight highlight, HighlightBackground background);
+
+static int CURSOR_BLINK_TIME = 490;
+
#include "buffer.c"
static int WORKBENCH_FONT_SIZE = 20;
-static int CURSOR_BLINK_TIME = 490;
typedef enum {
WorkbenchMode_BUFFER,
@@ -38,9 +43,6 @@ typedef struct {
int ctrl;
} WorkbenchKeyEvent;
-void platform_clear(HighlightBackground highlight);
-void platform_draw_char(char* c, int* x, int* y, Highlight highlight, HighlightBackground background);
-
typedef struct {
int was_successful;
void* state;
@@ -190,61 +192,37 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
}
void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
- Buffer* buffer = &state->buffer;
int padding = WORKBENCH_FONT_SIZE / 3;
- int i;
int x = padding;
int y = padding;
unsigned int line_height = WORKBENCH_FONT_SIZE + padding/2;
-
- Highlight background;
- buffer->cursor_time_ms += elapsed_ms;
- buffer->cursor_time_ms %= (CURSOR_BLINK_TIME*2);
- if (state->mode == WorkbenchMode_SEARCH) {
- h /= 2;
- }
+ int in_search_mode = state->mode == WorkbenchMode_SEARCH;
platform_clear(HighlightBackground_Dark);
- buffer->number_of_lines_available = h/line_height;
- for (i=buffer_calculate_draw_pos_offset(buffer); i<buffer->parse_state->input_buffer->size; i++) {
- if (y > h) {
- break;
- }
- background = Highlight_None;
- if (buffer->cursor == i && buffer->cursor_time_ms < CURSOR_BLINK_TIME && state->mode != WorkbenchMode_SEARCH) {
- switch (buffer->mode) {
- case Buffer_Mode_NORMAL:
- background = HighlightBackground_Cursor;
- break;
- case Buffer_Mode_INSERT:
- background = HighlightBackground_Input;
- break;
- }
- }
- if (buffer->parse_state->input_buffer->buffer[i] == '\n') {
- platform_draw_char(
- " ",
- &x,
- &y,
- buffer->parse_state->highlight[i],
- background
- );
- y += line_height;
- x = padding;
- } else if (x < w && y < h) {
- platform_draw_char(
- &buffer->parse_state->input_buffer->buffer[i],
- &x,
- &y,
- buffer->parse_state->highlight[i],
- background
- );
- }
+ if (in_search_mode) {
+ h /= 2;
}
- if (state->mode == WorkbenchMode_SEARCH) {
- char* t = "> ";
- x = 0;
- y = h+1;
- platform_draw_char(&t[0], &x, &y, Highlight_Escape, HighlightBackground_None);
- platform_draw_char(&t[1], &x, &y, Highlight_Escape, HighlightBackground_Input);
+ buffer_render(
+ &state->buffer,
+ line_height,
+ padding,
+ x,
+ y,
+ w,
+ h,
+ elapsed_ms,
+ !in_search_mode
+ );
+ if (in_search_mode) {
+ buffer_render(
+ &state->search,
+ line_height,
+ padding,
+ x,
+ h+padding,
+ w,
+ h+1+line_height,
+ elapsed_ms,
+ 1
+ );
}
}
commit 49b1e2a182b071849454374998b199dcbb73d894
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 16:01:09 2025 +0100
Remove obsolete state null check
diff --git a/src/workbench.c b/src/workbench.c
index e538a6e..9b60922 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -200,9 +200,6 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
Highlight background;
buffer->cursor_time_ms += elapsed_ms;
buffer->cursor_time_ms %= (CURSOR_BLINK_TIME*2);
- if (state == NULL) {
- return;
- }
if (state->mode == WorkbenchMode_SEARCH) {
h /= 2;
}
commit c0adfc3351f5868c3f4643a9edfe9b0701836300
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 16:00:17 2025 +0100
Create search buffer
diff --git a/src/buffer.c b/src/buffer.c
index f29bbb2..b0ea2ac 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -34,6 +34,22 @@ void buffer_init_from_file(char* filename, Language language, Buffer* buffer) {
buffer->parse(buffer->parse_state);
}
+void buffer_init_memory(Language language, Buffer* buffer) {
+ buffer->parse = LANGUAGE_HIGHLIGHERS[language];
+ buffer->arena = arena_create(2<<25);
+ buffer->next_arena = arena_create(2<<25);
+ buffer->parse_state = meta_parse_state_alloc(&buffer->arena, string_alloc_from_cstring(&buffer->arena, "?"));
+ buffer->cursor = 0;
+ buffer->selection_offset = 0;
+ buffer->cursor_time_ms = 0;
+ buffer->cursor_column = 0;
+ buffer->mode = Buffer_Mode_NORMAL;
+ buffer->filename = NULL;
+ buffer->cursor_preferred_line = 0;
+ buffer->number_of_lines_available = 0;
+ buffer->parse(buffer->parse_state);
+}
+
void buffer_cursor_left_on_line(Buffer* buffer, int amount) {
buffer->cursor = string_seek_left(buffer->parse_state->input_buffer, buffer->cursor, amount, '\n');
}
diff --git a/src/workbench.c b/src/workbench.c
index bb3ada9..e538a6e 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -23,6 +23,7 @@ typedef enum {
typedef struct {
Buffer buffer;
+ Buffer search;
WorkbenchMode mode;
} Workbench;
@@ -117,6 +118,7 @@ WorkbenchAppInit workbench_cli_command_gui(int argc, char** argv) {
args = workbench_parse_args(argc, argv);
state.mode = WorkbenchMode_BUFFER;
buffer_init_from_file(args.filename, args.language, &state.buffer);
+ buffer_init_memory(Language_Generic, &state.search);
return workbench_app_init_success(&state);
}
commit 5ba3bf754faf1942449c4976b46773384490fb6b
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 15:53:57 2025 +0100
Better name
diff --git a/src/buffer.c b/src/buffer.c
index e48e718..f29bbb2 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -18,7 +18,7 @@ typedef struct {
unsigned int number_of_lines_available;
} Buffer;
-void buffer_init(char* filename, Language language, Buffer* buffer) {
+void buffer_init_from_file(char* filename, Language language, Buffer* buffer) {
buffer->parse = LANGUAGE_HIGHLIGHERS[language];
buffer->arena = arena_create(2<<25);
buffer->next_arena = arena_create(2<<25);
diff --git a/src/workbench.c b/src/workbench.c
index 9ae3fc2..bb3ada9 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -116,7 +116,7 @@ WorkbenchAppInit workbench_cli_command_gui(int argc, char** argv) {
WorkbenchArgs args;
args = workbench_parse_args(argc, argv);
state.mode = WorkbenchMode_BUFFER;
- buffer_init(args.filename, args.language, &state.buffer);
+ buffer_init_from_file(args.filename, args.language, &state.buffer);
return workbench_app_init_success(&state);
}
commit b1a50a839644159c9f81afffc1c9e7397ed807ec
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 15:46:53 2025 +0100
Move buffer functions to buffer.c
diff --git a/src/buffer.c b/src/buffer.c
index 4b94527..e48e718 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -17,3 +17,170 @@ typedef struct {
int cursor_preferred_line;
unsigned int number_of_lines_available;
} Buffer;
+
+void buffer_init(char* filename, Language language, Buffer* buffer) {
+ buffer->parse = LANGUAGE_HIGHLIGHERS[language];
+ buffer->arena = arena_create(2<<25);
+ buffer->next_arena = arena_create(2<<25);
+ buffer->parse_state = meta_parse_state_from_file(&buffer->arena, filename);
+ buffer->cursor = 0;
+ buffer->selection_offset = 0;
+ buffer->cursor_time_ms = 0;
+ buffer->cursor_column = 0;
+ buffer->mode = Buffer_Mode_NORMAL;
+ buffer->filename = filename;
+ buffer->cursor_preferred_line = 0;
+ buffer->number_of_lines_available = 0;
+ buffer->parse(buffer->parse_state);
+}
+
+void buffer_cursor_left_on_line(Buffer* buffer, int amount) {
+ buffer->cursor = string_seek_left(buffer->parse_state->input_buffer, buffer->cursor, amount, '\n');
+}
+
+void buffer_cursor_right_on_line(Buffer* buffer, int amount) {
+ buffer->cursor = string_seek_right(buffer->parse_state->input_buffer, buffer->cursor, amount, '\n');
+}
+
+void buffer_register_column(Buffer* buffer) {
+ unsigned int pos = buffer->cursor;
+ buffer_cursor_left_on_line(buffer, -1);
+ buffer->cursor_column = pos - buffer->cursor;
+ buffer->cursor = pos;
+}
+
+void buffer_command_cursor_left(Buffer* buffer) {
+ buffer_cursor_left_on_line(buffer, 1);
+ buffer_register_column(buffer);
+ buffer->cursor_time_ms = 0;
+}
+
+void buffer_command_cursor_right(Buffer* buffer) {
+ buffer_cursor_right_on_line(buffer, 1);
+ buffer_register_column(buffer);
+ buffer->cursor_time_ms = 0;
+}
+
+void buffer_command_cursor_down(Buffer* buffer) {
+ buffer_cursor_right_on_line(buffer, -1);
+ if (buffer->cursor < buffer->parse_state->input_buffer->size) {
+ buffer->cursor++;
+ }
+ buffer_cursor_right_on_line(buffer, buffer->cursor_column);
+ buffer->cursor_time_ms = 0;
+ buffer->cursor_preferred_line++;
+}
+
+void buffer_command_cursor_up(Buffer* buffer) {
+ buffer_cursor_left_on_line(buffer, -1);
+ if (buffer->cursor > 0) {
+ buffer->cursor--;
+ }
+ buffer_cursor_left_on_line(buffer, -1);
+ buffer_cursor_right_on_line(buffer, buffer->cursor_column);
+ buffer->cursor_time_ms = 0;
+ buffer->cursor_preferred_line--;
+}
+
+void buffer_command_cursor_beginning_line(Buffer* buffer) {
+ buffer_cursor_left_on_line(buffer, -1);
+ buffer->cursor_time_ms = 0;
+ buffer->cursor_column = 0;
+}
+
+void buffer_command_cursor_end_line(Buffer* buffer) {
+ buffer_cursor_right_on_line(buffer, -1);
+ buffer->cursor_time_ms = 0;
+ buffer->cursor_column = -1;
+}
+
+void buffer_command_scroll_up(Buffer* buffer) {
+ int line;
+ unsigned int cursor_preferred_line = buffer->cursor_preferred_line;
+ for (line=0; line<buffer->number_of_lines_available-2; line++) {
+ buffer_command_cursor_up(buffer);
+ }
+ buffer->cursor_preferred_line = cursor_preferred_line;
+}
+
+void buffer_command_scroll_down(Buffer* buffer) {
+ int line;
+ unsigned int cursor_preferred_line = buffer->cursor_preferred_line;
+ for (line=0; line<buffer->number_of_lines_available-2; line++) {
+ buffer_command_cursor_down(buffer);
+ }
+ buffer->cursor_preferred_line = cursor_preferred_line;
+}
+
+String* buffer_replace_selection(Buffer* buffer, Arena* arena, String string) {
+ unsigned int i, j;
+ char* next;
+ unsigned int selection_start;
+ unsigned int selection_end;
+ String* new_string = arena_alloc(arena, sizeof(String));
+ if (buffer->selection_offset < 0) {
+ selection_start = buffer->cursor + buffer->selection_offset;
+ selection_end = buffer->cursor;
+ } else {
+ selection_start = buffer->cursor;
+ selection_end = selection_start + buffer->selection_offset;
+ }
+ new_string->buffer = next = arena_alloc(arena, 1);
+ new_string->size = 0;
+ for (i=0; i<buffer->parse_state->input_buffer->size; i++) {
+ if (i == selection_start) {
+ for (j=0; j<string.size; j++) {
+ *next = string.buffer[j];
+ next = arena_alloc(arena, 1);
+ new_string->size++;
+ }
+ }
+ if (i < selection_start || i >= selection_end) {
+ *next = buffer->parse_state->input_buffer->buffer[i];
+ next = arena_alloc(arena, 1);
+ new_string->size++;
+ }
+ }
+ buffer->cursor = selection_start + string.size;
+ buffer->selection_offset = 0;
+ buffer->cursor_time_ms = 0;
+ return new_string;
+}
+
+void buffer_command_replace_selection_with(Buffer* buffer, String string) {
+ Arena tmp_arena;
+ MetaParseState* next_parse_state;
+
+ tmp_arena = buffer->next_arena;
+ buffer->next_arena = buffer->arena;
+ buffer->arena = tmp_arena;
+
+ next_parse_state = meta_parse_state_alloc(&buffer->arena, buffer_replace_selection(buffer, &buffer->arena, string));
+ if (buffer->parse) {
+ buffer->parse(next_parse_state);
+ }
+ buffer->parse_state = next_parse_state;
+ arena_reset(&buffer->next_arena);
+}
+
+void buffer_command_save(Buffer* buffer) {
+ io_write_file(buffer->filename, *buffer->parse_state->input_buffer);
+}
+
+unsigned int buffer_calculate_draw_pos_offset(Buffer* buffer) {
+ unsigned int offset = 0;
+ unsigned int line;
+ if (buffer->cursor_preferred_line < 0) {
+ buffer->cursor_preferred_line = 0;
+ } else if (buffer->cursor_preferred_line >= buffer->number_of_lines_available) {
+ buffer->cursor_preferred_line = buffer->number_of_lines_available-1;
+ }
+ offset = string_seek_left(buffer->parse_state->input_buffer, buffer->cursor, -1, '\n');
+ for (line=0; line<buffer->cursor_preferred_line; line++) {
+ if (offset > 0) {
+ offset--;
+ }
+ offset = string_seek_left(buffer->parse_state->input_buffer, offset, -1, '\n');
+ }
+ return offset;
+}
diff --git a/src/workbench.c b/src/workbench.c
index 54324ba..9ae3fc2 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -111,22 +111,6 @@ WorkbenchAppInit workbench_cli_command_highlight(int argc, char** argv) {
return workbench_app_init_success(NULL);
}
-void buffer_init(char* filename, Language language, Buffer* buffer) {
- buffer->parse = LANGUAGE_HIGHLIGHERS[language];
- buffer->arena = arena_create(2<<25);
- buffer->next_arena = arena_create(2<<25);
- buffer->parse_state = meta_parse_state_from_file(&buffer->arena, filename);
- buffer->cursor = 0;
- buffer->selection_offset = 0;
- buffer->cursor_time_ms = 0;
- buffer->cursor_column = 0;
- buffer->mode = Buffer_Mode_NORMAL;
- buffer->filename = filename;
- buffer->cursor_preferred_line = 0;
- buffer->number_of_lines_available = 0;
- buffer->parse(buffer->parse_state);
-}
-
WorkbenchAppInit workbench_cli_command_gui(int argc, char** argv) {
static Workbench state;
WorkbenchArgs args;
@@ -145,139 +129,6 @@ WorkbenchAppInit workbench_init(int argc, char** argv) {
}
}
-void buffer_cursor_left_on_line(Buffer* buffer, int amount) {
- buffer->cursor = string_seek_left(buffer->parse_state->input_buffer, buffer->cursor, amount, '\n');
-}
-
-void buffer_cursor_right_on_line(Buffer* buffer, int amount) {
- buffer->cursor = string_seek_right(buffer->parse_state->input_buffer, buffer->cursor, amount, '\n');
-}
-
-void buffer_register_column(Buffer* buffer) {
- unsigned int pos = buffer->cursor;
- buffer_cursor_left_on_line(buffer, -1);
- buffer->cursor_column = pos - buffer->cursor;
- buffer->cursor = pos;
-}
-
-void buffer_command_cursor_left(Buffer* buffer) {
- buffer_cursor_left_on_line(buffer, 1);
- buffer_register_column(buffer);
- buffer->cursor_time_ms = 0;
-}
-
-void buffer_command_cursor_right(Buffer* buffer) {
- buffer_cursor_right_on_line(buffer, 1);
- buffer_register_column(buffer);
- buffer->cursor_time_ms = 0;
-}
-
-void buffer_command_cursor_down(Buffer* buffer) {
- buffer_cursor_right_on_line(buffer, -1);
- if (buffer->cursor < buffer->parse_state->input_buffer->size) {
- buffer->cursor++;
- }
- buffer_cursor_right_on_line(buffer, buffer->cursor_column);
- buffer->cursor_time_ms = 0;
- buffer->cursor_preferred_line++;
-}
-
-void buffer_command_cursor_up(Buffer* buffer) {
- buffer_cursor_left_on_line(buffer, -1);
- if (buffer->cursor > 0) {
- buffer->cursor--;
- }
- buffer_cursor_left_on_line(buffer, -1);
- buffer_cursor_right_on_line(buffer, buffer->cursor_column);
- buffer->cursor_time_ms = 0;
- buffer->cursor_preferred_line--;
-}
-
-void buffer_command_cursor_beginning_line(Buffer* buffer) {
- buffer_cursor_left_on_line(buffer, -1);
- buffer->cursor_time_ms = 0;
- buffer->cursor_column = 0;
-}
-
-void buffer_command_cursor_end_line(Buffer* buffer) {
- buffer_cursor_right_on_line(buffer, -1);
- buffer->cursor_time_ms = 0;
- buffer->cursor_column = -1;
-}
-
-void buffer_command_scroll_up(Buffer* buffer) {
- int line;
- unsigned int cursor_preferred_line = buffer->cursor_preferred_line;
- for (line=0; line<buffer->number_of_lines_available-2; line++) {
- buffer_command_cursor_up(buffer);
- }
- buffer->cursor_preferred_line = cursor_preferred_line;
-}
-
-void buffer_command_scroll_down(Buffer* buffer) {
- int line;
- unsigned int cursor_preferred_line = buffer->cursor_preferred_line;
- for (line=0; line<buffer->number_of_lines_available-2; line++) {
- buffer_command_cursor_down(buffer);
- }
- buffer->cursor_preferred_line = cursor_preferred_line;
-}
-
-String* buffer_replace_selection(Buffer* buffer, Arena* arena, String string) {
- unsigned int i, j;
- char* next;
- unsigned int selection_start;
- unsigned int selection_end;
- String* new_string = arena_alloc(arena, sizeof(String));
- if (buffer->selection_offset < 0) {
- selection_start = buffer->cursor + buffer->selection_offset;
- selection_end = buffer->cursor;
- } else {
- selection_start = buffer->cursor;
- selection_end = selection_start + buffer->selection_offset;
- }
- new_string->buffer = next = arena_alloc(arena, 1);
- new_string->size = 0;
- for (i=0; i<buffer->parse_state->input_buffer->size; i++) {
- if (i == selection_start) {
- for (j=0; j<string.size; j++) {
- *next = string.buffer[j];
- next = arena_alloc(arena, 1);
- new_string->size++;
- }
- }
- if (i < selection_start || i >= selection_end) {
- *next = buffer->parse_state->input_buffer->buffer[i];
- next = arena_alloc(arena, 1);
- new_string->size++;
- }
- }
- buffer->cursor = selection_start + string.size;
- buffer->selection_offset = 0;
- buffer->cursor_time_ms = 0;
- return new_string;
-}
-
-void buffer_command_replace_selection_with(Buffer* buffer, String string) {
- Arena tmp_arena;
- MetaParseState* next_parse_state;
-
- tmp_arena = buffer->next_arena;
- buffer->next_arena = buffer->arena;
- buffer->arena = tmp_arena;
-
- next_parse_state = meta_parse_state_alloc(&buffer->arena, buffer_replace_selection(buffer, &buffer->arena, string));
- if (buffer->parse) {
- buffer->parse(next_parse_state);
- }
- buffer->parse_state = next_parse_state;
- arena_reset(&buffer->next_arena);
-}
-
-void buffer_command_save(Buffer* buffer) {
- io_write_file(buffer->filename, *buffer->parse_state->input_buffer);
-}
-
int is_key(WorkbenchKeyEvent key, char* name) {
return !key.ctrl && string_eqc(key.string, name);
}
@@ -336,24 +187,6 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
}
}
-unsigned int buffer_calculate_draw_pos_offset(Buffer* buffer) {
- unsigned int offset = 0;
- unsigned int line;
- if (buffer->cursor_preferred_line < 0) {
- buffer->cursor_preferred_line = 0;
- } else if (buffer->cursor_preferred_line >= buffer->number_of_lines_available) {
- buffer->cursor_preferred_line = buffer->number_of_lines_available-1;
- }
- offset = string_seek_left(buffer->parse_state->input_buffer, buffer->cursor, -1, '\n');
- for (line=0; line<buffer->cursor_preferred_line; line++) {
- if (offset > 0) {
- offset--;
- }
- offset = string_seek_left(buffer->parse_state->input_buffer, offset, -1, '\n');
- }
- return offset;
-}
-
void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
Buffer* buffer = &state->buffer;
int padding = WORKBENCH_FONT_SIZE / 3;
commit 1a0df1aba47cc2f197318e1c2b0167d18bdd04ff
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 15:44:53 2025 +0100
Rename
diff --git a/src/buffer.c b/src/buffer.c
index 3e8ee1c..4b94527 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -11,7 +11,7 @@ typedef struct {
int selection_offset;
unsigned int cursor_time_ms;
int cursor_column;
- Buffer_Mode buffer_mode;
+ Buffer_Mode mode;
MetaParseFunction parse;
char* filename;
int cursor_preferred_line;
diff --git a/src/workbench.c b/src/workbench.c
index c2a1987..54324ba 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -120,7 +120,7 @@ void buffer_init(char* filename, Language language, Buffer* buffer) {
buffer->selection_offset = 0;
buffer->cursor_time_ms = 0;
buffer->cursor_column = 0;
- buffer->buffer_mode = Buffer_Mode_NORMAL;
+ buffer->mode = Buffer_Mode_NORMAL;
buffer->filename = filename;
buffer->cursor_preferred_line = 0;
buffer->number_of_lines_available = 0;
@@ -300,7 +300,7 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
newline.buffer = buf;
switch (state->mode) {
case WorkbenchMode_BUFFER:
- switch (buffer->buffer_mode) {
+ switch (buffer->mode) {
case Buffer_Mode_NORMAL:
if (is_key(key, "h")) { buffer_command_cursor_left(buffer); return; }
if (is_key(key, "l")) { buffer_command_cursor_right(buffer); return; }
@@ -312,12 +312,12 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
if (is_ctrl(key, "b")) { buffer_command_scroll_up(buffer); return; }
if (is_key(key, "x")) { buffer->selection_offset = 1; buffer_command_replace_selection_with(buffer, empty); return; }
if (is_key(key, "s")) { buffer_command_save(buffer); return; }
- if (is_key(key, "i")) { buffer->buffer_mode = Buffer_Mode_INSERT; return; }
+ if (is_key(key, "i")) { buffer->mode = Buffer_Mode_INSERT; return; }
if (is_key(key, "/")) { state->mode = WorkbenchMode_SEARCH; return ; }
break;
case Buffer_Mode_INSERT:
if (is_ctrl(key, "[")) {
- buffer->buffer_mode = Buffer_Mode_NORMAL;
+ buffer->mode = Buffer_Mode_NORMAL;
buffer_command_cursor_left(buffer);
return;
}
@@ -379,7 +379,7 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
}
background = Highlight_None;
if (buffer->cursor == i && buffer->cursor_time_ms < CURSOR_BLINK_TIME && state->mode != WorkbenchMode_SEARCH) {
- switch (buffer->buffer_mode) {
+ switch (buffer->mode) {
case Buffer_Mode_NORMAL:
background = HighlightBackground_Cursor;
break;
commit 8313d44221ad754c86f554138b86424ff06fd968
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 15:44:17 2025 +0100
Move fields from Workbench -> Buffer
diff --git a/src/buffer.c b/src/buffer.c
index b7a982c..3e8ee1c 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2,3 +2,18 @@ typedef enum {
Buffer_Mode_NORMAL,
Buffer_Mode_INSERT
} Buffer_Mode;
+
+typedef struct {
+ Arena arena;
+ Arena next_arena;
+ MetaParseState* parse_state;
+ unsigned int cursor;
+ int selection_offset;
+ unsigned int cursor_time_ms;
+ int cursor_column;
+ Buffer_Mode buffer_mode;
+ MetaParseFunction parse;
+ char* filename;
+ int cursor_preferred_line;
+ unsigned int number_of_lines_available;
+} Buffer;
diff --git a/src/workbench.c b/src/workbench.c
index 54bfc38..c2a1987 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -22,19 +22,8 @@ typedef enum {
} WorkbenchMode;
typedef struct {
- Arena arena;
- Arena next_arena;
- MetaParseState* parse_state;
- unsigned int cursor;
- int selection_offset;
- unsigned int cursor_time_ms;
- int cursor_column;
+ Buffer buffer;
WorkbenchMode mode;
- Buffer_Mode buffer_mode;
- MetaParseFunction parse;
- char* filename;
- int cursor_preferred_line;
- unsigned int number_of_lines_available;
} Workbench;
typedef enum {
@@ -122,7 +111,7 @@ WorkbenchAppInit workbench_cli_command_highlight(int argc, char** argv) {
return workbench_app_init_success(NULL);
}
-void buffer_init(char* filename, Language language, Workbench* buffer) {
+void buffer_init(char* filename, Language language, Buffer* buffer) {
buffer->parse = LANGUAGE_HIGHLIGHERS[language];
buffer->arena = arena_create(2<<25);
buffer->next_arena = arena_create(2<<25);
@@ -143,7 +132,7 @@ WorkbenchAppInit workbench_cli_command_gui(int argc, char** argv) {
WorkbenchArgs args;
args = workbench_parse_args(argc, argv);
state.mode = WorkbenchMode_BUFFER;
- buffer_init(args.filename, args.language, &state);
+ buffer_init(args.filename, args.language, &state.buffer);
return workbench_app_init_success(&state);
}
@@ -156,34 +145,34 @@ WorkbenchAppInit workbench_init(int argc, char** argv) {
}
}
-void buffer_cursor_left_on_line(Workbench* buffer, int amount) {
+void buffer_cursor_left_on_line(Buffer* buffer, int amount) {
buffer->cursor = string_seek_left(buffer->parse_state->input_buffer, buffer->cursor, amount, '\n');
}
-void buffer_cursor_right_on_line(Workbench* buffer, int amount) {
+void buffer_cursor_right_on_line(Buffer* buffer, int amount) {
buffer->cursor = string_seek_right(buffer->parse_state->input_buffer, buffer->cursor, amount, '\n');
}
-void buffer_register_column(Workbench* buffer) {
+void buffer_register_column(Buffer* buffer) {
unsigned int pos = buffer->cursor;
buffer_cursor_left_on_line(buffer, -1);
buffer->cursor_column = pos - buffer->cursor;
buffer->cursor = pos;
}
-void buffer_command_cursor_left(Workbench* buffer) {
+void buffer_command_cursor_left(Buffer* buffer) {
buffer_cursor_left_on_line(buffer, 1);
buffer_register_column(buffer);
buffer->cursor_time_ms = 0;
}
-void buffer_command_cursor_right(Workbench* buffer) {
+void buffer_command_cursor_right(Buffer* buffer) {
buffer_cursor_right_on_line(buffer, 1);
buffer_register_column(buffer);
buffer->cursor_time_ms = 0;
}
-void buffer_command_cursor_down(Workbench* buffer) {
+void buffer_command_cursor_down(Buffer* buffer) {
buffer_cursor_right_on_line(buffer, -1);
if (buffer->cursor < buffer->parse_state->input_buffer->size) {
buffer->cursor++;
@@ -193,7 +182,7 @@ void buffer_command_cursor_down(Workbench* buffer) {
buffer->cursor_preferred_line++;
}
-void buffer_command_cursor_up(Workbench* buffer) {
+void buffer_command_cursor_up(Buffer* buffer) {
buffer_cursor_left_on_line(buffer, -1);
if (buffer->cursor > 0) {
buffer->cursor--;
@@ -204,19 +193,19 @@ void buffer_command_cursor_up(Workbench* buffer) {
buffer->cursor_preferred_line--;
}
-void buffer_command_cursor_beginning_line(Workbench* buffer) {
+void buffer_command_cursor_beginning_line(Buffer* buffer) {
buffer_cursor_left_on_line(buffer, -1);
buffer->cursor_time_ms = 0;
buffer->cursor_column = 0;
}
-void buffer_command_cursor_end_line(Workbench* buffer) {
+void buffer_command_cursor_end_line(Buffer* buffer) {
buffer_cursor_right_on_line(buffer, -1);
buffer->cursor_time_ms = 0;
buffer->cursor_column = -1;
}
-void buffer_command_scroll_up(Workbench* buffer) {
+void buffer_command_scroll_up(Buffer* buffer) {
int line;
unsigned int cursor_preferred_line = buffer->cursor_preferred_line;
for (line=0; line<buffer->number_of_lines_available-2; line++) {
@@ -225,7 +214,7 @@ void buffer_command_scroll_up(Workbench* buffer) {
buffer->cursor_preferred_line = cursor_preferred_line;
}
-void buffer_command_scroll_down(Workbench* buffer) {
+void buffer_command_scroll_down(Buffer* buffer) {
int line;
unsigned int cursor_preferred_line = buffer->cursor_preferred_line;
for (line=0; line<buffer->number_of_lines_available-2; line++) {
@@ -234,7 +223,7 @@ void buffer_command_scroll_down(Workbench* buffer) {
buffer->cursor_preferred_line = cursor_preferred_line;
}
-String* buffer_replace_selection(Workbench* buffer, Arena* arena, String string) {
+String* buffer_replace_selection(Buffer* buffer, Arena* arena, String string) {
unsigned int i, j;
char* next;
unsigned int selection_start;
@@ -269,7 +258,7 @@ String* buffer_replace_selection(Workbench* buffer, Arena* arena, String string)
return new_string;
}
-void buffer_command_replace_selection_with(Workbench* buffer, String string) {
+void buffer_command_replace_selection_with(Buffer* buffer, String string) {
Arena tmp_arena;
MetaParseState* next_parse_state;
@@ -285,7 +274,7 @@ void buffer_command_replace_selection_with(Workbench* buffer, String string) {
arena_reset(&buffer->next_arena);
}
-void buffer_command_save(Workbench* buffer) {
+void buffer_command_save(Buffer* buffer) {
io_write_file(buffer->filename, *buffer->parse_state->input_buffer);
}
@@ -302,7 +291,7 @@ int is_special(WorkbenchKeyEvent event, WorkbenchKey key) {
}
void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
- Workbench* buffer = state;
+ Buffer* buffer = &state->buffer;
String empty, newline;
char buf[1] = {'\n'};
empty.size = 0;
@@ -347,7 +336,7 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
}
}
-unsigned int buffer_calculate_draw_pos_offset(Workbench* buffer) {
+unsigned int buffer_calculate_draw_pos_offset(Buffer* buffer) {
unsigned int offset = 0;
unsigned int line;
if (buffer->cursor_preferred_line < 0) {
@@ -366,7 +355,7 @@ unsigned int buffer_calculate_draw_pos_offset(Workbench* buffer) {
}
void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
- Workbench* buffer = state;
+ Buffer* buffer = &state->buffer;
int padding = WORKBENCH_FONT_SIZE / 3;
int i;
int x = padding;
commit e512d16edc15275abf75a7a8a02da5603c25ba99
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 15:41:11 2025 +0100
Prepareatory name changes to ease extracting buffer
diff --git a/src/workbench.c b/src/workbench.c
index ec0fbd5..54bfc38 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -156,100 +156,100 @@ WorkbenchAppInit workbench_init(int argc, char** argv) {
}
}
-void workbench_cursor_left_on_line(Workbench* state, int amount) {
- state->cursor = string_seek_left(state->parse_state->input_buffer, state->cursor, amount, '\n');
+void buffer_cursor_left_on_line(Workbench* buffer, int amount) {
+ buffer->cursor = string_seek_left(buffer->parse_state->input_buffer, buffer->cursor, amount, '\n');
}
-void workbench_cursor_right_on_line(Workbench* state, int amount) {
- state->cursor = string_seek_right(state->parse_state->input_buffer, state->cursor, amount, '\n');
+void buffer_cursor_right_on_line(Workbench* buffer, int amount) {
+ buffer->cursor = string_seek_right(buffer->parse_state->input_buffer, buffer->cursor, amount, '\n');
}
-void workbench_register_column(Workbench* state) {
- unsigned int pos = state->cursor;
- workbench_cursor_left_on_line(state, -1);
- state->cursor_column = pos - state->cursor;
- state->cursor = pos;
+void buffer_register_column(Workbench* buffer) {
+ unsigned int pos = buffer->cursor;
+ buffer_cursor_left_on_line(buffer, -1);
+ buffer->cursor_column = pos - buffer->cursor;
+ buffer->cursor = pos;
}
-void workbench_command_cursor_left(Workbench* state) {
- workbench_cursor_left_on_line(state, 1);
- workbench_register_column(state);
- state->cursor_time_ms = 0;
+void buffer_command_cursor_left(Workbench* buffer) {
+ buffer_cursor_left_on_line(buffer, 1);
+ buffer_register_column(buffer);
+ buffer->cursor_time_ms = 0;
}
-void workbench_command_cursor_right(Workbench* state) {
- workbench_cursor_right_on_line(state, 1);
- workbench_register_column(state);
- state->cursor_time_ms = 0;
+void buffer_command_cursor_right(Workbench* buffer) {
+ buffer_cursor_right_on_line(buffer, 1);
+ buffer_register_column(buffer);
+ buffer->cursor_time_ms = 0;
}
-void workbench_command_cursor_down(Workbench* state) {
- workbench_cursor_right_on_line(state, -1);
- if (state->cursor < state->parse_state->input_buffer->size) {
- state->cursor++;
+void buffer_command_cursor_down(Workbench* buffer) {
+ buffer_cursor_right_on_line(buffer, -1);
+ if (buffer->cursor < buffer->parse_state->input_buffer->size) {
+ buffer->cursor++;
}
- workbench_cursor_right_on_line(state, state->cursor_column);
- state->cursor_time_ms = 0;
- state->cursor_preferred_line++;
+ buffer_cursor_right_on_line(buffer, buffer->cursor_column);
+ buffer->cursor_time_ms = 0;
+ buffer->cursor_preferred_line++;
}
-void workbench_command_cursor_up(Workbench* state) {
- workbench_cursor_left_on_line(state, -1);
- if (state->cursor > 0) {
- state->cursor--;
+void buffer_command_cursor_up(Workbench* buffer) {
+ buffer_cursor_left_on_line(buffer, -1);
+ if (buffer->cursor > 0) {
+ buffer->cursor--;
}
- workbench_cursor_left_on_line(state, -1);
- workbench_cursor_right_on_line(state, state->cursor_column);
- state->cursor_time_ms = 0;
- state->cursor_preferred_line--;
+ buffer_cursor_left_on_line(buffer, -1);
+ buffer_cursor_right_on_line(buffer, buffer->cursor_column);
+ buffer->cursor_time_ms = 0;
+ buffer->cursor_preferred_line--;
}
-void workbench_command_cursor_beginning_line(Workbench* state) {
- workbench_cursor_left_on_line(state, -1);
- state->cursor_time_ms = 0;
- state->cursor_column = 0;
+void buffer_command_cursor_beginning_line(Workbench* buffer) {
+ buffer_cursor_left_on_line(buffer, -1);
+ buffer->cursor_time_ms = 0;
+ buffer->cursor_column = 0;
}
-void workbench_command_cursor_end_line(Workbench* state) {
- workbench_cursor_right_on_line(state, -1);
- state->cursor_time_ms = 0;
- state->cursor_column = -1;
+void buffer_command_cursor_end_line(Workbench* buffer) {
+ buffer_cursor_right_on_line(buffer, -1);
+ buffer->cursor_time_ms = 0;
+ buffer->cursor_column = -1;
}
-void workbench_command_scroll_up(Workbench* state) {
+void buffer_command_scroll_up(Workbench* buffer) {
int line;
- unsigned int cursor_preferred_line = state->cursor_preferred_line;
- for (line=0; line<state->number_of_lines_available-2; line++) {
- workbench_command_cursor_up(state);
+ unsigned int cursor_preferred_line = buffer->cursor_preferred_line;
+ for (line=0; line<buffer->number_of_lines_available-2; line++) {
+ buffer_command_cursor_up(buffer);
}
- state->cursor_preferred_line = cursor_preferred_line;
+ buffer->cursor_preferred_line = cursor_preferred_line;
}
-void workbench_command_scroll_down(Workbench* state) {
+void buffer_command_scroll_down(Workbench* buffer) {
int line;
- unsigned int cursor_preferred_line = state->cursor_preferred_line;
- for (line=0; line<state->number_of_lines_available-2; line++) {
- workbench_command_cursor_down(state);
+ unsigned int cursor_preferred_line = buffer->cursor_preferred_line;
+ for (line=0; line<buffer->number_of_lines_available-2; line++) {
+ buffer_command_cursor_down(buffer);
}
- state->cursor_preferred_line = cursor_preferred_line;
+ buffer->cursor_preferred_line = cursor_preferred_line;
}
-String* workbench_replace_selection(Workbench* state, Arena* arena, String string) {
+String* buffer_replace_selection(Workbench* buffer, Arena* arena, String string) {
unsigned int i, j;
char* next;
unsigned int selection_start;
unsigned int selection_end;
String* new_string = arena_alloc(arena, sizeof(String));
- if (state->selection_offset < 0) {
- selection_start = state->cursor + state->selection_offset;
- selection_end = state->cursor;
+ if (buffer->selection_offset < 0) {
+ selection_start = buffer->cursor + buffer->selection_offset;
+ selection_end = buffer->cursor;
} else {
- selection_start = state->cursor;
- selection_end = selection_start + state->selection_offset;
+ selection_start = buffer->cursor;
+ selection_end = selection_start + buffer->selection_offset;
}
new_string->buffer = next = arena_alloc(arena, 1);
new_string->size = 0;
- for (i=0; i<state->parse_state->input_buffer->size; i++) {
+ for (i=0; i<buffer->parse_state->input_buffer->size; i++) {
if (i == selection_start) {
for (j=0; j<string.size; j++) {
*next = string.buffer[j];
@@ -258,35 +258,35 @@ String* workbench_replace_selection(Workbench* state, Arena* arena, String strin
}
}
if (i < selection_start || i >= selection_end) {
- *next = state->parse_state->input_buffer->buffer[i];
+ *next = buffer->parse_state->input_buffer->buffer[i];
next = arena_alloc(arena, 1);
new_string->size++;
}
}
- state->cursor = selection_start + string.size;
- state->selection_offset = 0;
- state->cursor_time_ms = 0;
+ buffer->cursor = selection_start + string.size;
+ buffer->selection_offset = 0;
+ buffer->cursor_time_ms = 0;
return new_string;
}
-void workbench_command_replace_selection_with(Workbench* state, String string) {
+void buffer_command_replace_selection_with(Workbench* buffer, String string) {
Arena tmp_arena;
MetaParseState* next_parse_state;
- tmp_arena = state->next_arena;
- state->next_arena = state->arena;
- state->arena = tmp_arena;
+ tmp_arena = buffer->next_arena;
+ buffer->next_arena = buffer->arena;
+ buffer->arena = tmp_arena;
- next_parse_state = meta_parse_state_alloc(&state->arena, workbench_replace_selection(state, &state->arena, string));
- if (state->parse) {
- state->parse(next_parse_state);
+ next_parse_state = meta_parse_state_alloc(&buffer->arena, buffer_replace_selection(buffer, &buffer->arena, string));
+ if (buffer->parse) {
+ buffer->parse(next_parse_state);
}
- state->parse_state = next_parse_state;
- arena_reset(&state->next_arena);
+ buffer->parse_state = next_parse_state;
+ arena_reset(&buffer->next_arena);
}
-void workbench_command_save(Workbench* state) {
- io_write_file(state->filename, *state->parse_state->input_buffer);
+void buffer_command_save(Workbench* buffer) {
+ io_write_file(buffer->filename, *buffer->parse_state->input_buffer);
}
int is_key(WorkbenchKeyEvent key, char* name) {
@@ -302,6 +302,7 @@ int is_special(WorkbenchKeyEvent event, WorkbenchKey key) {
}
void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
+ Workbench* buffer = state;
String empty, newline;
char buf[1] = {'\n'};
empty.size = 0;
@@ -310,33 +311,33 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
newline.buffer = buf;
switch (state->mode) {
case WorkbenchMode_BUFFER:
- switch (state->buffer_mode) {
+ switch (buffer->buffer_mode) {
case Buffer_Mode_NORMAL:
- if (is_key(key, "h")) { workbench_command_cursor_left(state); return; }
- if (is_key(key, "l")) { workbench_command_cursor_right(state); return; }
- if (is_key(key, "j")) { workbench_command_cursor_down(state); return; }
- if (is_key(key, "k")) { workbench_command_cursor_up(state); return; }
- if (is_key(key, "0")) { workbench_command_cursor_beginning_line(state); return; }
- if (is_key(key, "$")) { workbench_command_cursor_end_line(state); return; }
- if (is_ctrl(key, "f")) { workbench_command_scroll_down(state); return; }
- if (is_ctrl(key, "b")) { workbench_command_scroll_up(state); return; }
- if (is_key(key, "x")) { state->selection_offset = 1; workbench_command_replace_selection_with(state, empty); return; }
- if (is_key(key, "s")) { workbench_command_save(state); return; }
- if (is_key(key, "i")) { state->buffer_mode = Buffer_Mode_INSERT; return; }
+ if (is_key(key, "h")) { buffer_command_cursor_left(buffer); return; }
+ if (is_key(key, "l")) { buffer_command_cursor_right(buffer); return; }
+ if (is_key(key, "j")) { buffer_command_cursor_down(buffer); return; }
+ if (is_key(key, "k")) { buffer_command_cursor_up(buffer); return; }
+ if (is_key(key, "0")) { buffer_command_cursor_beginning_line(buffer); return; }
+ if (is_key(key, "$")) { buffer_command_cursor_end_line(buffer); return; }
+ if (is_ctrl(key, "f")) { buffer_command_scroll_down(buffer); return; }
+ if (is_ctrl(key, "b")) { buffer_command_scroll_up(buffer); return; }
+ if (is_key(key, "x")) { buffer->selection_offset = 1; buffer_command_replace_selection_with(buffer, empty); return; }
+ if (is_key(key, "s")) { buffer_command_save(buffer); return; }
+ if (is_key(key, "i")) { buffer->buffer_mode = Buffer_Mode_INSERT; return; }
if (is_key(key, "/")) { state->mode = WorkbenchMode_SEARCH; return ; }
break;
case Buffer_Mode_INSERT:
if (is_ctrl(key, "[")) {
- state->buffer_mode = Buffer_Mode_NORMAL;
- workbench_command_cursor_left(state);
+ buffer->buffer_mode = Buffer_Mode_NORMAL;
+ buffer_command_cursor_left(buffer);
return;
}
if (is_special(key, WorkbenchKey_Enter)) {
- workbench_command_replace_selection_with(state, newline);
- state->cursor_preferred_line++;
+ buffer_command_replace_selection_with(buffer, newline);
+ buffer->cursor_preferred_line++;
return;
}
- if (key.string.size && !key.ctrl) { workbench_command_replace_selection_with(state, key.string); return; }
+ if (key.string.size && !key.ctrl) { buffer_command_replace_selection_with(buffer, key.string); return; }
break;
}
break;
@@ -346,25 +347,26 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
}
}
-unsigned int workbench_calculate_draw_pos_offset(Workbench* state) {
+unsigned int buffer_calculate_draw_pos_offset(Workbench* buffer) {
unsigned int offset = 0;
unsigned int line;
- if (state->cursor_preferred_line < 0) {
- state->cursor_preferred_line = 0;
- } else if (state->cursor_preferred_line >= state->number_of_lines_available) {
- state->cursor_preferred_line = state->number_of_lines_available-1;
+ if (buffer->cursor_preferred_line < 0) {
+ buffer->cursor_preferred_line = 0;
+ } else if (buffer->cursor_preferred_line >= buffer->number_of_lines_available) {
+ buffer->cursor_preferred_line = buffer->number_of_lines_available-1;
}
- offset = string_seek_left(state->parse_state->input_buffer, state->cursor, -1, '\n');
- for (line=0; line<state->cursor_preferred_line; line++) {
+ offset = string_seek_left(buffer->parse_state->input_buffer, buffer->cursor, -1, '\n');
+ for (line=0; line<buffer->cursor_preferred_line; line++) {
if (offset > 0) {
offset--;
}
- offset = string_seek_left(state->parse_state->input_buffer, offset, -1, '\n');
+ offset = string_seek_left(buffer->parse_state->input_buffer, offset, -1, '\n');
}
return offset;
}
void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
+ Workbench* buffer = state;
int padding = WORKBENCH_FONT_SIZE / 3;
int i;
int x = padding;
@@ -372,8 +374,8 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
unsigned int line_height = WORKBENCH_FONT_SIZE + padding/2;
Highlight background;
- state->cursor_time_ms += elapsed_ms;
- state->cursor_time_ms %= (CURSOR_BLINK_TIME*2);
+ buffer->cursor_time_ms += elapsed_ms;
+ buffer->cursor_time_ms %= (CURSOR_BLINK_TIME*2);
if (state == NULL) {
return;
}
@@ -381,14 +383,14 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
h /= 2;
}
platform_clear(HighlightBackground_Dark);
- state->number_of_lines_available = h/line_height;
- for (i=workbench_calculate_draw_pos_offset(state); i<state->parse_state->input_buffer->size; i++) {
+ buffer->number_of_lines_available = h/line_height;
+ for (i=buffer_calculate_draw_pos_offset(buffer); i<buffer->parse_state->input_buffer->size; i++) {
if (y > h) {
break;
}
background = Highlight_None;
- if (state->cursor == i && state->cursor_time_ms < CURSOR_BLINK_TIME && state->mode != WorkbenchMode_SEARCH) {
- switch (state->buffer_mode) {
+ if (buffer->cursor == i && buffer->cursor_time_ms < CURSOR_BLINK_TIME && state->mode != WorkbenchMode_SEARCH) {
+ switch (buffer->buffer_mode) {
case Buffer_Mode_NORMAL:
background = HighlightBackground_Cursor;
break;
@@ -397,22 +399,22 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
break;
}
}
- if (state->parse_state->input_buffer->buffer[i] == '\n') {
+ if (buffer->parse_state->input_buffer->buffer[i] == '\n') {
platform_draw_char(
" ",
&x,
&y,
- state->parse_state->highlight[i],
+ buffer->parse_state->highlight[i],
background
);
y += line_height;
x = padding;
} else if (x < w && y < h) {
platform_draw_char(
- &state->parse_state->input_buffer->buffer[i],
+ &buffer->parse_state->input_buffer->buffer[i],
&x,
&y,
- state->parse_state->highlight[i],
+ buffer->parse_state->highlight[i],
background
);
}
commit fce5985ee75d2d308827279ec3d8e3609763f03a
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 15:30:17 2025 +0100
Extract buffer_init
diff --git a/src/workbench.c b/src/workbench.c
index 24c6c72..ec0fbd5 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -122,24 +122,28 @@ WorkbenchAppInit workbench_cli_command_highlight(int argc, char** argv) {
return workbench_app_init_success(NULL);
}
+void buffer_init(char* filename, Language language, Workbench* buffer) {
+ buffer->parse = LANGUAGE_HIGHLIGHERS[language];
+ buffer->arena = arena_create(2<<25);
+ buffer->next_arena = arena_create(2<<25);
+ buffer->parse_state = meta_parse_state_from_file(&buffer->arena, filename);
+ buffer->cursor = 0;
+ buffer->selection_offset = 0;
+ buffer->cursor_time_ms = 0;
+ buffer->cursor_column = 0;
+ buffer->buffer_mode = Buffer_Mode_NORMAL;
+ buffer->filename = filename;
+ buffer->cursor_preferred_line = 0;
+ buffer->number_of_lines_available = 0;
+ buffer->parse(buffer->parse_state);
+}
+
WorkbenchAppInit workbench_cli_command_gui(int argc, char** argv) {
static Workbench state;
WorkbenchArgs args;
args = workbench_parse_args(argc, argv);
- state.parse = LANGUAGE_HIGHLIGHERS[args.language];
- state.arena = arena_create(2<<25);
- state.next_arena = arena_create(2<<25);
- state.parse_state = meta_parse_state_from_file(&state.arena, args.filename);
- state.cursor = 0;
- state.selection_offset = 0;
- state.cursor_time_ms = 0;
- state.cursor_column = 0;
state.mode = WorkbenchMode_BUFFER;
- state.buffer_mode = Buffer_Mode_NORMAL;
- state.filename = args.filename;
- state.cursor_preferred_line = 0;
- state.number_of_lines_available = 0;
- state.parse(state.parse_state);
+ buffer_init(args.filename, args.language, &state);
return workbench_app_init_success(&state);
}
commit e7651cdffedd4807b0a9071b1d79133a90f085fd
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 15:23:13 2025 +0100
Remove now obsolete conditional
diff --git a/src/workbench.c b/src/workbench.c
index 5a9d693..24c6c72 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -127,24 +127,20 @@ WorkbenchAppInit workbench_cli_command_gui(int argc, char** argv) {
WorkbenchArgs args;
args = workbench_parse_args(argc, argv);
state.parse = LANGUAGE_HIGHLIGHERS[args.language];
- if (state.parse) {
- state.arena = arena_create(2<<25);
- state.next_arena = arena_create(2<<25);
- state.parse_state = meta_parse_state_from_file(&state.arena, args.filename);
- state.cursor = 0;
- state.selection_offset = 0;
- state.cursor_time_ms = 0;
- state.cursor_column = 0;
- state.mode = WorkbenchMode_BUFFER;
- state.buffer_mode = Buffer_Mode_NORMAL;
- state.filename = args.filename;
- state.cursor_preferred_line = 0;
- state.number_of_lines_available = 0;
- state.parse(state.parse_state);
- return workbench_app_init_success(&state);
- } else {
- return workbench_app_init_fail();
- }
+ state.arena = arena_create(2<<25);
+ state.next_arena = arena_create(2<<25);
+ state.parse_state = meta_parse_state_from_file(&state.arena, args.filename);
+ state.cursor = 0;
+ state.selection_offset = 0;
+ state.cursor_time_ms = 0;
+ state.cursor_column = 0;
+ state.mode = WorkbenchMode_BUFFER;
+ state.buffer_mode = Buffer_Mode_NORMAL;
+ state.filename = args.filename;
+ state.cursor_preferred_line = 0;
+ state.number_of_lines_available = 0;
+ state.parse(state.parse_state);
+ return workbench_app_init_success(&state);
}
WorkbenchAppInit workbench_init(int argc, char** argv) {
commit f6c382a453b4cc641a442ff2ea9f5b6223c1bff1
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 15:18:47 2025 +0100
Extract buffer module and move a tiny bit of code there
diff --git a/src/buffer.c b/src/buffer.c
new file mode 100644
index 0000000..b7a982c
--- /dev/null
+++ b/src/buffer.c
@@ -0,0 +1,4 @@
+typedef enum {
+ Buffer_Mode_NORMAL,
+ Buffer_Mode_INSERT
+} Buffer_Mode;
diff --git a/src/workbench.c b/src/workbench.c
index e78b423..5a9d693 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -11,14 +11,14 @@
#include "highlight.c"
#include "meta.c"
#include "language.c"
+#include "buffer.c"
static int WORKBENCH_FONT_SIZE = 20;
static int CURSOR_BLINK_TIME = 490;
typedef enum {
- WorkbenchMode_NAVIGATION,
- WorkbenchMode_SEARCH,
- WorkbenchMode_INPUT
+ WorkbenchMode_BUFFER,
+ WorkbenchMode_SEARCH
} WorkbenchMode;
typedef struct {
@@ -30,6 +30,7 @@ typedef struct {
unsigned int cursor_time_ms;
int cursor_column;
WorkbenchMode mode;
+ Buffer_Mode buffer_mode;
MetaParseFunction parse;
char* filename;
int cursor_preferred_line;
@@ -134,7 +135,8 @@ WorkbenchAppInit workbench_cli_command_gui(int argc, char** argv) {
state.selection_offset = 0;
state.cursor_time_ms = 0;
state.cursor_column = 0;
- state.mode = WorkbenchMode_NAVIGATION;
+ state.mode = WorkbenchMode_BUFFER;
+ state.buffer_mode = Buffer_Mode_NORMAL;
state.filename = args.filename;
state.cursor_preferred_line = 0;
state.number_of_lines_available = 0;
@@ -307,35 +309,39 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
newline.size = 1;
newline.buffer = buf;
switch (state->mode) {
- case WorkbenchMode_NAVIGATION:
- if (is_key(key, "h")) { workbench_command_cursor_left(state); return; }
- if (is_key(key, "l")) { workbench_command_cursor_right(state); return; }
- if (is_key(key, "j")) { workbench_command_cursor_down(state); return; }
- if (is_key(key, "k")) { workbench_command_cursor_up(state); return; }
- if (is_key(key, "0")) { workbench_command_cursor_beginning_line(state); return; }
- if (is_key(key, "$")) { workbench_command_cursor_end_line(state); return; }
- if (is_ctrl(key, "f")) { workbench_command_scroll_down(state); return; }
- if (is_ctrl(key, "b")) { workbench_command_scroll_up(state); return; }
- if (is_key(key, "x")) { state->selection_offset = 1; workbench_command_replace_selection_with(state, empty); return; }
- if (is_key(key, "s")) { workbench_command_save(state); return; }
- if (is_key(key, "i")) { state->mode = WorkbenchMode_INPUT; return; }
- if (is_key(key, "/")) { state->mode = WorkbenchMode_SEARCH; return ; }
- break;
- case WorkbenchMode_INPUT:
- if (is_ctrl(key, "[")) {
- state->mode = WorkbenchMode_NAVIGATION;
- workbench_command_cursor_left(state);
- return;
- }
- if (is_special(key, WorkbenchKey_Enter)) {
- workbench_command_replace_selection_with(state, newline);
- state->cursor_preferred_line++;
- return;
+ case WorkbenchMode_BUFFER:
+ switch (state->buffer_mode) {
+ case Buffer_Mode_NORMAL:
+ if (is_key(key, "h")) { workbench_command_cursor_left(state); return; }
+ if (is_key(key, "l")) { workbench_command_cursor_right(state); return; }
+ if (is_key(key, "j")) { workbench_command_cursor_down(state); return; }
+ if (is_key(key, "k")) { workbench_command_cursor_up(state); return; }
+ if (is_key(key, "0")) { workbench_command_cursor_beginning_line(state); return; }
+ if (is_key(key, "$")) { workbench_command_cursor_end_line(state); return; }
+ if (is_ctrl(key, "f")) { workbench_command_scroll_down(state); return; }
+ if (is_ctrl(key, "b")) { workbench_command_scroll_up(state); return; }
+ if (is_key(key, "x")) { state->selection_offset = 1; workbench_command_replace_selection_with(state, empty); return; }
+ if (is_key(key, "s")) { workbench_command_save(state); return; }
+ if (is_key(key, "i")) { state->buffer_mode = Buffer_Mode_INSERT; return; }
+ if (is_key(key, "/")) { state->mode = WorkbenchMode_SEARCH; return ; }
+ break;
+ case Buffer_Mode_INSERT:
+ if (is_ctrl(key, "[")) {
+ state->buffer_mode = Buffer_Mode_NORMAL;
+ workbench_command_cursor_left(state);
+ return;
+ }
+ if (is_special(key, WorkbenchKey_Enter)) {
+ workbench_command_replace_selection_with(state, newline);
+ state->cursor_preferred_line++;
+ return;
+ }
+ if (key.string.size && !key.ctrl) { workbench_command_replace_selection_with(state, key.string); return; }
+ break;
}
- if (key.string.size && !key.ctrl) { workbench_command_replace_selection_with(state, key.string); return; }
break;
case WorkbenchMode_SEARCH:
- if (is_ctrl(key, "[")) { state->mode = WorkbenchMode_NAVIGATION; return; }
+ if (is_ctrl(key, "[")) { state->mode = WorkbenchMode_BUFFER; return; }
break;
}
}
@@ -382,12 +388,11 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
}
background = Highlight_None;
if (state->cursor == i && state->cursor_time_ms < CURSOR_BLINK_TIME && state->mode != WorkbenchMode_SEARCH) {
- switch (state->mode) {
- case WorkbenchMode_NAVIGATION:
+ switch (state->buffer_mode) {
+ case Buffer_Mode_NORMAL:
background = HighlightBackground_Cursor;
break;
- case WorkbenchMode_SEARCH:
- case WorkbenchMode_INPUT:
+ case Buffer_Mode_INSERT:
background = HighlightBackground_Input;
break;
}
commit a46df26489babef1ac5f44efa1d013af3056afd7
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 14:24:28 2025 +0100
Add TODO
diff --git a/README.md b/README.md
index 91e93d9..33cf449 100644
--- a/README.md
+++ b/README.md
@@ -31,6 +31,7 @@
## Editor
+* Implement buffer abstraction that can be used for search box as well
* Handle cursor at end
* Support for undo/redo
* Fun "character explode" animation when saving
commit bee237514fcf21d8a85b0dbf58b2dc3782c125ea
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 14:04:58 2025 +0100
Flesh out rendering of search
diff --git a/src/workbench.c b/src/workbench.c
index ed42982..e78b423 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -371,6 +371,9 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
if (state == NULL) {
return;
}
+ if (state->mode == WorkbenchMode_SEARCH) {
+ h /= 2;
+ }
platform_clear(HighlightBackground_Dark);
state->number_of_lines_available = h/line_height;
for (i=workbench_calculate_draw_pos_offset(state); i<state->parse_state->input_buffer->size; i++) {
@@ -378,7 +381,7 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
break;
}
background = Highlight_None;
- if (state->cursor == i && state->cursor_time_ms < CURSOR_BLINK_TIME) {
+ if (state->cursor == i && state->cursor_time_ms < CURSOR_BLINK_TIME && state->mode != WorkbenchMode_SEARCH) {
switch (state->mode) {
case WorkbenchMode_NAVIGATION:
background = HighlightBackground_Cursor;
@@ -409,4 +412,11 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
);
}
}
+ if (state->mode == WorkbenchMode_SEARCH) {
+ char* t = "> ";
+ x = 0;
+ y = h+1;
+ platform_draw_char(&t[0], &x, &y, Highlight_Escape, HighlightBackground_None);
+ platform_draw_char(&t[1], &x, &y, Highlight_Escape, HighlightBackground_Input);
+ }
}
commit b89c1f4fe9782b7084b5f139577aced8af29d9cb
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 13:29:00 2025 +0100
Use ctrl+f/b to scroll (as in Vim)
diff --git a/src/workbench.c b/src/workbench.c
index 0ce5e5e..ed42982 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -314,8 +314,8 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
if (is_key(key, "k")) { workbench_command_cursor_up(state); return; }
if (is_key(key, "0")) { workbench_command_cursor_beginning_line(state); return; }
if (is_key(key, "$")) { workbench_command_cursor_end_line(state); return; }
- if (is_key(key, "f")) { workbench_command_scroll_down(state); return; }
- if (is_key(key, "b")) { workbench_command_scroll_up(state); return; }
+ if (is_ctrl(key, "f")) { workbench_command_scroll_down(state); return; }
+ if (is_ctrl(key, "b")) { workbench_command_scroll_up(state); return; }
if (is_key(key, "x")) { state->selection_offset = 1; workbench_command_replace_selection_with(state, empty); return; }
if (is_key(key, "s")) { workbench_command_save(state); return; }
if (is_key(key, "i")) { state->mode = WorkbenchMode_INPUT; return; }
commit dcd2f6522ad6a9446171c3bc8d722386c85b0318
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 13:23:23 2025 +0100
Cursor should be moved one back when returning to normal mode (that is how Vim works)
diff --git a/src/workbench.c b/src/workbench.c
index 480c10a..0ce5e5e 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -322,7 +322,11 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
if (is_key(key, "/")) { state->mode = WorkbenchMode_SEARCH; return ; }
break;
case WorkbenchMode_INPUT:
- if (is_ctrl(key, "[")) { state->mode = WorkbenchMode_NAVIGATION; return; }
+ if (is_ctrl(key, "[")) {
+ state->mode = WorkbenchMode_NAVIGATION;
+ workbench_command_cursor_left(state);
+ return;
+ }
if (is_special(key, WorkbenchKey_Enter)) {
workbench_command_replace_selection_with(state, newline);
state->cursor_preferred_line++;
commit 10930336ed4b2a076c488e5f9fdabc93ab94463e
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 13:20:49 2025 +0100
Add search mode
diff --git a/src/workbench.c b/src/workbench.c
index 9e7d273..480c10a 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -17,6 +17,7 @@ static int CURSOR_BLINK_TIME = 490;
typedef enum {
WorkbenchMode_NAVIGATION,
+ WorkbenchMode_SEARCH,
WorkbenchMode_INPUT
} WorkbenchMode;
@@ -318,6 +319,7 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
if (is_key(key, "x")) { state->selection_offset = 1; workbench_command_replace_selection_with(state, empty); return; }
if (is_key(key, "s")) { workbench_command_save(state); return; }
if (is_key(key, "i")) { state->mode = WorkbenchMode_INPUT; return; }
+ if (is_key(key, "/")) { state->mode = WorkbenchMode_SEARCH; return ; }
break;
case WorkbenchMode_INPUT:
if (is_ctrl(key, "[")) { state->mode = WorkbenchMode_NAVIGATION; return; }
@@ -328,6 +330,9 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
}
if (key.string.size && !key.ctrl) { workbench_command_replace_selection_with(state, key.string); return; }
break;
+ case WorkbenchMode_SEARCH:
+ if (is_ctrl(key, "[")) { state->mode = WorkbenchMode_NAVIGATION; return; }
+ break;
}
}
@@ -374,6 +379,7 @@ void workbench_render(Workbench* state, int w, int h, unsigned int elapsed_ms) {
case WorkbenchMode_NAVIGATION:
background = HighlightBackground_Cursor;
break;
+ case WorkbenchMode_SEARCH:
case WorkbenchMode_INPUT:
background = HighlightBackground_Input;
break;
commit 1180971e88230913a196c4a9d99204a31131f4ce
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 13:17:02 2025 +0100
Support ctrl key and change "esc" key
diff --git a/src/workbench.c b/src/workbench.c
index 2eec993..9e7d273 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -43,6 +43,7 @@ typedef enum {
typedef struct {
String string;
WorkbenchKey key;
+ int ctrl;
} WorkbenchKeyEvent;
void platform_clear(HighlightBackground highlight);
@@ -286,7 +287,11 @@ void workbench_command_save(Workbench* state) {
}
int is_key(WorkbenchKeyEvent key, char* name) {
- return string_eqc(key.string, name);
+ return !key.ctrl && string_eqc(key.string, name);
+}
+
+int is_ctrl(WorkbenchKeyEvent key, char* name) {
+ return key.ctrl && string_eqc(key.string, name);
}
int is_special(WorkbenchKeyEvent event, WorkbenchKey key) {
@@ -315,13 +320,13 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
if (is_key(key, "i")) { state->mode = WorkbenchMode_INPUT; return; }
break;
case WorkbenchMode_INPUT:
- if (is_key(key, "`")) { state->mode = WorkbenchMode_NAVIGATION; return; }
+ if (is_ctrl(key, "[")) { state->mode = WorkbenchMode_NAVIGATION; return; }
if (is_special(key, WorkbenchKey_Enter)) {
workbench_command_replace_selection_with(state, newline);
state->cursor_preferred_line++;
return;
}
- if (key.string.size) { workbench_command_replace_selection_with(state, key.string); return; }
+ if (key.string.size && !key.ctrl) { workbench_command_replace_selection_with(state, key.string); return; }
break;
}
}
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
index 238701e..5b64b5f 100644
--- a/src/workbench_sdl.c
+++ b/src/workbench_sdl.c
@@ -194,9 +194,10 @@ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) {
}
key_code = SDL_GetKeyFromScancode(
event->key.scancode,
- event->key.mod,
+ event->key.mod & ~SDL_KMOD_CTRL,
false
);
+ key.ctrl = event->key.mod & SDL_KMOD_CTRL;
if (key_code >= 32 && key_code < 0x7f) {
key.string.size = 1;
buffer[0] = key_code;
commit 6aa53c0f7d49088737b8f2ee601d9dfe2e3f8a75
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 12:57:28 2025 +0100
Changing selection should reset cursor
diff --git a/src/workbench.c b/src/workbench.c
index 97c025b..2eec993 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -261,6 +261,7 @@ String* workbench_replace_selection(Workbench* state, Arena* arena, String strin
}
state->cursor = selection_start + string.size;
state->selection_offset = 0;
+ state->cursor_time_ms = 0;
return new_string;
}
commit c352f34e79a6bbefbe5b597ddb65d382b17e7122
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 12:48:09 2025 +0100
Allow inserting newlines
diff --git a/src/workbench.c b/src/workbench.c
index b8cc5d6..97c025b 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -293,9 +293,12 @@ int is_special(WorkbenchKeyEvent event, WorkbenchKey key) {
}
void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
- String empty;
+ String empty, newline;
+ char buf[1] = {'\n'};
empty.size = 0;
empty.buffer = NULL;
+ newline.size = 1;
+ newline.buffer = buf;
switch (state->mode) {
case WorkbenchMode_NAVIGATION:
if (is_key(key, "h")) { workbench_command_cursor_left(state); return; }
@@ -312,6 +315,11 @@ void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
break;
case WorkbenchMode_INPUT:
if (is_key(key, "`")) { state->mode = WorkbenchMode_NAVIGATION; return; }
+ if (is_special(key, WorkbenchKey_Enter)) {
+ workbench_command_replace_selection_with(state, newline);
+ state->cursor_preferred_line++;
+ return;
+ }
if (key.string.size) { workbench_command_replace_selection_with(state, key.string); return; }
break;
}
commit 6cb3ebfdf680cc9ee48c7c6b26ce5058855a056e
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 12:41:08 2025 +0100
Towards a better input system (that inserts only printable ascii characters)
diff --git a/README.md b/README.md
index df1bb33..91e93d9 100644
--- a/README.md
+++ b/README.md
@@ -33,7 +33,6 @@
* Handle cursor at end
* Support for undo/redo
-* Only insert "printable" characters
* Fun "character explode" animation when saving
## Highlighting
diff --git a/src/workbench.c b/src/workbench.c
index 8c232f0..b8cc5d6 100644
--- a/src/workbench.c
+++ b/src/workbench.c
@@ -35,6 +35,16 @@ typedef struct {
unsigned int number_of_lines_available;
} Workbench;
+typedef enum {
+ WorkbenchKey_Enter,
+ WorkbenchKey_Other
+} WorkbenchKey;
+
+typedef struct {
+ String string;
+ WorkbenchKey key;
+} WorkbenchKeyEvent;
+
void platform_clear(HighlightBackground highlight);
void platform_draw_char(char* c, int* x, int* y, Highlight highlight, HighlightBackground background);
@@ -274,60 +284,35 @@ void workbench_command_save(Workbench* state) {
io_write_file(state->filename, *state->parse_state->input_buffer);
}
-void workbench_key_down(Workbench* state, char key) {
- String string;
+int is_key(WorkbenchKeyEvent key, char* name) {
+ return string_eqc(key.string, name);
+}
+
+int is_special(WorkbenchKeyEvent event, WorkbenchKey key) {
+ return event.key == key;
+}
+
+void workbench_key_down(Workbench* state, WorkbenchKeyEvent key) {
+ String empty;
+ empty.size = 0;
+ empty.buffer = NULL;
switch (state->mode) {
case WorkbenchMode_NAVIGATION:
- switch (key) {
- case 'h':
- workbench_command_cursor_left(state);
- break;
- case 'l':
- workbench_command_cursor_right(state);
- break;
- case 'j':
- workbench_command_cursor_down(state);
- break;
- case 'k':
- workbench_command_cursor_up(state);
- break;
- case '0':
- workbench_command_cursor_beginning_line(state);
- break;
- case '$':
- workbench_command_cursor_end_line(state);
- break;
- case 'f':
- workbench_command_scroll_down(state);
- break;
- case 'b':
- workbench_command_scroll_up(state);
- break;
- case 'x':
- string.size = 0;
- string.buffer = NULL;
- state->selection_offset = 1;
- workbench_command_replace_selection_with(state, string);
- break;
- case 's':
- workbench_command_save(state);
- break;
- case 'i':
- state->mode = WorkbenchMode_INPUT;
- break;
- }
+ if (is_key(key, "h")) { workbench_command_cursor_left(state); return; }
+ if (is_key(key, "l")) { workbench_command_cursor_right(state); return; }
+ if (is_key(key, "j")) { workbench_command_cursor_down(state); return; }
+ if (is_key(key, "k")) { workbench_command_cursor_up(state); return; }
+ if (is_key(key, "0")) { workbench_command_cursor_beginning_line(state); return; }
+ if (is_key(key, "$")) { workbench_command_cursor_end_line(state); return; }
+ if (is_key(key, "f")) { workbench_command_scroll_down(state); return; }
+ if (is_key(key, "b")) { workbench_command_scroll_up(state); return; }
+ if (is_key(key, "x")) { state->selection_offset = 1; workbench_command_replace_selection_with(state, empty); return; }
+ if (is_key(key, "s")) { workbench_command_save(state); return; }
+ if (is_key(key, "i")) { state->mode = WorkbenchMode_INPUT; return; }
break;
case WorkbenchMode_INPUT:
- switch (key) {
- case '`':
- state->mode = WorkbenchMode_NAVIGATION;
- break;
- default:
- string.size = 1;
- string.buffer = &key;
- workbench_command_replace_selection_with(state, string);
- break;
- }
+ if (is_key(key, "`")) { state->mode = WorkbenchMode_NAVIGATION; return; }
+ if (key.string.size) { workbench_command_replace_selection_with(state, key.string); return; }
break;
}
}
diff --git a/src/workbench_sdl.c b/src/workbench_sdl.c
index b55a632..238701e 100644
--- a/src/workbench_sdl.c
+++ b/src/workbench_sdl.c
@@ -175,19 +175,36 @@ SDL_AppResult SDL_AppIterate(void *appstate) {
SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) {
Uint64 start, end;
+ WorkbenchKeyEvent key;
+ SDL_Keycode key_code;
+ char buffer[4];
+ key.string.buffer = buffer;
if (event->type == SDL_EVENT_QUIT) {
return SDL_APP_SUCCESS;
} else {
if (event->type == SDL_EVENT_KEY_DOWN) {
start = SDL_GetTicks();
- workbench_key_down(
- appstate,
- SDL_GetKeyFromScancode(
- event->key.scancode,
- event->key.mod,
- false
- )
+ switch (event->key.key) {
+ case SDLK_RETURN:
+ key.key = WorkbenchKey_Enter;
+ break;
+ default:
+ key.key = WorkbenchKey_Other;
+ break;
+ }
+ key_code = SDL_GetKeyFromScancode(
+ event->key.scancode,
+ event->key.mod,
+ false
);
+ if (key_code >= 32 && key_code < 0x7f) {
+ key.string.size = 1;
+ buffer[0] = key_code;
+ } else {
+ key.string.size = 0;
+ buffer[0] = '\0';
+ }
+ workbench_key_down(appstate, key);
end = SDL_GetTicks();
duration_ms_key_down = end - start;
}
commit c455316a2411c67d5079aee3cb2ad92c353ac033
Author: Rickard Lindberg <rickard@rickardlindberg.me>
Date: Thu Dec 25 09:32:57 2025 +0100
Computer Enhance Homework listing_0056_estimating_cycles
diff --git a/examples/computerenhance_simulator/asmtoc.meta b/examples/computerenhance_simulator/asmtoc.meta
index 4862dc8..f319f32 100644
--- a/examples/computerenhance_simulator/asmtoc.meta
+++ b/examples/computerenhance_simulator/asmtoc.meta
@@ -63,6 +63,16 @@ src =
program[pc].src_location.type = MEMORY;
program[pc].src_location.constant = $x;
}}
+ | 'word [' register:x ' + ' number:y ']' -> {C{
+ program[pc].src_location.type = MEMORY_OFFSET;
+ program[pc].src_location.reg = $x;
+ program[pc].src_location.constant = $y;
+ }}
+ | 'word [' register:x ']' -> {C{
+ program[pc].src_location.type = MEMORY_OFFSET;
+ program[pc].src_location.reg = $x;
+ program[pc].src_location.constant = 0;
+ }}
| 'word [bp + ' register:x ']' -> {C{
program[pc].src_location.type = MEMORY_BP_OFFSET;
program[pc].src_location.reg = $x;
@@ -79,6 +89,11 @@ dest =
program[pc].dest_location.reg = $x;
program[pc].dest_location.constant = $y;
}}
+ | 'word [' register:x ']' -> {C{
+ program[pc].dest_location.type = MEMORY_OFFSET;
+ program[pc].dest_location.reg = $x;
+ program[pc].dest_location.constant = 0;
+ }}
| 'word [bp + ' register:x ']' -> {C{
program[pc].dest_location.type = MEMORY_BP_OFFSET;
program[pc].dest_location.reg = $x;
diff --git a/examples/computerenhance_simulator/listing_0056_estimating_cycles b/examples/computerenhance_simulator/listing_0056_estimating_cycles
new file mode 100644
index 0000000..bb15fc7
Binary files /dev/null and b/examples/computerenhance_simulator/listing_0056_estimating_cycles differ
diff --git a/examples/computerenhance_simulator/listing_0056_estimating_cycles.asm b/examples/computerenhance_simulator/listing_0056_estimating_cycles.asm
new file mode 100644
index 0000000..e11c93d
--- /dev/null
+++ b/examples/computerenhance_simulator/listing_0056_estimating_cycles.asm
@@ -0,0 +1,41 @@
+; ========================================================================
+;
+; (C) Copyright 2023 by Molly Rocket, Inc., All Rights Reserved.
+;
+; This software is provided 'as-is', without any express or implied
+; warranty. In no event will the authors be held liable for any damages
+; arising from the use of this software.
+;
+; Please see https://computerenhance.com for further information
+;
+; ========================================================================
+
+; ========================================================================
+; LISTING 56
+; ========================================================================
+
+bits 16
+
+mov bx, 1000
+mov bp, 2000
+mov si, 3000
+mov di, 4000
+
+mov cx, bx
+mov dx, 12
+
+mov dx, word [1000]
+
+mov cx, word [bx]
+mov cx, word [bp]
+mov word [si], cx
+mov word [di], cx
+
+mov cx, word [bx + 1000]
+mov cx, word [bp + 1000]
+mov word [si + 1000], cx
+mov word [di + 1000], cx
+
+add cx, dx
+add word [di + 1000], cx
+add dx, 50
diff --git a/examples/computerenhance_simulator/listing_0056_estimating_cycles.txt b/examples/computerenhance_simulator/listing_0056_estimating_cycles.txt
new file mode 100644
index 0000000..025f325
--- /dev/null
+++ b/examples/computerenhance_simulator/listing_0056_estimating_cycles.txt
@@ -0,0 +1,25 @@
+mov bx, 1000 ; Clocks: +4 = 4 | bx:0x0->0x3e8
+mov bp, 2000 ; Clocks: +4 = 8 | bp:0x0->0x7d0
+mov si, 3000 ; Clocks: +4 = 12 | si:0x0->0xbb8
+mov di, 4000 ; Clocks: +4 = 16 | di:0x0->0xfa0
+mov cx, bx ; Clocks: +2 = 18 | cx:0x0->0x3e8
+mov dx, 12 ; Clocks: +4 = 22 | dx:0x0->0xc
+mov dx, word [1000] ; Clocks: +14 = 36 (8 + 6ea) | dx:0xc->0x0
+mov cx, word [bx + 0] ; Clocks: +13 = 49 (8 + 5ea) | cx:0x3e8->0x0
+mov cx, word [bp + 0] ; Clocks: +13 = 62 (8 + 5ea) | cx:0x0->0x0
+mov word [si + 0], cx ; Clocks: +14 = 76 (9 + 5ea) |
+mov word [di + 0], cx ; Clocks: +14 = 90 (9 + 5ea) |
+mov cx, word [bx + 1000] ; Clocks: +17 = 107 (8 + 9ea) | cx:0x0->0x0
+mov cx, word [bp + 1000] ; Clocks: +17 = 124 (8 + 9ea) | cx:0x0->0x0
+mov word [si + 1000], cx ; Clocks: +18 = 142 (9 + 9ea) |
+mov word [di + 1000], cx ; Clocks: +18 = 160 (9 + 9ea) |
+add cx, dx ; Clocks: +3 = 163 | cx:0x0->0x0
+add word [di + 1000], cx ; Clocks: +25 = 188 (16 + 9ea) |
+add dx, 50 ; Clocks: +4 = 192 | dx:0x0->0x32
+
+Final registers:
+ bx: 0x03e8 (1000)
+ dx: 0x0032 (50)
+ bp: 0x07d0 (2000)
+ si: 0x0bb8 (3000)
+ di: 0x0fa0 (4000)
diff --git a/examples/computerenhance_simulator/simulator.c b/examples/computerenhance_simulator/simulator.c
index 2bb1f29..30901e9 100644
--- a/examples/computerenhance_simulator/simulator.c
+++ b/examples/computerenhance_simulator/simulator.c
@@ -45,6 +45,8 @@ static unsigned short memory[1024*1024];
static unsigned short ip;
static unsigned short flags;
static unsigned short flags_next;
+static int should_print_clocks;
+static unsigned short total_clocks;
char* register_to_str(Register r) {
switch (r) {
@@ -70,6 +72,90 @@ char* register_to_str(Register r) {
return "invalid";
}
+int operands_match(Instruction* instruction, LocationType dest, LocationType src) {
+ return instruction->dest_location.type == dest && instruction->src_location.type == src;
+}
+
+unsigned short calculate_clocks_ea(Location* location) {
+ switch (location->type) {
+ case MEMORY:
+ return 6;
+ case MEMORY_OFFSET:
+ if (location->constant) {
+ return 9;
+ } else {
+ return 5;
+ }
+ case MEMORY_BP_OFFSET:
+ case REGISTER:
+ case CONSTANT:
+ case LABEL:
+ case LocationTypeCount:
+ break;
+ }
+ assert(0);
+ return 0;
+}
+
+void print_clocks(Instruction* instruction) {
+ unsigned short clocks_instruction, clocks_ea, clocks;
+ if (should_print_clocks) {
+ clocks_instruction = 0;
+ clocks_ea = 0;
+ switch (instruction->type) {
+ case MOV:
+ if (operands_match(instruction, REGISTER, CONSTANT)) {
+ clocks_instruction = 4;
+ } else if (operands_match(instruction, REGISTER, REGISTER)) {
+ clocks_instruction = 2;
+ } else if (operands_match(instruction, REGISTER, MEMORY)) {
+ clocks_instruction = 8;
+ clocks_ea = calculate_clocks_ea(&instruction->src_location);
+ } else if (operands_match(instruction, REGISTER, MEMORY_OFFSET)) {
+ clocks_instruction = 8;
+ clocks_ea = calculate_clocks_ea(&instruction->src_location);
+ } else if (operands_match(instruction, MEMORY_OFFSET, REGISTER)) {
+ clocks_instruction = 9;
+ clocks_ea = calculate_clocks_ea(&instruction->dest_location);
+ } else {
+ assert(0);
+ }
+ break;
+ case ADD:
+ if (operands_match(instruction, REGISTER, REGISTER)) {
+ clocks_instruction = 3;
+ } else if (operands_match(instruction, MEMORY_OFFSET, REGISTER)) {
+ clocks_instruction = 16;
+ clocks_ea = calculate_clocks_ea(&instruction->dest_location);
+ } else if (operands_match(instruction, REGISTER, CONSTANT)) {
+ clocks_instruction = 4;
+ } else {
+ assert(0);
+ }
+ break;
+ case SUB:
+ assert(0);
+ break;
+ case CMP:
+ assert(0);
+ break;
+ case JNZ:
+ assert(0);
+ break;
+ case TypeCount:
+ assert(0);
+ break;
+ }
+ clocks = clocks_instruction + clocks_ea;
+ total_clocks += clocks;
+ printf(" Clocks: +%d = %d", clocks, total_clocks);
+ if (clocks_ea) {
+ printf(" (%d + %dea)", clocks_instruction, clocks_ea);
+ }
+ printf(" |");
+ }
+}
+
void print_registers() {
int i;
printf("\n");
@@ -213,6 +299,7 @@ void location_print(Location location) {
int main(int argc, char** argv) {
int old_value, new_value;
+ should_print_clocks = (argc == 2 && argv[1][0] == 'C');
load();
while (ip < INSTRUCTION_COUNT) {
switch (program[ip].type) {
@@ -225,6 +312,7 @@ int main(int argc, char** argv) {
printf(", ");
location_print(program[ip].src_location);
printf(" ;");
+ print_clocks(&program[ip]);
if (program[ip].dest_location.type == REGISTER) {
printf(" ");
location_print(program[ip].dest_location);
@@ -240,9 +328,13 @@ int main(int argc, char** argv) {
location_print(program[ip].dest_location);
printf(", ");
location_print(program[ip].src_location);
- printf(" ; ");
- location_print(program[ip].dest_location);
- printf(":0x%x->0x%x", old_value, new_value);
+ printf(" ;");
+ print_clocks(&program[ip]);
+ if (program[ip].dest_location.type == REGISTER) {
+ printf(" ");
+ location_print(program[ip].dest_location);
+ printf(":0x%x->0x%x", old_value, new_value);
+ }
ip++;
break;
case SUB:
@@ -253,7 +345,9 @@ int main(int argc, char** argv) {
location_print(program[ip].dest_location);
printf(", ");
location_print(program[ip].src_location);
- printf(" ; ");
+ printf(" ;");
+ print_clocks(&program[ip]);
+ printf(" ");
location_print(program[ip].dest_location);
printf(":0x%x->0x%x", old_value, new_value);
set_parity_flag(new_value);
@@ -269,6 +363,7 @@ int main(int argc, char** argv) {
printf(", ");
location_print(program[ip].src_location);
printf(" ;");
+ print_clocks(&program[ip]);
set_parity_flag(new_value);
set_sign_flag(new_value);
set_zero_flag(new_value);
@@ -279,6 +374,7 @@ int main(int argc, char** argv) {
printf("jne ");
location_print(program[ip].dest_location);
printf(" ;");
+ print_clocks(&program[ip]);
if (flags & ZERO) {
ip++;
} else {
diff --git a/make.sh b/make.sh
index 9e8dc30..8822c6e 100755
--- a/make.sh
+++ b/make.sh
@@ -79,6 +79,7 @@ example_computerenhance_simulator() {
simulate_listing listing_0051_memory_mov
simulate_listing listing_0052_memory_add_loop
simulate_listing listing_0054_draw_rectangle dump
+ simulate_listing listing_0056_estimating_cycles clocks
}
simulate_listing() {
@@ -87,6 +88,9 @@ simulate_listing() {
c_compile examples/computerenhance_simulator/simulator.c out/simulator
if [ "$2" = "dump" ]; then
out/simulator D >out/execution.txt
+ elif [ "$2" = "clocks" ]; then
+ out/simulator C >out/execution.txt
+ test_same examples/computerenhance_simulator/$1.txt out/execution.txt
else
out/simulator >out/execution.txt
test_same examples/computerenhance_simulator/$1.txt out/execution.txt