diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ast-lexer.c | 1 | ||||
-rw-r--r-- | src/ast-parser.y | 11 | ||||
-rw-r--r-- | src/ast.c | 1 | ||||
-rw-r--r-- | src/ast.h | 1 | ||||
-rw-r--r-- | src/binary-writer-spec.c | 7 | ||||
-rw-r--r-- | src/prebuilt/ast-lexer-gen.c | 8830 | ||||
-rw-r--r-- | src/prebuilt/ast-parser-gen.c | 1242 | ||||
-rw-r--r-- | src/prebuilt/ast-parser-gen.h | 7 | ||||
-rw-r--r-- | src/resolve-names.c | 1 | ||||
-rw-r--r-- | src/tools/wasm-interp.c | 32 | ||||
-rw-r--r-- | src/validator.c | 1 |
11 files changed, 4737 insertions, 5397 deletions
diff --git a/src/ast-lexer.c b/src/ast-lexer.c index aade8515..ae4f5f38 100644 --- a/src/ast-lexer.c +++ b/src/ast-lexer.c @@ -441,6 +441,7 @@ int wasm_ast_lexer_lex(WASM_AST_PARSER_STYPE* lval, <i> "assert_return" { RETURN(ASSERT_RETURN); } <i> "assert_return_nan" { RETURN(ASSERT_RETURN_NAN); } <i> "assert_trap" { RETURN(ASSERT_TRAP); } + <i> "assert_exhaustion" { RETURN(ASSERT_EXHAUSTION); } <i> "input" { RETURN(INPUT); } <i> "output" { RETURN(OUTPUT); } <i> name { TEXT; RETURN(VAR); } diff --git a/src/ast-parser.y b/src/ast-parser.y index d31143ff..07a5bb20 100644 --- a/src/ast-parser.y +++ b/src/ast-parser.y @@ -207,7 +207,7 @@ static void on_read_binary_error(uint32_t offset, const char* error, %token MODULE TABLE ELEM MEMORY DATA OFFSET IMPORT EXPORT %token REGISTER INVOKE GET %token ASSERT_MALFORMED ASSERT_INVALID ASSERT_UNLINKABLE -%token ASSERT_RETURN ASSERT_RETURN_NAN ASSERT_TRAP +%token ASSERT_RETURN ASSERT_RETURN_NAN ASSERT_TRAP ASSERT_EXHAUSTION %token INPUT OUTPUT %token EOF 0 "EOF" @@ -1095,7 +1095,7 @@ export : ; inline_export_opt : - /* empty */ { + /* empty */ { WASM_ZERO_MEMORY($$); $$.has_export = WASM_FALSE; } @@ -1391,6 +1391,12 @@ assertion : $$->assert_trap.action = $3; $$->assert_trap.text = $4; } + | LPAR ASSERT_EXHAUSTION action quoted_text RPAR { + $$ = new_command(parser->allocator); + $$->type = WASM_COMMAND_TYPE_ASSERT_EXHAUSTION; + $$->assert_trap.action = $3; + $$->assert_trap.text = $4; + } ; cmd : @@ -1479,6 +1485,7 @@ script : module_var = &command->assert_return_nan.action.module_var; goto has_module_var; case WASM_COMMAND_TYPE_ASSERT_TRAP: + case WASM_COMMAND_TYPE_ASSERT_EXHAUSTION: module_var = &command->assert_trap.action.module_var; goto has_module_var; case WASM_COMMAND_TYPE_ACTION: @@ -560,6 +560,7 @@ void wasm_destroy_command(WasmAllocator* allocator, WasmCommand* command) { wasm_destroy_action(allocator, &command->assert_return_nan.action); break; case WASM_COMMAND_TYPE_ASSERT_TRAP: + case WASM_COMMAND_TYPE_ASSERT_EXHAUSTION: wasm_destroy_action(allocator, &command->assert_trap.action); wasm_destroy_string_slice(allocator, &command->assert_trap.text); break; @@ -335,6 +335,7 @@ typedef enum WasmCommandType { WASM_COMMAND_TYPE_ASSERT_RETURN, WASM_COMMAND_TYPE_ASSERT_RETURN_NAN, WASM_COMMAND_TYPE_ASSERT_TRAP, + WASM_COMMAND_TYPE_ASSERT_EXHAUSTION, WASM_NUM_COMMAND_TYPES, } WasmCommandType; diff --git a/src/binary-writer-spec.c b/src/binary-writer-spec.c index 49b9ad60..909b709b 100644 --- a/src/binary-writer-spec.c +++ b/src/binary-writer-spec.c @@ -144,6 +144,7 @@ static void write_command_type(Context* ctx, const WasmCommand* command) { "assert_return", "assert_return_nan", "assert_trap", + "assert_exhaustion", }; WASM_STATIC_ASSERT(WASM_ARRAY_SIZE(s_command_names) == WASM_NUM_COMMAND_TYPES); @@ -452,6 +453,12 @@ static void write_commands(Context* ctx, WasmScript* script) { write_escaped_string_slice(ctx, command->assert_trap.text); break; + case WASM_COMMAND_TYPE_ASSERT_EXHAUSTION: + write_location(ctx, &command->assert_trap.action.loc); + write_separator(ctx); + write_action(ctx, &command->assert_trap.action); + break; + case WASM_NUM_COMMAND_TYPES: assert(0); break; diff --git a/src/prebuilt/ast-lexer-gen.c b/src/prebuilt/ast-lexer-gen.c index 13810837..f07359bf 100644 --- a/src/prebuilt/ast-lexer-gen.c +++ b/src/prebuilt/ast-lexer-gen.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.16 */ +/* Generated by re2c 0.13.5 */ #line 1 "src/ast-lexer.c" /* * Copyright 2016 WebAssembly Community Group participants @@ -201,64 +201,66 @@ int wasm_ast_lexer_lex(WASM_AST_PARSER_STYPE* lval, } /* *********************************** */ YYCOND_BAD_TEXT: + if ((lexer->limit - lexer->cursor) < 3) FILL(3); yych = *lexer->cursor; if (yych <= '!') { if (yych <= '\t') { - if (yych >= 0x01) goto yy5; + if (yych >= 0x01) goto yy4; } else { - if (yych <= '\n') goto yy7; - if (yych <= 0x1F) goto yy5; - goto yy9; + if (yych <= '\n') goto yy6; + if (yych <= 0x1F) goto yy4; + goto yy8; } } else { if (yych <= '\\') { - if (yych <= '"') goto yy11; - if (yych <= '[') goto yy9; - goto yy13; + if (yych <= '"') goto yy10; + if (yych <= '[') goto yy8; + goto yy12; } else { - if (yych == 0x7F) goto yy5; - goto yy9; + if (yych == 0x7F) goto yy4; + goto yy8; } } ++lexer->cursor; #line 235 "src/ast-lexer.c" { ERROR("unexpected EOF"); RETURN(EOF); } -#line 228 "src/prebuilt/ast-lexer-gen.c" -yy5: +#line 229 "src/prebuilt/ast-lexer-gen.c" +yy4: ++lexer->cursor; -yy6: +yy5: #line 236 "src/ast-lexer.c" { ERROR("illegal character in string"); continue; } -#line 234 "src/prebuilt/ast-lexer-gen.c" -yy7: +#line 235 "src/prebuilt/ast-lexer-gen.c" +yy6: ++lexer->cursor; BEGIN(YYCOND_i); #line 231 "src/ast-lexer.c" { ERROR("newline in string"); NEWLINE; continue; } -#line 240 "src/prebuilt/ast-lexer-gen.c" -yy9: +#line 241 "src/prebuilt/ast-lexer-gen.c" +yy8: ++lexer->cursor; +yy9: #line 230 "src/ast-lexer.c" { continue; } -#line 245 "src/prebuilt/ast-lexer-gen.c" -yy11: +#line 247 "src/prebuilt/ast-lexer-gen.c" +yy10: ++lexer->cursor; BEGIN(YYCOND_i); #line 234 "src/ast-lexer.c" { TEXT; RETURN(TEXT); } -#line 251 "src/prebuilt/ast-lexer-gen.c" -yy13: +#line 253 "src/prebuilt/ast-lexer-gen.c" +yy12: yych = *++lexer->cursor; if (yych <= '@') { if (yych <= '"') { - if (yych == '\n') goto yy6; - if (yych >= '"') goto yy9; + if (yych == '\n') goto yy5; + if (yych >= '"') goto yy15; } else { if (yych <= '\'') { - if (yych >= '\'') goto yy9; + if (yych >= '\'') goto yy15; } else { - if (yych <= '/') goto yy14; + if (yych <= '/') goto yy13; if (yych <= '9') goto yy16; } } @@ -267,85 +269,88 @@ yy13: if (yych <= '[') { if (yych <= 'F') goto yy16; } else { - if (yych <= '\\') goto yy9; + if (yych <= '\\') goto yy15; if (yych >= 'a') goto yy16; } } else { if (yych <= 'n') { - if (yych >= 'n') goto yy9; + if (yych >= 'n') goto yy15; } else { - if (yych == 't') goto yy9; + if (yych == 't') goto yy15; } } } -yy14: +yy13: ++lexer->cursor; -yy15: +yy14: #line 232 "src/ast-lexer.c" { ERROR("bad escape \"%.*s\"", (int)yyleng, yytext); continue; } -#line 288 "src/prebuilt/ast-lexer-gen.c" +#line 290 "src/prebuilt/ast-lexer-gen.c" +yy15: + yych = *++lexer->cursor; + goto yy9; yy16: - ++lexer->cursor; - if ((yych = *lexer->cursor) <= '@') { - if (yych <= '/') goto yy15; - if (yych <= '9') goto yy9; - goto yy15; + yych = *++lexer->cursor; + if (yych <= '@') { + if (yych <= '/') goto yy14; + if (yych >= ':') goto yy14; } else { - if (yych <= 'F') goto yy9; - if (yych <= '`') goto yy15; - if (yych <= 'f') goto yy9; - goto yy15; + if (yych <= 'F') goto yy17; + if (yych <= '`') goto yy14; + if (yych >= 'g') goto yy14; } +yy17: + ++lexer->cursor; + yych = *lexer->cursor; + goto yy9; /* *********************************** */ YYCOND_BLOCK_COMMENT: if ((lexer->limit - lexer->cursor) < 2) FILL(2); yych = *lexer->cursor; if (yych <= '\'') { - if (yych <= 0x00) goto yy19; - if (yych == '\n') goto yy23; - goto yy21; + if (yych <= 0x00) goto yy20; + if (yych == '\n') goto yy24; + goto yy22; } else { - if (yych <= '(') goto yy25; - if (yych == ';') goto yy26; - goto yy21; + if (yych <= '(') goto yy26; + if (yych == ';') goto yy27; + goto yy22; } -yy19: +yy20: ++lexer->cursor; -#line 457 "src/ast-lexer.c" +#line 458 "src/ast-lexer.c" { ERROR("unexpected EOF"); RETURN(EOF); } -#line 318 "src/prebuilt/ast-lexer-gen.c" -yy21: - ++lexer->cursor; +#line 325 "src/prebuilt/ast-lexer-gen.c" yy22: -#line 458 "src/ast-lexer.c" - { continue; } -#line 324 "src/prebuilt/ast-lexer-gen.c" + ++lexer->cursor; yy23: +#line 459 "src/ast-lexer.c" + { continue; } +#line 331 "src/prebuilt/ast-lexer-gen.c" +yy24: ++lexer->cursor; -#line 456 "src/ast-lexer.c" +#line 457 "src/ast-lexer.c" { NEWLINE; continue; } -#line 329 "src/prebuilt/ast-lexer-gen.c" -yy25: - yych = *++lexer->cursor; - if (yych == ';') goto yy27; - goto yy22; +#line 336 "src/prebuilt/ast-lexer-gen.c" yy26: yych = *++lexer->cursor; - if (yych == ')') goto yy29; - goto yy22; + if (yych == ';') goto yy30; + goto yy23; yy27: + yych = *++lexer->cursor; + if (yych != ')') goto yy23; ++lexer->cursor; -#line 452 "src/ast-lexer.c" - { COMMENT_NESTING++; continue; } -#line 342 "src/prebuilt/ast-lexer-gen.c" -yy29: - ++lexer->cursor; -#line 453 "src/ast-lexer.c" +#line 454 "src/ast-lexer.c" { if (--COMMENT_NESTING == 0) BEGIN(YYCOND_INIT); continue; } #line 349 "src/prebuilt/ast-lexer-gen.c" +yy30: + ++lexer->cursor; +#line 453 "src/ast-lexer.c" + { COMMENT_NESTING++; continue; } +#line 354 "src/prebuilt/ast-lexer-gen.c" /* *********************************** */ YYCOND_LINE_COMMENT: { @@ -383,51 +388,57 @@ YYCOND_LINE_COMMENT: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - if (lexer->limit <= lexer->cursor) FILL(1); + if ((lexer->limit - lexer->cursor) < 2) FILL(2); yych = *lexer->cursor; - if (yybm[0+yych] & 128) { - goto yy34; - } + if (yych <= 0x00) goto yy35; + if (yych == '\n') goto yy37; goto yy36; -yy33: -#line 450 "src/ast-lexer.c" - { continue; } -#line 396 "src/prebuilt/ast-lexer-gen.c" yy34: +#line 451 "src/ast-lexer.c" + { continue; } +#line 400 "src/prebuilt/ast-lexer-gen.c" +yy35: + yych = *++lexer->cursor; + goto yy40; +yy36: + yych = *++lexer->cursor; + goto yy40; +yy37: + ++lexer->cursor; + BEGIN(YYCOND_i); +#line 450 "src/ast-lexer.c" + { NEWLINE; continue; } +#line 412 "src/prebuilt/ast-lexer-gen.c" +yy39: ++lexer->cursor; if (lexer->limit <= lexer->cursor) FILL(1); yych = *lexer->cursor; +yy40: if (yybm[0+yych] & 128) { - goto yy34; + goto yy39; } - goto yy33; -yy36: - ++lexer->cursor; - BEGIN(YYCOND_i); -#line 449 "src/ast-lexer.c" - { NEWLINE; continue; } -#line 410 "src/prebuilt/ast-lexer-gen.c" + goto yy34; } /* *********************************** */ YYCOND_i: { static const unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 0, 0, 0, 8, 0, 0, + 0, 128, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 72, 80, 0, 80, 80, 80, 80, 80, - 64, 64, 80, 80, 64, 80, 80, 80, - 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 80, 64, 80, 80, 80, 80, - 80, 208, 208, 208, 208, 208, 208, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 64, 16, 64, 80, 80, - 80, 208, 208, 208, 208, 208, 208, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 64, 80, 64, 80, 0, + 192, 72, 0, 72, 72, 72, 72, 72, + 64, 64, 72, 72, 64, 72, 72, 72, + 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 72, 64, 72, 72, 72, 72, + 72, 104, 104, 104, 104, 104, 104, 72, + 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 64, 8, 64, 72, 72, + 72, 104, 104, 104, 104, 104, 104, 72, + 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 64, 72, 64, 72, 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, @@ -447,14 +458,12 @@ YYCOND_i: }; if ((lexer->limit - lexer->cursor) < 20) FILL(20); yych = *lexer->cursor; - if (yybm[0+yych] & 8) { - goto yy44; - } switch (yych) { - case 0x00: goto yy40; + case 0x00: goto yy43; case '\t': - case '\n': goto yy47; - case ' ': + case '\r': + case ' ': goto yy47; + case '\n': goto yy49; case '!': case '#': case '%': @@ -509,14 +518,14 @@ YYCOND_i: case 'y': case 'z': case '|': - case '~': goto yy49; - case '"': goto yy52; - case '$': goto yy54; - case '(': goto yy55; - case ')': goto yy57; + case '~': goto yy51; + case '"': goto yy53; + case '$': goto yy55; + case '(': goto yy56; + case ')': goto yy58; case '+': - case '-': goto yy59; - case '0': goto yy60; + case '-': goto yy60; + case '0': goto yy61; case '1': case '2': case '3': @@ -525,7 +534,7 @@ YYCOND_i: case '6': case '7': case '8': - case '9': goto yy62; + case '9': goto yy63; case ';': goto yy64; case 'a': goto yy65; case 'b': goto yy66; @@ -544,6084 +553,5347 @@ YYCOND_i: case 's': goto yy79; case 't': goto yy80; case 'u': goto yy81; - default: goto yy42; + default: goto yy45; } -yy40: +yy43: ++lexer->cursor; -#line 464 "src/ast-lexer.c" +#line 465 "src/ast-lexer.c" { RETURN(EOF); } -#line 554 "src/prebuilt/ast-lexer-gen.c" -yy42: +#line 563 "src/prebuilt/ast-lexer-gen.c" +yy45: ++lexer->cursor; -yy43: -#line 465 "src/ast-lexer.c" +yy46: +#line 466 "src/ast-lexer.c" { ERROR("unexpected char"); continue; } -#line 560 "src/prebuilt/ast-lexer-gen.c" -yy44: +#line 569 "src/prebuilt/ast-lexer-gen.c" +yy47: ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); yych = *lexer->cursor; - if (yybm[0+yych] & 8) { - goto yy44; - } -#line 460 "src/ast-lexer.c" + goto yy1167; +yy48: +#line 461 "src/ast-lexer.c" { continue; } -#line 570 "src/prebuilt/ast-lexer-gen.c" -yy47: +#line 577 "src/prebuilt/ast-lexer-gen.c" +yy49: ++lexer->cursor; -#line 459 "src/ast-lexer.c" +#line 460 "src/ast-lexer.c" { NEWLINE; continue; } -#line 575 "src/prebuilt/ast-lexer-gen.c" -yy49: +#line 582 "src/prebuilt/ast-lexer-gen.c" +yy51: ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); yych = *lexer->cursor; -yy50: - if (yybm[0+yych] & 16) { - goto yy49; - } -yy51: -#line 461 "src/ast-lexer.c" + goto yy83; +yy52: +#line 462 "src/ast-lexer.c" { ERROR("unexpected token \"%.*s\"", (int)yyleng, yytext); continue; } -#line 589 "src/prebuilt/ast-lexer-gen.c" -yy52: - yych = *(lexer->marker = ++lexer->cursor); - if (yych <= 0x1F) goto yy53; - if (yych != 0x7F) goto yy83; +#line 592 "src/prebuilt/ast-lexer-gen.c" yy53: + yych = *(lexer->marker = ++lexer->cursor); + if (yych <= 0x1F) goto yy54; + if (yych != 0x7F) goto yy1160; +yy54: BEGIN(YYCOND_BAD_TEXT); #line 229 "src/ast-lexer.c" { continue; } -#line 598 "src/prebuilt/ast-lexer-gen.c" -yy54: +#line 601 "src/prebuilt/ast-lexer-gen.c" +yy55: yych = *++lexer->cursor; if (yych <= ';') { if (yych <= '\'') { - if (yych == '!') goto yy88; - if (yych <= '"') goto yy51; - goto yy88; + if (yych == '!') goto yy1156; + if (yych <= '"') goto yy52; + goto yy1156; } else { if (yych <= '+') { - if (yych <= ')') goto yy51; - goto yy88; + if (yych <= ')') goto yy52; + goto yy1156; } else { - if (yych <= ',') goto yy51; - if (yych <= ':') goto yy88; - goto yy51; + if (yych <= ',') goto yy52; + if (yych <= ':') goto yy1156; + goto yy52; } } } else { if (yych <= 'z') { if (yych <= '[') { - if (yych <= 'Z') goto yy88; - goto yy51; + if (yych <= 'Z') goto yy1156; + goto yy52; } else { - if (yych == ']') goto yy51; - goto yy88; + if (yych == ']') goto yy52; + goto yy1156; } } else { if (yych <= '|') { - if (yych <= '{') goto yy51; - goto yy88; + if (yych <= '{') goto yy52; + goto yy1156; } else { - if (yych == '~') goto yy88; - goto yy51; + if (yych == '~') goto yy1156; + goto yy52; } } } -yy55: +yy56: ++lexer->cursor; - if ((yych = *lexer->cursor) == ';') goto yy91; + if ((yych = *lexer->cursor) == ';') goto yy1154; #line 220 "src/ast-lexer.c" { RETURN(LPAR); } -#line 640 "src/prebuilt/ast-lexer-gen.c" -yy57: +#line 643 "src/prebuilt/ast-lexer-gen.c" +yy58: ++lexer->cursor; #line 221 "src/ast-lexer.c" { RETURN(RPAR); } -#line 645 "src/prebuilt/ast-lexer-gen.c" -yy59: +#line 648 "src/prebuilt/ast-lexer-gen.c" +yy60: yych = *++lexer->cursor; if (yych <= 'h') { - if (yych <= '/') goto yy50; - if (yych <= '0') goto yy93; - if (yych <= '9') goto yy95; - goto yy50; + if (yych <= '/') goto yy83; + if (yych <= '0') goto yy1144; + if (yych <= '9') goto yy1146; + goto yy83; } else { - if (yych <= 'i') goto yy97; - if (yych == 'n') goto yy98; - goto yy50; + if (yych <= 'i') goto yy1148; + if (yych == 'n') goto yy1149; + goto yy83; } -yy60: +yy61: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 32) { - goto yy62; - } - if (yych <= 'E') { - if (yych <= '+') { + if ((yych = *lexer->cursor) <= 'D') { + if (yych <= ',') { if (yych <= '"') { - if (yych == '!') goto yy49; + if (yych == '!') goto yy82; } else { - if (yych <= '\'') goto yy49; - if (yych >= '*') goto yy49; + if (yych <= '\'') goto yy82; + if (yych <= ')') goto yy62; + if (yych <= '+') goto yy82; } } else { - if (yych <= '.') { - if (yych <= ',') goto yy61; - if (yych <= '-') goto yy49; - goto yy99; + if (yych <= '/') { + if (yych == '.') goto yy1125; + goto yy82; } else { - if (yych == ';') goto yy61; - if (yych <= 'D') goto yy49; - goto yy102; + if (yych <= '9') goto yy1128; + if (yych != ';') goto yy82; } } } else { - if (yych <= 'w') { - if (yych <= '\\') { - if (yych != '[') goto yy49; + if (yych <= 'e') { + if (yych <= '[') { + if (yych <= 'E') goto yy1130; + if (yych <= 'Z') goto yy82; } else { - if (yych <= ']') goto yy61; - if (yych == 'e') goto yy102; - goto yy49; + if (yych == ']') goto yy62; + if (yych <= 'd') goto yy82; + goto yy1130; } } else { if (yych <= '{') { - if (yych <= 'x') goto yy103; - if (yych <= 'z') goto yy49; + if (yych == 'x') goto yy1134; + if (yych <= 'z') goto yy82; } else { - if (yych == '}') goto yy61; - if (yych <= '~') goto yy49; + if (yych == '}') goto yy62; + if (yych <= '~') goto yy82; } } } -yy61: +yy62: #line 222 "src/ast-lexer.c" { LITERAL(INT); RETURN(NAT); } #line 704 "src/prebuilt/ast-lexer-gen.c" -yy62: - ++lexer->cursor; - if ((lexer->limit - lexer->cursor) < 3) FILL(3); - yych = *lexer->cursor; - if (yybm[0+yych] & 32) { - goto yy62; - } - if (yych <= 'D') { +yy63: + yych = *++lexer->cursor; + if (yych <= ';') { if (yych <= '+') { if (yych <= '"') { - if (yych == '!') goto yy49; - goto yy61; + if (yych == '!') goto yy82; + goto yy62; } else { - if (yych <= '\'') goto yy49; - if (yych <= ')') goto yy61; - goto yy49; + if (yych <= '\'') goto yy82; + if (yych <= ')') goto yy62; + goto yy82; } } else { if (yych <= '.') { - if (yych <= ',') goto yy61; - if (yych <= '-') goto yy49; - goto yy99; + if (yych <= ',') goto yy62; + if (yych <= '-') goto yy82; + goto yy1125; } else { - if (yych == ';') goto yy61; - goto yy49; + if (yych <= '/') goto yy82; + if (yych <= '9') goto yy1128; + if (yych <= ':') goto yy82; + goto yy62; } } } else { if (yych <= 'd') { - if (yych <= '[') { - if (yych <= 'E') goto yy102; - if (yych <= 'Z') goto yy49; - goto yy61; + if (yych <= 'Z') { + if (yych == 'E') goto yy1130; + goto yy82; } else { - if (yych == ']') goto yy61; - goto yy49; + if (yych == '\\') goto yy82; + if (yych <= ']') goto yy62; + goto yy82; } } else { if (yych <= '{') { - if (yych <= 'e') goto yy102; - if (yych <= 'z') goto yy49; - goto yy61; + if (yych <= 'e') goto yy1130; + if (yych <= 'z') goto yy82; + goto yy62; } else { - if (yych == '}') goto yy61; - if (yych <= '~') goto yy49; - goto yy61; + if (yych == '}') goto yy62; + if (yych <= '~') goto yy82; + goto yy62; } } } yy64: yych = *++lexer->cursor; - if (yych == ';') goto yy104; - goto yy43; + if (yych == ';') goto yy1123; + goto yy46; yy65: yych = *++lexer->cursor; if (yych <= 'm') { - if (yych == 'l') goto yy106; - goto yy50; + if (yych == 'l') goto yy1041; + goto yy83; } else { - if (yych <= 'n') goto yy107; - if (yych == 's') goto yy108; - goto yy50; + if (yych <= 'n') goto yy1042; + if (yych == 's') goto yy1043; + goto yy83; } yy66: yych = *++lexer->cursor; - if (yych == 'l') goto yy109; - if (yych == 'r') goto yy110; - goto yy50; + if (yych == 'l') goto yy1024; + if (yych == 'r') goto yy1025; + goto yy83; yy67: yych = *++lexer->cursor; - if (yych == 'a') goto yy112; - if (yych == 'u') goto yy113; - goto yy50; + if (yych == 'a') goto yy990; + if (yych == 'u') goto yy991; + goto yy83; yy68: yych = *++lexer->cursor; - if (yych == 'a') goto yy114; - if (yych == 'r') goto yy115; - goto yy50; + if (yych == 'a') goto yy982; + if (yych == 'r') goto yy983; + goto yy83; yy69: yych = *++lexer->cursor; if (yych <= 'm') { - if (yych == 'l') goto yy116; - goto yy50; + if (yych == 'l') goto yy966; + goto yy83; } else { - if (yych <= 'n') goto yy117; - if (yych == 'x') goto yy118; - goto yy50; + if (yych <= 'n') goto yy967; + if (yych == 'x') goto yy968; + goto yy83; } yy70: yych = *++lexer->cursor; if (yych <= '5') { - if (yych == '3') goto yy119; - goto yy50; + if (yych == '3') goto yy672; + goto yy83; } else { - if (yych <= '6') goto yy120; - if (yych == 'u') goto yy121; - goto yy50; + if (yych <= '6') goto yy673; + if (yych == 'u') goto yy674; + goto yy83; } yy71: yych = *++lexer->cursor; if (yych <= 'k') { - if (yych == 'e') goto yy122; - goto yy50; + if (yych == 'e') goto yy638; + goto yy83; } else { - if (yych <= 'l') goto yy123; - if (yych == 'r') goto yy124; - goto yy50; + if (yych <= 'l') goto yy639; + if (yych == 'r') goto yy640; + goto yy83; } yy72: yych = *++lexer->cursor; if (yych <= 'e') { if (yych <= '3') { - if (yych <= '2') goto yy50; - goto yy125; + if (yych <= '2') goto yy83; + goto yy220; } else { - if (yych == '6') goto yy126; - goto yy50; + if (yych == '6') goto yy221; + goto yy83; } } else { if (yych <= 'l') { - if (yych <= 'f') goto yy127; - goto yy50; + if (yych <= 'f') goto yy222; + goto yy83; } else { - if (yych <= 'm') goto yy129; - if (yych <= 'n') goto yy130; - goto yy50; + if (yych <= 'm') goto yy224; + if (yych <= 'n') goto yy225; + goto yy83; } } yy73: yych = *++lexer->cursor; - if (yych == 'o') goto yy131; - goto yy50; + if (yych == 'o') goto yy212; + goto yy83; yy74: yych = *++lexer->cursor; if (yych <= 'n') { - if (yych == 'e') goto yy132; - goto yy50; + if (yych == 'e') goto yy197; + goto yy83; } else { - if (yych <= 'o') goto yy133; - if (yych == 'u') goto yy134; - goto yy50; + if (yych <= 'o') goto yy198; + if (yych == 'u') goto yy199; + goto yy83; } yy75: yych = *++lexer->cursor; - if (yych == 'a') goto yy135; - if (yych == 'o') goto yy136; - goto yy50; + if (yych == 'a') goto yy186; + if (yych == 'o') goto yy187; + goto yy83; yy76: yych = *++lexer->cursor; - if (yych == 'f') goto yy137; - if (yych == 'u') goto yy138; - goto yy50; + if (yych == 'f') goto yy166; + if (yych == 'u') goto yy167; + goto yy83; yy77: yych = *++lexer->cursor; - if (yych == 'a') goto yy139; - goto yy50; + if (yych == 'a') goto yy161; + goto yy83; yy78: yych = *++lexer->cursor; - if (yych == 'e') goto yy140; - goto yy50; + if (yych == 'e') goto yy143; + goto yy83; yy79: yych = *++lexer->cursor; - if (yych == 'e') goto yy141; - if (yych == 't') goto yy142; - goto yy50; + if (yych == 'e') goto yy117; + if (yych == 't') goto yy118; + goto yy83; yy80: yych = *++lexer->cursor; if (yych <= 'e') { - if (yych == 'a') goto yy143; - if (yych <= 'd') goto yy50; - goto yy144; + if (yych == 'a') goto yy95; + if (yych <= 'd') goto yy83; + goto yy96; } else { if (yych <= 'h') { - if (yych <= 'g') goto yy50; - goto yy145; + if (yych <= 'g') goto yy83; + goto yy97; } else { - if (yych == 'y') goto yy146; - goto yy50; + if (yych == 'y') goto yy98; + goto yy83; } } yy81: yych = *++lexer->cursor; - if (yych == 'n') goto yy147; - goto yy50; + if (yych == 'n') goto yy84; + goto yy83; yy82: ++lexer->cursor; if (lexer->limit <= lexer->cursor) FILL(1); yych = *lexer->cursor; yy83: - if (yybm[0+yych] & 64) { + if (yybm[0+yych] & 8) { goto yy82; } - if (yych <= 0x1F) goto yy84; - if (yych <= '"') goto yy85; - if (yych <= '\\') goto yy87; + goto yy52; yy84: - lexer->cursor = lexer->marker; - goto yy53; -yy85: - ++lexer->cursor; -#line 228 "src/ast-lexer.c" - { TEXT; RETURN(TEXT); } -#line 907 "src/prebuilt/ast-lexer-gen.c" -yy87: - ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= 'F') { - if (yych <= '\'') { - if (yych == '"') goto yy82; - if (yych <= '&') goto yy84; - goto yy82; - } else { - if (yych <= '/') goto yy84; - if (yych <= '9') goto yy148; - if (yych <= '@') goto yy84; - goto yy148; - } - } else { - if (yych <= 'f') { - if (yych == '\\') goto yy82; - if (yych <= '`') goto yy84; - goto yy148; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy84; - goto yy82; - } else { - if (yych == 't') goto yy82; - goto yy84; - } - } - } -yy88: - ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= ';') { - if (yych <= '\'') { - if (yych == '!') goto yy88; - if (yych >= '#') goto yy88; - } else { - if (yych <= '+') { - if (yych >= '*') goto yy88; - } else { - if (yych <= ',') goto yy90; - if (yych <= ':') goto yy88; - } - } - } else { - if (yych <= 'z') { - if (yych <= '[') { - if (yych <= 'Z') goto yy88; - } else { - if (yych != ']') goto yy88; - } - } else { - if (yych <= '|') { - if (yych >= '|') goto yy88; - } else { - if (yych == '~') goto yy88; - } - } - } -yy90: -#line 446 "src/ast-lexer.c" - { TEXT; RETURN(VAR); } -#line 972 "src/prebuilt/ast-lexer-gen.c" -yy91: - ++lexer->cursor; - BEGIN(YYCOND_BLOCK_COMMENT); -#line 451 "src/ast-lexer.c" - { COMMENT_NESTING = 1; continue; } -#line 978 "src/prebuilt/ast-lexer-gen.c" -yy93: + yych = *++lexer->cursor; + if (yych != 'r') goto yy83; + yych = *++lexer->cursor; + if (yych != 'e') goto yy83; + yych = *++lexer->cursor; + if (yych != 'a') goto yy83; + yych = *++lexer->cursor; + if (yych != 'c') goto yy83; + yych = *++lexer->cursor; + if (yych != 'h') goto yy83; + yych = *++lexer->cursor; + if (yych != 'a') goto yy83; + yych = *++lexer->cursor; + if (yych != 'b') goto yy83; + yych = *++lexer->cursor; + if (yych != 'l') goto yy83; + yych = *++lexer->cursor; + if (yych != 'e') goto yy83; ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'D') { - if (yych <= ',') { - if (yych <= '"') { - if (yych == '!') goto yy49; - } else { - if (yych <= '\'') goto yy49; - if (yych <= ')') goto yy94; - if (yych <= '+') goto yy49; - } - } else { - if (yych <= '/') { - if (yych == '.') goto yy99; - goto yy49; - } else { - if (yych <= '9') goto yy95; - if (yych != ';') goto yy49; - } - } - } else { - if (yych <= 'e') { - if (yych <= '[') { - if (yych <= 'E') goto yy102; - if (yych <= 'Z') goto yy49; - } else { - if (yych == ']') goto yy94; - if (yych <= 'd') goto yy49; - goto yy102; - } - } else { - if (yych <= '{') { - if (yych == 'x') goto yy149; - if (yych <= 'z') goto yy49; - } else { - if (yych == '}') goto yy94; - if (yych <= '~') goto yy49; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy94: -#line 223 "src/ast-lexer.c" - { LITERAL(INT); RETURN(INT); } -#line 1022 "src/prebuilt/ast-lexer-gen.c" +#line 417 "src/ast-lexer.c" + { RETURN(UNREACHABLE); } +#line 920 "src/prebuilt/ast-lexer-gen.c" yy95: - ++lexer->cursor; - if ((lexer->limit - lexer->cursor) < 3) FILL(3); - yych = *lexer->cursor; - if (yych <= ';') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy49; - goto yy94; - } else { - if (yych <= '\'') goto yy49; - if (yych <= ')') goto yy94; - goto yy49; - } - } else { - if (yych <= '.') { - if (yych <= ',') goto yy94; - if (yych <= '-') goto yy49; - goto yy99; - } else { - if (yych <= '/') goto yy49; - if (yych <= '9') goto yy95; - if (yych <= ':') goto yy49; - goto yy94; - } - } - } else { - if (yych <= 'd') { - if (yych <= 'Z') { - if (yych == 'E') goto yy102; - goto yy49; - } else { - if (yych == '\\') goto yy49; - if (yych <= ']') goto yy94; - goto yy49; - } - } else { - if (yych <= '{') { - if (yych <= 'e') goto yy102; - if (yych <= 'z') goto yy49; - goto yy94; - } else { - if (yych == '}') goto yy94; - if (yych <= '~') goto yy49; - goto yy94; - } - } - } + yych = *++lexer->cursor; + if (yych == 'b') goto yy113; + goto yy83; +yy96: + yych = *++lexer->cursor; + if (yych == 'e') goto yy105; + goto yy83; yy97: yych = *++lexer->cursor; - if (yych == 'n') goto yy150; - goto yy50; + if (yych == 'e') goto yy102; + goto yy83; yy98: yych = *++lexer->cursor; - if (yych == 'a') goto yy135; - goto yy50; -yy99: + if (yych != 'p') goto yy83; + yych = *++lexer->cursor; + if (yych != 'e') goto yy83; ++lexer->cursor; - if ((lexer->limit - lexer->cursor) < 3) FILL(3); - yych = *lexer->cursor; - if (yych <= 'D') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy49; - } else { - if (yych <= '\'') goto yy49; - if (yych >= '*') goto yy49; - } - } else { - if (yych <= '9') { - if (yych <= ',') goto yy101; - if (yych <= '/') goto yy49; - goto yy99; - } else { - if (yych != ';') goto yy49; - } - } - } else { - if (yych <= 'd') { - if (yych <= '[') { - if (yych <= 'E') goto yy102; - if (yych <= 'Z') goto yy49; - } else { - if (yych != ']') goto yy49; - } - } else { - if (yych <= '{') { - if (yych <= 'e') goto yy102; - if (yych <= 'z') goto yy49; - } else { - if (yych == '}') goto yy101; - if (yych <= '~') goto yy49; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy101: -#line 224 "src/ast-lexer.c" - { LITERAL(FLOAT); RETURN(FLOAT); } -#line 1121 "src/prebuilt/ast-lexer-gen.c" +#line 420 "src/ast-lexer.c" + { RETURN(TYPE); } +#line 944 "src/prebuilt/ast-lexer-gen.c" yy102: yych = *++lexer->cursor; - if (yych <= ',') { - if (yych == '+') goto yy151; - goto yy50; - } else { - if (yych <= '-') goto yy151; - if (yych <= '/') goto yy50; - if (yych <= '9') goto yy152; - goto yy50; + if (yych != 'n') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy103: +#line 247 "src/ast-lexer.c" + { RETURN(THEN); } +#line 954 "src/prebuilt/ast-lexer-gen.c" +yy105: yych = *++lexer->cursor; - if (yybm[0+yych] & 128) { - goto yy154; - } - goto yy50; -yy104: - ++lexer->cursor; - BEGIN(YYCOND_LINE_COMMENT); -#line 448 "src/ast-lexer.c" - { continue; } -#line 1144 "src/prebuilt/ast-lexer-gen.c" -yy106: + if (yych != '_') goto yy83; + yych = *++lexer->cursor; + if (yych != 'l') goto yy83; yych = *++lexer->cursor; - if (yych == 'i') goto yy156; - goto yy50; -yy107: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == 'y') goto yy157; - goto yy50; -yy108: + if (yych != 'c') goto yy83; yych = *++lexer->cursor; - if (yych == 's') goto yy158; - goto yy50; -yy109: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy159; - goto yy50; -yy110: + if (yych != 'l') goto yy83; ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'Z') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; - } else { - if (yych <= '"') goto yy111; - if (yych <= '\'') goto yy49; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy49; - } else { - if (yych != ';') goto yy49; - } - } - } else { - if (yych <= '_') { - if (yych <= '\\') { - if (yych >= '\\') goto yy49; - } else { - if (yych <= ']') goto yy111; - if (yych <= '^') goto yy49; - goto yy160; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy49; - } else { - if (yych == '~') goto yy49; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy111: -#line 250 "src/ast-lexer.c" - { RETURN(BR); } -#line 1198 "src/prebuilt/ast-lexer-gen.c" -yy112: - yych = *++lexer->cursor; - if (yych == 'l') goto yy161; - goto yy50; +#line 261 "src/ast-lexer.c" + { RETURN(TEE_LOCAL); } +#line 974 "src/prebuilt/ast-lexer-gen.c" yy113: yych = *++lexer->cursor; - if (yych == 'r') goto yy162; - goto yy50; -yy114: - yych = *++lexer->cursor; - if (yych == 't') goto yy163; - goto yy50; -yy115: - yych = *++lexer->cursor; - if (yych == 'o') goto yy164; - goto yy50; -yy116: + if (yych != 'l') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy165; - if (yych == 's') goto yy166; - goto yy50; + if (yych != 'e') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 427 "src/ast-lexer.c" + { RETURN(TABLE); } +#line 986 "src/prebuilt/ast-lexer-gen.c" yy117: yych = *++lexer->cursor; - if (yych == 'd') goto yy167; - goto yy50; + if (yych == 'l') goto yy124; + if (yych == 't') goto yy123; + goto yy83; yy118: yych = *++lexer->cursor; - if (yych == 'p') goto yy169; - goto yy50; -yy119: - yych = *++lexer->cursor; - if (yych == '2') goto yy170; - goto yy50; -yy120: - yych = *++lexer->cursor; - if (yych == '4') goto yy172; - goto yy50; -yy121: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych == 'n') goto yy174; - goto yy50; -yy122: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy175; - goto yy50; + if (yych != 't') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 429 "src/ast-lexer.c" + { RETURN(START); } +#line 1005 "src/prebuilt/ast-lexer-gen.c" yy123: yych = *++lexer->cursor; - if (yych == 'o') goto yy177; - goto yy50; + if (yych == '_') goto yy129; + goto yy83; yy124: yych = *++lexer->cursor; - if (yych == 'o') goto yy178; - goto yy50; -yy125: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == '2') goto yy179; - goto yy50; -yy126: + if (yych != 'c') goto yy83; yych = *++lexer->cursor; - if (yych == '4') goto yy181; - goto yy50; -yy127: + if (yych != 't') goto yy83; ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'Z') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; - } else { - if (yych <= '"') goto yy128; - if (yych <= '\'') goto yy49; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy49; - } else { - if (yych != ';') goto yy49; - } - } - } else { - if (yych <= '_') { - if (yych <= '\\') { - if (yych >= '\\') goto yy49; - } else { - if (yych <= ']') goto yy128; - if (yych <= '^') goto yy49; - goto yy183; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy49; - } else { - if (yych == '~') goto yy49; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy128: -#line 245 "src/ast-lexer.c" - { RETURN(IF); } -#line 1297 "src/prebuilt/ast-lexer-gen.c" +#line 416 "src/ast-lexer.c" + { RETURN(SELECT); } +#line 1023 "src/prebuilt/ast-lexer-gen.c" yy129: yych = *++lexer->cursor; - if (yych == 'p') goto yy184; - goto yy50; -yy130: + if (yych == 'g') goto yy131; + if (yych != 'l') goto yy83; yych = *++lexer->cursor; - if (yych <= 'o') { - if (yych == 'f') goto yy185; - goto yy50; - } else { - if (yych <= 'p') goto yy187; - if (yych == 'v') goto yy188; - goto yy50; - } + if (yych == 'o') goto yy138; + goto yy83; yy131: yych = *++lexer->cursor; - if (yych == 'c') goto yy189; - if (yych == 'o') goto yy190; - goto yy50; -yy132: + if (yych != 'l') goto yy83; yych = *++lexer->cursor; - if (yych == 'm') goto yy191; - goto yy50; -yy133: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == 'd') goto yy192; - goto yy50; -yy134: + if (yych != 'b') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy193; - goto yy50; -yy135: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych == 'n') goto yy195; - goto yy50; -yy136: - yych = *++lexer->cursor; - if (yych == 'p') goto yy197; - goto yy50; -yy137: - yych = *++lexer->cursor; - if (yych == 'f') goto yy199; - goto yy50; + if (yych != 'l') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 263 "src/ast-lexer.c" + { RETURN(SET_GLOBAL); } +#line 1048 "src/prebuilt/ast-lexer-gen.c" yy138: yych = *++lexer->cursor; - if (yych == 't') goto yy200; - goto yy50; -yy139: + if (yych != 'c') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy201; - goto yy50; -yy140: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych <= 'r') { - if (yych == 'g') goto yy202; - goto yy50; - } else { - if (yych <= 's') goto yy203; - if (yych <= 't') goto yy204; - goto yy50; + if (yych != 'l') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy141: - yych = *++lexer->cursor; - if (yych == 'l') goto yy205; - if (yych == 't') goto yy206; - goto yy50; -yy142: - yych = *++lexer->cursor; - if (yych == 'a') goto yy207; - goto yy50; +#line 260 "src/ast-lexer.c" + { RETURN(SET_LOCAL); } +#line 1062 "src/prebuilt/ast-lexer-gen.c" yy143: yych = *++lexer->cursor; - if (yych == 'b') goto yy208; - goto yy50; -yy144: + if (yych <= 'r') { + if (yych == 'g') goto yy146; + goto yy83; + } else { + if (yych <= 's') goto yy145; + if (yych >= 'u') goto yy83; + } yych = *++lexer->cursor; - if (yych == 'e') goto yy209; - goto yy50; + if (yych == 'u') goto yy157; + goto yy83; yy145: yych = *++lexer->cursor; - if (yych == 'e') goto yy210; - goto yy50; + if (yych == 'u') goto yy153; + goto yy83; yy146: yych = *++lexer->cursor; - if (yych == 'p') goto yy211; - goto yy50; -yy147: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy212; - goto yy50; -yy148: - ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= '@') { - if (yych <= '/') goto yy84; - if (yych <= '9') goto yy82; - goto yy84; - } else { - if (yych <= 'F') goto yy82; - if (yych <= '`') goto yy84; - if (yych <= 'f') goto yy82; - goto yy84; - } -yy149: + if (yych != 's') goto yy83; yych = *++lexer->cursor; - if (yych <= '@') { - if (yych <= '/') goto yy50; - if (yych <= '9') goto yy213; - goto yy50; - } else { - if (yych <= 'F') goto yy213; - if (yych <= '`') goto yy50; - if (yych <= 'f') goto yy213; - goto yy50; - } -yy150: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'f') goto yy185; - goto yy50; -yy151: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych <= '/') goto yy50; - if (yych >= ':') goto yy50; -yy152: + if (yych != 'r') goto yy83; ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= ':') { - if (yych <= ')') { - if (yych <= '!') { - if (yych <= ' ') goto yy101; - goto yy49; - } else { - if (yych <= '"') goto yy101; - if (yych <= '\'') goto yy49; - goto yy101; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy49; - goto yy101; - } else { - if (yych <= '/') goto yy49; - if (yych <= '9') goto yy152; - goto yy49; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych <= ';') goto yy101; - goto yy49; - } else { - if (yych == '\\') goto yy49; - goto yy101; - } - } else { - if (yych <= '|') { - if (yych == '{') goto yy101; - goto yy49; - } else { - if (yych == '~') goto yy49; - goto yy101; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy154: +#line 435 "src/ast-lexer.c" + { RETURN(REGISTER); } +#line 1096 "src/prebuilt/ast-lexer-gen.c" +yy153: + yych = *++lexer->cursor; + if (yych != 'l') goto yy83; + yych = *++lexer->cursor; + if (yych != 't') goto yy83; ++lexer->cursor; - if ((lexer->limit - lexer->cursor) < 3) FILL(3); - yych = *lexer->cursor; - if (yybm[0+yych] & 128) { - goto yy154; - } - if (yych <= ';') { - if (yych <= ')') { - if (yych <= '!') { - if (yych <= ' ') goto yy61; - goto yy49; - } else { - if (yych <= '"') goto yy61; - if (yych <= '\'') goto yy49; - goto yy61; - } - } else { - if (yych <= '-') { - if (yych == ',') goto yy61; - goto yy49; - } else { - if (yych <= '.') goto yy215; - if (yych <= ':') goto yy49; - goto yy61; - } - } - } else { - if (yych <= 'p') { - if (yych <= '\\') { - if (yych == '[') goto yy61; - goto yy49; - } else { - if (yych <= ']') goto yy61; - if (yych <= 'o') goto yy49; - goto yy217; - } - } else { - if (yych <= '|') { - if (yych == '{') goto yy61; - goto yy49; - } else { - if (yych == '~') goto yy49; - goto yy61; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy156: - yych = *++lexer->cursor; - if (yych == 'g') goto yy218; - goto yy50; +#line 423 "src/ast-lexer.c" + { RETURN(RESULT); } +#line 1108 "src/prebuilt/ast-lexer-gen.c" yy157: yych = *++lexer->cursor; - if (yych == 'f') goto yy219; - goto yy50; -yy158: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy220; - goto yy50; -yy159: + if (yych != 'n') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 258 "src/ast-lexer.c" + { RETURN(RETURN); } +#line 1120 "src/prebuilt/ast-lexer-gen.c" +yy161: yych = *++lexer->cursor; - if (yych == 'c') goto yy221; - goto yy50; -yy160: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'i') goto yy222; - if (yych == 't') goto yy223; - goto yy50; -yy161: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych == 'l') goto yy224; - goto yy50; -yy162: + if (yych != 'm') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 422 "src/ast-lexer.c" + { RETURN(PARAM); } +#line 1134 "src/prebuilt/ast-lexer-gen.c" +yy166: yych = *++lexer->cursor; - if (yych == 'r') goto yy226; - goto yy50; -yy163: + if (yych == 'f') goto yy173; + goto yy83; +yy167: yych = *++lexer->cursor; - if (yych == 'a') goto yy227; - goto yy50; -yy164: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'p') goto yy229; - goto yy50; -yy165: + if (yych != 'p') goto yy83; yych = *++lexer->cursor; - if (yych == 'm') goto yy231; - goto yy50; -yy166: + if (yych != 'u') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy233; - goto yy50; -yy167: + if (yych != 't') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 257 "src/ast-lexer.c" - { RETURN(END); } -#line 1564 "src/prebuilt/ast-lexer-gen.c" -yy169: +#line 446 "src/ast-lexer.c" + { RETURN(OUTPUT); } +#line 1154 "src/prebuilt/ast-lexer-gen.c" +yy173: yych = *++lexer->cursor; - if (yych == 'o') goto yy235; - goto yy50; -yy170: - ++lexer->cursor; - if ((yych = *lexer->cursor) <= ':') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; - } else { - if (yych <= '"') goto yy171; - if (yych <= '\'') goto yy49; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy49; - } else { - if (yych == '.') goto yy236; - goto yy49; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych >= '<') goto yy49; - } else { - if (yych == '\\') goto yy49; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy49; - } else { - if (yych == '~') goto yy49; - } - } - } -yy171: -#line 239 "src/ast-lexer.c" - { TYPE(F32); RETURN(VALUE_TYPE); } -#line 1605 "src/prebuilt/ast-lexer-gen.c" -yy172: + if (yych != 's') goto yy83; + yych = *++lexer->cursor; + if (yych != 'e') goto yy83; + yych = *++lexer->cursor; + if (yych != 't') goto yy83; ++lexer->cursor; - if ((yych = *lexer->cursor) <= ':') { + if ((yych = *lexer->cursor) <= '<') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy49; + if (yych >= '!') goto yy82; } else { - if (yych <= '"') goto yy173; - if (yych <= '\'') goto yy49; + if (yych <= '"') goto yy177; + if (yych <= '\'') goto yy82; } } else { if (yych <= ',') { - if (yych <= '+') goto yy49; + if (yych <= '+') goto yy82; } else { - if (yych == '.') goto yy237; - goto yy49; + if (yych != ';') goto yy82; } } } else { if (yych <= ']') { if (yych <= 'Z') { - if (yych >= '<') goto yy49; - } else { - if (yych == '\\') goto yy49; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy49; - } else { - if (yych == '~') goto yy49; - } - } - } -yy173: -#line 240 "src/ast-lexer.c" - { TYPE(F64); RETURN(VALUE_TYPE); } -#line 1642 "src/prebuilt/ast-lexer-gen.c" -yy174: - yych = *++lexer->cursor; - if (yych == 'c') goto yy238; - goto yy50; -yy175: - ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'Z') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; - } else { - if (yych <= '"') goto yy176; - if (yych <= '\'') goto yy49; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy49; - } else { - if (yych != ';') goto yy49; - } - } - } else { - if (yych <= '_') { - if (yych <= '\\') { - if (yych >= '\\') goto yy49; + if (yych <= '=') goto yy178; + goto yy82; } else { - if (yych <= ']') goto yy176; - if (yych <= '^') goto yy49; - goto yy240; + if (yych == '\\') goto yy82; } } else { if (yych <= '|') { - if (yych != '{') goto yy49; + if (yych != '{') goto yy82; } else { - if (yych == '~') goto yy49; + if (yych == '~') goto yy82; } } } -yy176: -#line 437 "src/ast-lexer.c" - { RETURN(GET); } -#line 1684 "src/prebuilt/ast-lexer-gen.c" yy177: - yych = *++lexer->cursor; - if (yych == 'b') goto yy241; - goto yy50; +#line 432 "src/ast-lexer.c" + { RETURN(OFFSET); } +#line 1197 "src/prebuilt/ast-lexer-gen.c" yy178: yych = *++lexer->cursor; - if (yych == 'w') goto yy242; - goto yy50; + if (yych <= '/') goto yy83; + if (yych <= '0') goto yy179; + if (yych <= '9') goto yy181; + goto yy83; yy179: ++lexer->cursor; - if ((yych = *lexer->cursor) <= ':') { + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy181; + } + if (yych <= 'Z') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy49; + if (yych >= '!') goto yy82; } else { if (yych <= '"') goto yy180; - if (yych <= '\'') goto yy49; + if (yych <= '\'') goto yy82; } } else { if (yych <= ',') { - if (yych <= '+') goto yy49; + if (yych <= '+') goto yy82; } else { - if (yych == '.') goto yy243; - goto yy49; + if (yych != ';') goto yy82; } } } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych >= '<') goto yy49; + if (yych <= 'x') { + if (yych <= '\\') { + if (yych >= '\\') goto yy82; } else { - if (yych == '\\') goto yy49; + if (yych <= ']') goto yy180; + if (yych <= 'w') goto yy82; + goto yy183; } } else { if (yych <= '|') { - if (yych != '{') goto yy49; + if (yych != '{') goto yy82; } else { - if (yych == '~') goto yy49; + if (yych == '~') goto yy82; } } } yy180: -#line 237 "src/ast-lexer.c" - { TYPE(I32); RETURN(VALUE_TYPE); } -#line 1729 "src/prebuilt/ast-lexer-gen.c" +#line 287 "src/ast-lexer.c" + { TEXT_AT(7); RETURN(OFFSET_EQ_NAT); } +#line 1244 "src/prebuilt/ast-lexer-gen.c" yy181: ++lexer->cursor; - if ((yych = *lexer->cursor) <= ':') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; - } else { - if (yych <= '"') goto yy182; - if (yych <= '\'') goto yy49; - } + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yybm[0+yych] & 16) { + goto yy181; + } + if (yych <= ';') { + if (yych <= '\'') { + if (yych == '!') goto yy82; + if (yych <= '"') goto yy180; + goto yy82; } else { - if (yych <= ',') { - if (yych <= '+') goto yy49; + if (yych <= '+') { + if (yych <= ')') goto yy180; + goto yy82; } else { - if (yych == '.') goto yy244; - goto yy49; + if (yych <= ',') goto yy180; + if (yych <= ':') goto yy82; + goto yy180; } } } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych >= '<') goto yy49; + if (yych <= 'z') { + if (yych <= '[') { + if (yych <= 'Z') goto yy82; + goto yy180; } else { - if (yych == '\\') goto yy49; + if (yych == ']') goto yy180; + goto yy82; } } else { if (yych <= '|') { - if (yych != '{') goto yy49; + if (yych <= '{') goto yy180; + goto yy82; } else { - if (yych == '~') goto yy49; + if (yych == '~') goto yy82; + goto yy180; } } } -yy182: -#line 238 "src/ast-lexer.c" - { TYPE(I64); RETURN(VALUE_TYPE); } -#line 1766 "src/prebuilt/ast-lexer-gen.c" yy183: yych = *++lexer->cursor; - if (yych == 'e') goto yy245; - goto yy50; + if (yybm[0+yych] & 32) { + goto yy184; + } + goto yy83; yy184: - yych = *++lexer->cursor; - if (yych == 'o') goto yy246; - goto yy50; -yy185: ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'Z') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; - } else { - if (yych <= '"') goto yy186; - if (yych <= '\'') goto yy49; - } + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yybm[0+yych] & 32) { + goto yy184; + } + if (yych <= ';') { + if (yych <= '\'') { + if (yych == '!') goto yy82; + if (yych <= '"') goto yy180; + goto yy82; } else { - if (yych <= ',') { - if (yych <= '+') goto yy49; + if (yych <= '+') { + if (yych <= ')') goto yy180; + goto yy82; } else { - if (yych != ';') goto yy49; + if (yych <= ',') goto yy180; + if (yych <= ':') goto yy82; + goto yy180; } } } else { - if (yych <= 'i') { - if (yych <= '\\') { - if (yych >= '\\') goto yy49; + if (yych <= 'z') { + if (yych <= '[') { + if (yych <= 'Z') goto yy82; + goto yy180; } else { - if (yych <= ']') goto yy186; - if (yych <= 'h') goto yy49; - goto yy247; + if (yych == ']') goto yy180; + goto yy82; } } else { if (yych <= '|') { - if (yych != '{') goto yy49; + if (yych <= '{') goto yy180; + goto yy82; } else { - if (yych == '~') goto yy49; + if (yych == '~') goto yy82; + goto yy180; } } } yy186: -#line 226 "src/ast-lexer.c" - { LITERAL(INFINITY); RETURN(FLOAT); } -#line 1812 "src/prebuilt/ast-lexer-gen.c" -yy187: - yych = *++lexer->cursor; - if (yych == 'u') goto yy248; - goto yy50; -yy188: - yych = *++lexer->cursor; - if (yych == 'o') goto yy249; - goto yy50; -yy189: yych = *++lexer->cursor; - if (yych == 'a') goto yy250; - goto yy50; -yy190: - yych = *++lexer->cursor; - if (yych == 'p') goto yy251; - goto yy50; -yy191: - yych = *++lexer->cursor; - if (yych == 'o') goto yy253; - goto yy50; -yy192: + if (yych == 'n') goto yy190; + goto yy83; +yy187: yych = *++lexer->cursor; - if (yych == 'u') goto yy254; - goto yy50; -yy193: + if (yych != 'p') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 242 "src/ast-lexer.c" - { RETURN(MUT); } -#line 1844 "src/prebuilt/ast-lexer-gen.c" -yy195: +#line 243 "src/ast-lexer.c" + { RETURN(NOP); } +#line 1346 "src/prebuilt/ast-lexer-gen.c" +yy190: ++lexer->cursor; if ((yych = *lexer->cursor) <= ';') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy49; + if (yych >= '!') goto yy82; } else { - if (yych <= '"') goto yy196; - if (yych <= '\'') goto yy49; + if (yych <= '"') goto yy191; + if (yych <= '\'') goto yy82; } } else { if (yych <= ',') { - if (yych <= '+') goto yy49; + if (yych <= '+') goto yy82; } else { - if (yych <= '9') goto yy49; - if (yych <= ':') goto yy255; + if (yych <= '9') goto yy82; + if (yych <= ':') goto yy192; } } } else { if (yych <= 'z') { if (yych <= '[') { - if (yych <= 'Z') goto yy49; + if (yych <= 'Z') goto yy82; } else { - if (yych != ']') goto yy49; + if (yych != ']') goto yy82; } } else { if (yych <= '|') { - if (yych >= '|') goto yy49; + if (yych >= '|') goto yy82; } else { - if (yych == '~') goto yy49; + if (yych == '~') goto yy82; } } } -yy196: +yy191: #line 227 "src/ast-lexer.c" { LITERAL(NAN); RETURN(FLOAT); } -#line 1881 "src/prebuilt/ast-lexer-gen.c" -yy197: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 243 "src/ast-lexer.c" - { RETURN(NOP); } -#line 1889 "src/prebuilt/ast-lexer-gen.c" -yy199: - yych = *++lexer->cursor; - if (yych == 's') goto yy256; - goto yy50; -yy200: - yych = *++lexer->cursor; - if (yych == 'p') goto yy257; - goto yy50; -yy201: - yych = *++lexer->cursor; - if (yych == 'a') goto yy258; - goto yy50; -yy202: - yych = *++lexer->cursor; - if (yych == 'i') goto yy259; - goto yy50; -yy203: - yych = *++lexer->cursor; - if (yych == 'u') goto yy260; - goto yy50; -yy204: - yych = *++lexer->cursor; - if (yych == 'u') goto yy261; - goto yy50; -yy205: - yych = *++lexer->cursor; - if (yych == 'e') goto yy262; - goto yy50; -yy206: - yych = *++lexer->cursor; - if (yych == '_') goto yy263; - goto yy50; -yy207: - yych = *++lexer->cursor; - if (yych == 'r') goto yy264; - goto yy50; -yy208: - yych = *++lexer->cursor; - if (yych == 'l') goto yy265; - goto yy50; -yy209: - yych = *++lexer->cursor; - if (yych == '_') goto yy266; - goto yy50; -yy210: +#line 1383 "src/prebuilt/ast-lexer-gen.c" +yy192: yych = *++lexer->cursor; - if (yych == 'n') goto yy267; - goto yy50; -yy211: + if (yych != '0') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy269; - goto yy50; -yy212: + if (yych != 'x') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy271; - goto yy50; -yy213: + if (yych <= '@') { + if (yych <= '/') goto yy83; + if (yych >= ':') goto yy83; + } else { + if (yych <= 'F') goto yy195; + if (yych <= '`') goto yy83; + if (yych >= 'g') goto yy83; + } +yy195: ++lexer->cursor; - if ((lexer->limit - lexer->cursor) < 3) FILL(3); + if (lexer->limit <= lexer->cursor) FILL(1); yych = *lexer->cursor; if (yych <= '@') { - if (yych <= ',') { + if (yych <= '+') { if (yych <= '"') { - if (yych == '!') goto yy49; - goto yy94; + if (yych == '!') goto yy82; + goto yy191; } else { - if (yych <= '\'') goto yy49; - if (yych <= ')') goto yy94; - if (yych <= '+') goto yy49; - goto yy94; + if (yych <= '\'') goto yy82; + if (yych <= ')') goto yy191; + goto yy82; } } else { - if (yych <= '/') { - if (yych != '.') goto yy49; + if (yych <= '9') { + if (yych <= ',') goto yy191; + if (yych <= '/') goto yy82; + goto yy195; } else { - if (yych <= '9') goto yy213; - if (yych == ';') goto yy94; - goto yy49; + if (yych == ';') goto yy191; + goto yy82; } } } else { - if (yych <= 'f') { + if (yych <= '`') { if (yych <= '[') { - if (yych <= 'F') goto yy213; - if (yych <= 'Z') goto yy49; - goto yy94; + if (yych <= 'F') goto yy195; + if (yych <= 'Z') goto yy82; + goto yy191; } else { - if (yych == ']') goto yy94; - if (yych <= '`') goto yy49; - goto yy213; + if (yych == ']') goto yy191; + goto yy82; } } else { if (yych <= '{') { - if (yych == 'p') goto yy217; - if (yych <= 'z') goto yy49; - goto yy94; + if (yych <= 'f') goto yy195; + if (yych <= 'z') goto yy82; + goto yy191; } else { - if (yych == '}') goto yy94; - if (yych <= '~') goto yy49; - goto yy94; + if (yych == '}') goto yy191; + if (yych <= '~') goto yy82; + goto yy191; } } } -yy215: +yy197: + yych = *++lexer->cursor; + if (yych == 'm') goto yy207; + goto yy83; +yy198: + yych = *++lexer->cursor; + if (yych == 'd') goto yy202; + goto yy83; +yy199: + yych = *++lexer->cursor; + if (yych != 't') goto yy83; ++lexer->cursor; - if ((lexer->limit - lexer->cursor) < 3) FILL(3); - yych = *lexer->cursor; - if (yych <= 'F') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy49; - goto yy51; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 242 "src/ast-lexer.c" + { RETURN(MUT); } +#line 1461 "src/prebuilt/ast-lexer-gen.c" +yy202: + yych = *++lexer->cursor; + if (yych != 'u') goto yy83; + yych = *++lexer->cursor; + if (yych != 'l') goto yy83; + yych = *++lexer->cursor; + if (yych != 'e') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 426 "src/ast-lexer.c" + { RETURN(MODULE); } +#line 1475 "src/prebuilt/ast-lexer-gen.c" +yy207: + yych = *++lexer->cursor; + if (yych != 'o') goto yy83; + yych = *++lexer->cursor; + if (yych != 'r') goto yy83; + yych = *++lexer->cursor; + if (yych != 'y') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 428 "src/ast-lexer.c" + { RETURN(MEMORY); } +#line 1489 "src/prebuilt/ast-lexer-gen.c" +yy212: + yych = *++lexer->cursor; + if (yych == 'c') goto yy214; + if (yych != 'o') goto yy83; + yych = *++lexer->cursor; + if (yych == 'p') goto yy218; + goto yy83; +yy214: + yych = *++lexer->cursor; + if (yych != 'a') goto yy83; + yych = *++lexer->cursor; + if (yych != 'l') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 424 "src/ast-lexer.c" + { RETURN(LOCAL); } +#line 1508 "src/prebuilt/ast-lexer-gen.c" +yy218: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 249 "src/ast-lexer.c" + { RETURN(LOOP); } +#line 1516 "src/prebuilt/ast-lexer-gen.c" +yy220: + yych = *++lexer->cursor; + if (yych == '2') goto yy455; + goto yy83; +yy221: + yych = *++lexer->cursor; + if (yych == '4') goto yy253; + goto yy83; +yy222: + ++lexer->cursor; + if ((yych = *lexer->cursor) <= 'Z') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; } else { - if (yych <= '\'') goto yy49; - if (yych <= ')') goto yy51; - goto yy49; + if (yych <= '"') goto yy223; + if (yych <= '\'') goto yy82; } } else { - if (yych <= '9') { - if (yych <= ',') goto yy51; - if (yych <= '/') goto yy49; - goto yy215; + if (yych <= ',') { + if (yych <= '+') goto yy82; } else { - if (yych == ';') goto yy51; - if (yych <= '@') goto yy49; - goto yy215; + if (yych != ';') goto yy82; } } } else { - if (yych <= 'o') { + if (yych <= '_') { if (yych <= '\\') { - if (yych == '[') goto yy51; - goto yy49; + if (yych >= '\\') goto yy82; } else { - if (yych <= ']') goto yy51; - if (yych <= '`') goto yy49; - if (yych <= 'f') goto yy215; - goto yy49; + if (yych <= ']') goto yy223; + if (yych <= '^') goto yy82; + goto yy247; } } else { - if (yych <= '{') { - if (yych <= 'p') goto yy217; - if (yych <= 'z') goto yy49; - goto yy51; + if (yych <= '|') { + if (yych != '{') goto yy82; } else { - if (yych == '}') goto yy51; - if (yych <= '~') goto yy49; - goto yy51; + if (yych == '~') goto yy82; } } } -yy217: +yy223: +#line 245 "src/ast-lexer.c" + { RETURN(IF); } +#line 1562 "src/prebuilt/ast-lexer-gen.c" +yy224: yych = *++lexer->cursor; - if (yych <= ',') { - if (yych == '+') goto yy272; - goto yy50; + if (yych == 'p') goto yy242; + goto yy83; +yy225: + yych = *++lexer->cursor; + if (yych <= 'o') { + if (yych != 'f') goto yy83; } else { - if (yych <= '-') goto yy272; - if (yych <= '/') goto yy50; - if (yych <= '9') goto yy273; - goto yy50; + if (yych <= 'p') goto yy229; + if (yych == 'v') goto yy228; + goto yy83; } -yy218: - yych = *++lexer->cursor; - if (yych == 'n') goto yy276; - goto yy50; -yy219: - yych = *++lexer->cursor; - if (yych == 'u') goto yy277; - goto yy50; -yy220: - yych = *++lexer->cursor; - if (yych == 'r') goto yy278; - goto yy50; -yy221: - yych = *++lexer->cursor; - if (yych == 'k') goto yy279; - goto yy50; -yy222: - yych = *++lexer->cursor; - if (yych == 'f') goto yy281; - goto yy50; -yy223: - yych = *++lexer->cursor; - if (yych == 'a') goto yy283; - goto yy50; -yy224: +yy226: ++lexer->cursor; if ((yych = *lexer->cursor) <= 'Z') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy49; + if (yych >= '!') goto yy82; } else { - if (yych <= '"') goto yy225; - if (yych <= '\'') goto yy49; + if (yych <= '"') goto yy227; + if (yych <= '\'') goto yy82; } } else { if (yych <= ',') { - if (yych <= '+') goto yy49; + if (yych <= '+') goto yy82; } else { - if (yych != ';') goto yy49; + if (yych != ';') goto yy82; } } } else { - if (yych <= '_') { + if (yych <= 'i') { if (yych <= '\\') { - if (yych >= '\\') goto yy49; + if (yych >= '\\') goto yy82; } else { - if (yych <= ']') goto yy225; - if (yych <= '^') goto yy49; - goto yy284; + if (yych <= ']') goto yy227; + if (yych <= 'h') goto yy82; + goto yy237; } } else { if (yych <= '|') { - if (yych != '{') goto yy49; + if (yych != '{') goto yy82; } else { - if (yych == '~') goto yy49; + if (yych == '~') goto yy82; } } } -yy225: -#line 253 "src/ast-lexer.c" - { RETURN(CALL); } -#line 2113 "src/prebuilt/ast-lexer-gen.c" -yy226: - yych = *++lexer->cursor; - if (yych == 'e') goto yy285; - goto yy50; yy227: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 431 "src/ast-lexer.c" - { RETURN(DATA); } -#line 2125 "src/prebuilt/ast-lexer-gen.c" +#line 226 "src/ast-lexer.c" + { LITERAL(INFINITY); RETURN(FLOAT); } +#line 1613 "src/prebuilt/ast-lexer-gen.c" +yy228: + yych = *++lexer->cursor; + if (yych == 'o') goto yy233; + goto yy83; yy229: + yych = *++lexer->cursor; + if (yych != 'u') goto yy83; + yych = *++lexer->cursor; + if (yych != 't') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 256 "src/ast-lexer.c" - { RETURN(DROP); } -#line 2133 "src/prebuilt/ast-lexer-gen.c" -yy231: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 430 "src/ast-lexer.c" - { RETURN(ELEM); } -#line 2141 "src/prebuilt/ast-lexer-gen.c" +#line 445 "src/ast-lexer.c" + { RETURN(INPUT); } +#line 1629 "src/prebuilt/ast-lexer-gen.c" yy233: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 248 "src/ast-lexer.c" - { RETURN(ELSE); } -#line 2149 "src/prebuilt/ast-lexer-gen.c" -yy235: yych = *++lexer->cursor; - if (yych == 'r') goto yy286; - goto yy50; -yy236: + if (yych != 'k') goto yy83; yych = *++lexer->cursor; - switch (yych) { - case 'a': goto yy287; - case 'c': goto yy288; - case 'd': goto yy289; - case 'e': goto yy290; - case 'f': goto yy291; - case 'g': goto yy292; - case 'l': goto yy293; - case 'm': goto yy294; - case 'n': goto yy295; - case 'r': goto yy296; - case 's': goto yy297; - case 't': goto yy298; - default: goto yy50; + if (yych != 'e') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } +#line 436 "src/ast-lexer.c" + { RETURN(INVOKE); } +#line 1641 "src/prebuilt/ast-lexer-gen.c" yy237: yych = *++lexer->cursor; - switch (yych) { - case 'a': goto yy299; - case 'c': goto yy300; - case 'd': goto yy301; - case 'e': goto yy302; - case 'f': goto yy303; - case 'g': goto yy304; - case 'l': goto yy305; - case 'm': goto yy306; - case 'n': goto yy307; - case 'p': goto yy308; - case 'r': goto yy309; - case 's': goto yy310; - case 't': goto yy311; - default: goto yy50; - } -yy238: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 421 "src/ast-lexer.c" - { RETURN(FUNC); } -#line 2196 "src/prebuilt/ast-lexer-gen.c" -yy240: + if (yych != 'n') goto yy83; + yych = *++lexer->cursor; + if (yych != 'i') goto yy83; + yych = *++lexer->cursor; + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'g') goto yy312; - if (yych == 'l') goto yy313; - goto yy50; -yy241: + if (yych != 'y') goto yy83; yych = *++lexer->cursor; - if (yych == 'a') goto yy314; - goto yy50; + if (yybm[0+yych] & 8) { + goto yy82; + } + goto yy227; yy242: yych = *++lexer->cursor; - if (yych == '_') goto yy315; - goto yy50; -yy243: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - switch (yych) { - case 'a': goto yy316; - case 'c': goto yy317; - case 'd': goto yy318; - case 'e': goto yy319; - case 'g': goto yy320; - case 'l': goto yy321; - case 'm': goto yy322; - case 'n': goto yy323; - case 'o': goto yy324; - case 'p': goto yy325; - case 'r': goto yy326; - case 's': goto yy327; - case 't': goto yy328; - case 'w': goto yy329; - case 'x': goto yy330; - default: goto yy50; - } -yy244: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - switch (yych) { - case 'a': goto yy331; - case 'c': goto yy332; - case 'd': goto yy333; - case 'e': goto yy334; - case 'g': goto yy335; - case 'l': goto yy336; - case 'm': goto yy337; - case 'n': goto yy338; - case 'o': goto yy339; - case 'p': goto yy340; - case 'r': goto yy341; - case 's': goto yy342; - case 't': goto yy343; - case 'x': goto yy344; - default: goto yy50; - } -yy245: - yych = *++lexer->cursor; - if (yych == 'l') goto yy345; - goto yy50; -yy246: - yych = *++lexer->cursor; - if (yych == 'r') goto yy346; - goto yy50; + if (yych != 't') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 433 "src/ast-lexer.c" + { RETURN(IMPORT); } +#line 1669 "src/prebuilt/ast-lexer-gen.c" yy247: yych = *++lexer->cursor; - if (yych == 'n') goto yy347; - goto yy50; -yy248: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy348; - goto yy50; -yy249: + if (yych != 'l') goto yy83; yych = *++lexer->cursor; - if (yych == 'k') goto yy350; - goto yy50; -yy250: + if (yych != 's') goto yy83; yych = *++lexer->cursor; - if (yych == 'l') goto yy351; - goto yy50; -yy251: + if (yych != 'e') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 249 "src/ast-lexer.c" - { RETURN(LOOP); } -#line 2280 "src/prebuilt/ast-lexer-gen.c" +#line 246 "src/ast-lexer.c" + { RETURN(IF); } +#line 1685 "src/prebuilt/ast-lexer-gen.c" yy253: - yych = *++lexer->cursor; - if (yych == 'r') goto yy353; - goto yy50; + ++lexer->cursor; + if ((yych = *lexer->cursor) <= ':') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; + } else { + if (yych <= '"') goto yy254; + if (yych <= '\'') goto yy82; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy82; + } else { + if (yych == '.') goto yy255; + goto yy82; + } + } + } else { + if (yych <= ']') { + if (yych <= 'Z') { + if (yych >= '<') goto yy82; + } else { + if (yych == '\\') goto yy82; + } + } else { + if (yych <= '|') { + if (yych != '{') goto yy82; + } else { + if (yych == '~') goto yy82; + } + } + } yy254: - yych = *++lexer->cursor; - if (yych == 'l') goto yy354; - goto yy50; +#line 238 "src/ast-lexer.c" + { TYPE(I64); RETURN(VALUE_TYPE); } +#line 1722 "src/prebuilt/ast-lexer-gen.c" yy255: yych = *++lexer->cursor; - if (yych == '0') goto yy355; - goto yy50; + switch (yych) { + case 'a': goto yy261; + case 'c': goto yy258; + case 'd': goto yy263; + case 'e': goto yy259; + case 'g': goto yy268; + case 'l': goto yy256; + case 'm': goto yy262; + case 'n': goto yy267; + case 'o': goto yy265; + case 'p': goto yy260; + case 'r': goto yy264; + case 's': goto yy257; + case 't': goto yy269; + case 'x': goto yy266; + default: goto yy83; + } yy256: yych = *++lexer->cursor; - if (yych == 'e') goto yy356; - goto yy50; + if (yych <= 'n') { + if (yych == 'e') goto yy419; + goto yy83; + } else { + if (yych <= 'o') goto yy420; + if (yych == 't') goto yy421; + goto yy83; + } yy257: yych = *++lexer->cursor; - if (yych == 'u') goto yy357; - goto yy50; + if (yych <= 's') { + if (yych == 'h') goto yy394; + goto yy83; + } else { + if (yych <= 't') goto yy395; + if (yych <= 'u') goto yy396; + goto yy83; + } yy258: yych = *++lexer->cursor; - if (yych == 'm') goto yy358; - goto yy50; + if (yych <= 'n') { + if (yych == 'l') goto yy383; + goto yy83; + } else { + if (yych <= 'o') goto yy384; + if (yych == 't') goto yy385; + goto yy83; + } yy259: yych = *++lexer->cursor; - if (yych == 's') goto yy360; - goto yy50; + if (yych == 'q') goto yy361; + if (yych == 'x') goto yy363; + goto yy83; yy260: yych = *++lexer->cursor; - if (yych == 'l') goto yy361; - goto yy50; + if (yych == 'o') goto yy355; + goto yy83; yy261: yych = *++lexer->cursor; - if (yych == 'r') goto yy362; - goto yy50; + if (yych == 'd') goto yy349; + if (yych == 'n') goto yy350; + goto yy83; yy262: yych = *++lexer->cursor; - if (yych == 'c') goto yy363; - goto yy50; + if (yych == 'u') goto yy346; + goto yy83; yy263: yych = *++lexer->cursor; - if (yych == 'g') goto yy364; - if (yych == 'l') goto yy365; - goto yy50; + if (yych == 'i') goto yy339; + goto yy83; yy264: yych = *++lexer->cursor; - if (yych == 't') goto yy366; - goto yy50; + if (yych == 'e') goto yy312; + if (yych == 'o') goto yy313; + goto yy83; yy265: yych = *++lexer->cursor; - if (yych == 'e') goto yy368; - goto yy50; + if (yych == 'r') goto yy310; + goto yy83; yy266: yych = *++lexer->cursor; - if (yych == 'l') goto yy370; - goto yy50; + if (yych == 'o') goto yy307; + goto yy83; yy267: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 247 "src/ast-lexer.c" - { RETURN(THEN); } -#line 2345 "src/prebuilt/ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'e') goto yy305; + goto yy83; +yy268: + yych = *++lexer->cursor; + if (yych == 'e') goto yy293; + if (yych == 't') goto yy294; + goto yy83; yy269: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 420 "src/ast-lexer.c" - { RETURN(TYPE); } -#line 2353 "src/prebuilt/ast-lexer-gen.c" -yy271: yych = *++lexer->cursor; - if (yych == 'a') goto yy371; - goto yy50; -yy272: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych <= '/') goto yy50; - if (yych >= ':') goto yy50; -yy273: - ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= ':') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; - } else { - if (yych <= '"') goto yy275; - if (yych <= '\'') goto yy49; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy49; - } else { - if (yych <= '/') goto yy49; - if (yych <= '9') goto yy273; - goto yy49; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych >= '<') goto yy49; - } else { - if (yych == '\\') goto yy49; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy49; - } else { - if (yych == '~') goto yy49; - } - } - } + if (yych != 'u') goto yy83; + yych = *++lexer->cursor; + if (yych != 'n') goto yy83; + yych = *++lexer->cursor; + if (yych != 'c') goto yy83; + yych = *++lexer->cursor; + if (yych != '_') goto yy83; + yych = *++lexer->cursor; + if (yych == 's') goto yy275; + if (yych == 'u') goto yy276; + goto yy83; yy275: -#line 225 "src/ast-lexer.c" - { LITERAL(HEXFLOAT); RETURN(FLOAT); } -#line 2401 "src/prebuilt/ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == '/') goto yy285; + goto yy83; yy276: yych = *++lexer->cursor; - if (yych == '=') goto yy372; - goto yy50; -yy277: + if (yych != '/') goto yy83; yych = *++lexer->cursor; - if (yych == 'n') goto yy373; - goto yy50; -yy278: + if (yych != 'f') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy374; - goto yy50; + if (yych == '3') goto yy279; + if (yych == '6') goto yy280; + goto yy83; yy279: + yych = *++lexer->cursor; + if (yych == '2') goto yy283; + goto yy83; +yy280: + yych = *++lexer->cursor; + if (yych != '4') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 244 "src/ast-lexer.c" - { RETURN(BLOCK); } -#line 2421 "src/prebuilt/ast-lexer-gen.c" -yy281: +#line 401 "src/ast-lexer.c" + { OPCODE(I64_TRUNC_U_F64); RETURN(CONVERT); } +#line 1857 "src/prebuilt/ast-lexer-gen.c" +yy283: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 251 "src/ast-lexer.c" - { RETURN(BR_IF); } -#line 2429 "src/prebuilt/ast-lexer-gen.c" -yy283: - yych = *++lexer->cursor; - if (yych == 'b') goto yy375; - goto yy50; -yy284: - yych = *++lexer->cursor; - if (yych == 'i') goto yy376; - goto yy50; +#line 399 "src/ast-lexer.c" + { OPCODE(I64_TRUNC_U_F32); RETURN(CONVERT); } +#line 1865 "src/prebuilt/ast-lexer-gen.c" yy285: yych = *++lexer->cursor; - if (yych == 'n') goto yy377; - goto yy50; -yy286: + if (yych != 'f') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy378; - goto yy50; + if (yych == '3') goto yy287; + if (yych == '6') goto yy288; + goto yy83; yy287: yych = *++lexer->cursor; - if (yych == 'b') goto yy380; - if (yych == 'd') goto yy381; - goto yy50; + if (yych == '2') goto yy291; + goto yy83; yy288: yych = *++lexer->cursor; - if (yych == 'e') goto yy382; - if (yych == 'o') goto yy383; - goto yy50; -yy289: - yych = *++lexer->cursor; - if (yych == 'e') goto yy384; - if (yych == 'i') goto yy385; - goto yy50; -yy290: - yych = *++lexer->cursor; - if (yych == 'q') goto yy386; - goto yy50; + if (yych != '4') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 397 "src/ast-lexer.c" + { OPCODE(I64_TRUNC_S_F64); RETURN(CONVERT); } +#line 1886 "src/prebuilt/ast-lexer-gen.c" yy291: - yych = *++lexer->cursor; - if (yych == 'l') goto yy388; - goto yy50; -yy292: - yych = *++lexer->cursor; - if (yych == 'e') goto yy389; - if (yych == 't') goto yy391; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 395 "src/ast-lexer.c" + { OPCODE(I64_TRUNC_S_F32); RETURN(CONVERT); } +#line 1894 "src/prebuilt/ast-lexer-gen.c" yy293: yych = *++lexer->cursor; - if (yych <= 'n') { - if (yych == 'e') goto yy393; - goto yy50; - } else { - if (yych <= 'o') goto yy395; - if (yych == 't') goto yy396; - goto yy50; - } + if (yych == '_') goto yy300; + goto yy83; yy294: yych = *++lexer->cursor; - if (yych <= 'h') { - if (yych == 'a') goto yy398; - goto yy50; - } else { - if (yych <= 'i') goto yy399; - if (yych == 'u') goto yy400; - goto yy50; - } -yy295: + if (yych != '_') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy401; - goto yy50; + if (yych == 's') goto yy296; + if (yych == 'u') goto yy298; + goto yy83; yy296: - yych = *++lexer->cursor; - if (yych == 'e') goto yy403; - goto yy50; -yy297: - yych = *++lexer->cursor; - if (yych <= 's') { - if (yych == 'q') goto yy404; - goto yy50; - } else { - if (yych <= 't') goto yy405; - if (yych <= 'u') goto yy406; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } +#line 372 "src/ast-lexer.c" + { OPCODE(I64_GT_S); RETURN(COMPARE); } +#line 1913 "src/prebuilt/ast-lexer-gen.c" yy298: - yych = *++lexer->cursor; - if (yych == 'r') goto yy407; - goto yy50; -yy299: - yych = *++lexer->cursor; - if (yych == 'b') goto yy408; - if (yych == 'd') goto yy409; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 374 "src/ast-lexer.c" + { OPCODE(I64_GT_U); RETURN(COMPARE); } +#line 1921 "src/prebuilt/ast-lexer-gen.c" yy300: yych = *++lexer->cursor; - if (yych == 'e') goto yy410; - if (yych == 'o') goto yy411; - goto yy50; + if (yych == 's') goto yy301; + if (yych == 'u') goto yy303; + goto yy83; yy301: - yych = *++lexer->cursor; - if (yych == 'i') goto yy412; - goto yy50; -yy302: - yych = *++lexer->cursor; - if (yych == 'q') goto yy413; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 376 "src/ast-lexer.c" + { OPCODE(I64_GE_S); RETURN(COMPARE); } +#line 1934 "src/prebuilt/ast-lexer-gen.c" yy303: - yych = *++lexer->cursor; - if (yych == 'l') goto yy415; - goto yy50; -yy304: - yych = *++lexer->cursor; - if (yych == 'e') goto yy416; - if (yych == 't') goto yy418; - goto yy50; -yy305: - yych = *++lexer->cursor; - if (yych <= 'n') { - if (yych == 'e') goto yy420; - goto yy50; - } else { - if (yych <= 'o') goto yy422; - if (yych == 't') goto yy423; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy306: - yych = *++lexer->cursor; - if (yych <= 'h') { - if (yych == 'a') goto yy425; - goto yy50; - } else { - if (yych <= 'i') goto yy426; - if (yych == 'u') goto yy427; - goto yy50; +#line 378 "src/ast-lexer.c" + { OPCODE(I64_GE_U); RETURN(COMPARE); } +#line 1942 "src/prebuilt/ast-lexer-gen.c" +yy305: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } +#line 362 "src/ast-lexer.c" + { OPCODE(I64_NE); RETURN(COMPARE); } +#line 1950 "src/prebuilt/ast-lexer-gen.c" yy307: yych = *++lexer->cursor; - if (yych == 'e') goto yy428; - goto yy50; -yy308: - yych = *++lexer->cursor; - if (yych == 'r') goto yy430; - goto yy50; -yy309: - yych = *++lexer->cursor; - if (yych == 'e') goto yy431; - goto yy50; + if (yych != 'r') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 334 "src/ast-lexer.c" + { OPCODE(I64_XOR); RETURN(BINARY); } +#line 1960 "src/prebuilt/ast-lexer-gen.c" yy310: - yych = *++lexer->cursor; - if (yych <= 's') { - if (yych == 'q') goto yy432; - goto yy50; - } else { - if (yych <= 't') goto yy433; - if (yych <= 'u') goto yy434; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy311: - yych = *++lexer->cursor; - if (yych == 'r') goto yy435; - goto yy50; +#line 332 "src/ast-lexer.c" + { OPCODE(I64_OR); RETURN(BINARY); } +#line 1968 "src/prebuilt/ast-lexer-gen.c" yy312: yych = *++lexer->cursor; - if (yych == 'l') goto yy436; - goto yy50; + if (yych == 'i') goto yy320; + if (yych == 'm') goto yy319; + goto yy83; yy313: yych = *++lexer->cursor; - if (yych == 'o') goto yy437; - goto yy50; -yy314: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'l') goto yy438; - goto yy50; + if (yych == 'l') goto yy315; + if (yych == 'r') goto yy317; + goto yy83; yy315: - yych = *++lexer->cursor; - if (yych == 'm') goto yy440; - goto yy50; -yy316: - yych = *++lexer->cursor; - if (yych == 'd') goto yy441; - if (yych == 'n') goto yy442; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 342 "src/ast-lexer.c" + { OPCODE(I64_ROTL); RETURN(BINARY); } +#line 1988 "src/prebuilt/ast-lexer-gen.c" yy317: - yych = *++lexer->cursor; - if (yych <= 'n') { - if (yych == 'l') goto yy443; - goto yy50; - } else { - if (yych <= 'o') goto yy444; - if (yych == 't') goto yy445; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy318: - yych = *++lexer->cursor; - if (yych == 'i') goto yy446; - goto yy50; +#line 344 "src/ast-lexer.c" + { OPCODE(I64_ROTR); RETURN(BINARY); } +#line 1996 "src/prebuilt/ast-lexer-gen.c" yy319: yych = *++lexer->cursor; - if (yych == 'q') goto yy447; - goto yy50; + if (yych == '_') goto yy334; + goto yy83; yy320: yych = *++lexer->cursor; - if (yych == 'e') goto yy449; - if (yych == 't') goto yy450; - goto yy50; -yy321: + if (yych != 'n') goto yy83; yych = *++lexer->cursor; - if (yych <= 'n') { - if (yych == 'e') goto yy451; - goto yy50; - } else { - if (yych <= 'o') goto yy452; - if (yych == 't') goto yy453; - goto yy50; - } -yy322: - yych = *++lexer->cursor; - if (yych == 'u') goto yy454; - goto yy50; -yy323: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy455; - goto yy50; -yy324: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy457; - goto yy50; -yy325: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy459; - goto yy50; -yy326: + if (yych != 'p') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy460; - if (yych == 'o') goto yy461; - goto yy50; -yy327: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych <= 's') { - if (yych == 'h') goto yy462; - goto yy50; - } else { - if (yych <= 't') goto yy463; - if (yych <= 'u') goto yy464; - goto yy50; - } -yy328: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy465; - goto yy50; -yy329: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy466; - goto yy50; -yy330: + if (yych != '/') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy467; - goto yy50; -yy331: + if (yych != 'f') goto yy83; yych = *++lexer->cursor; - if (yych == 'd') goto yy468; - if (yych == 'n') goto yy469; - goto yy50; -yy332: + if (yych != '6') goto yy83; yych = *++lexer->cursor; - if (yych <= 'n') { - if (yych == 'l') goto yy470; - goto yy50; - } else { - if (yych <= 'o') goto yy471; - if (yych == 't') goto yy472; - goto yy50; + if (yych != '4') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy333: - yych = *++lexer->cursor; - if (yych == 'i') goto yy473; - goto yy50; +#line 415 "src/ast-lexer.c" + { OPCODE(I64_REINTERPRET_F64); RETURN(CONVERT); } +#line 2032 "src/prebuilt/ast-lexer-gen.c" yy334: yych = *++lexer->cursor; - if (yych == 'q') goto yy474; - if (yych == 'x') goto yy476; - goto yy50; + if (yych == 's') goto yy335; + if (yych == 'u') goto yy337; + goto yy83; yy335: - yych = *++lexer->cursor; - if (yych == 'e') goto yy477; - if (yych == 't') goto yy478; - goto yy50; -yy336: - yych = *++lexer->cursor; - if (yych <= 'n') { - if (yych == 'e') goto yy479; - goto yy50; - } else { - if (yych <= 'o') goto yy480; - if (yych == 't') goto yy481; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } +#line 326 "src/ast-lexer.c" + { OPCODE(I64_REM_S); RETURN(BINARY); } +#line 2045 "src/prebuilt/ast-lexer-gen.c" yy337: - yych = *++lexer->cursor; - if (yych == 'u') goto yy482; - goto yy50; -yy338: - yych = *++lexer->cursor; - if (yych == 'e') goto yy483; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 328 "src/ast-lexer.c" + { OPCODE(I64_REM_U); RETURN(BINARY); } +#line 2053 "src/prebuilt/ast-lexer-gen.c" yy339: yych = *++lexer->cursor; - if (yych == 'r') goto yy485; - goto yy50; -yy340: + if (yych != 'v') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy487; - goto yy50; -yy341: + if (yych != '_') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy488; - if (yych == 'o') goto yy489; - goto yy50; + if (yych == 's') goto yy342; + if (yych == 'u') goto yy344; + goto yy83; yy342: - yych = *++lexer->cursor; - if (yych <= 's') { - if (yych == 'h') goto yy490; - goto yy50; - } else { - if (yych <= 't') goto yy491; - if (yych <= 'u') goto yy492; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy343: - yych = *++lexer->cursor; - if (yych == 'r') goto yy493; - goto yy50; +#line 322 "src/ast-lexer.c" + { OPCODE(I64_DIV_S); RETURN(BINARY); } +#line 2070 "src/prebuilt/ast-lexer-gen.c" yy344: - yych = *++lexer->cursor; - if (yych == 'o') goto yy494; - goto yy50; -yy345: - yych = *++lexer->cursor; - if (yych == 's') goto yy495; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 324 "src/ast-lexer.c" + { OPCODE(I64_DIV_U); RETURN(BINARY); } +#line 2078 "src/prebuilt/ast-lexer-gen.c" yy346: yych = *++lexer->cursor; - if (yych == 't') goto yy496; - goto yy50; -yy347: - yych = *++lexer->cursor; - if (yych == 'i') goto yy498; - goto yy50; -yy348: + if (yych != 'l') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 444 "src/ast-lexer.c" - { RETURN(INPUT); } -#line 2783 "src/prebuilt/ast-lexer-gen.c" +#line 320 "src/ast-lexer.c" + { OPCODE(I64_MUL); RETURN(BINARY); } +#line 2088 "src/prebuilt/ast-lexer-gen.c" +yy349: + yych = *++lexer->cursor; + if (yych == 'd') goto yy353; + goto yy83; yy350: yych = *++lexer->cursor; - if (yych == 'e') goto yy499; - goto yy50; -yy351: + if (yych != 'd') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 424 "src/ast-lexer.c" - { RETURN(LOCAL); } -#line 2795 "src/prebuilt/ast-lexer-gen.c" +#line 330 "src/ast-lexer.c" + { OPCODE(I64_AND); RETURN(BINARY); } +#line 2102 "src/prebuilt/ast-lexer-gen.c" yy353: - yych = *++lexer->cursor; - if (yych == 'y') goto yy501; - goto yy50; -yy354: - yych = *++lexer->cursor; - if (yych == 'e') goto yy503; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 316 "src/ast-lexer.c" + { OPCODE(I64_ADD); RETURN(BINARY); } +#line 2110 "src/prebuilt/ast-lexer-gen.c" yy355: yych = *++lexer->cursor; - if (yych == 'x') goto yy505; - goto yy50; -yy356: + if (yych != 'p') goto yy83; + yych = *++lexer->cursor; + if (yych != 'c') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy506; - goto yy50; -yy357: + if (yych != 'n') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy508; - goto yy50; -yy358: + if (yych != 't') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 422 "src/ast-lexer.c" - { RETURN(PARAM); } -#line 2823 "src/prebuilt/ast-lexer-gen.c" -yy360: - yych = *++lexer->cursor; - if (yych == 't') goto yy510; - goto yy50; +#line 300 "src/ast-lexer.c" + { OPCODE(I64_POPCNT); RETURN(UNARY); } +#line 2126 "src/prebuilt/ast-lexer-gen.c" yy361: - yych = *++lexer->cursor; - if (yych == 't') goto yy511; - goto yy50; + ++lexer->cursor; + if ((yych = *lexer->cursor) <= 'Z') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; + } else { + if (yych <= '"') goto yy362; + if (yych <= '\'') goto yy82; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy82; + } else { + if (yych != ';') goto yy82; + } + } + } else { + if (yych <= 'z') { + if (yych <= '\\') { + if (yych >= '\\') goto yy82; + } else { + if (yych <= ']') goto yy362; + if (yych <= 'y') goto yy82; + goto yy381; + } + } else { + if (yych <= '|') { + if (yych >= '|') goto yy82; + } else { + if (yych == '~') goto yy82; + } + } + } yy362: - yych = *++lexer->cursor; - if (yych == 'n') goto yy513; - goto yy50; +#line 360 "src/ast-lexer.c" + { OPCODE(I64_EQ); RETURN(COMPARE); } +#line 2164 "src/prebuilt/ast-lexer-gen.c" yy363: yych = *++lexer->cursor; - if (yych == 't') goto yy515; - goto yy50; -yy364: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'l') goto yy517; - goto yy50; -yy365: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy518; - goto yy50; -yy366: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 429 "src/ast-lexer.c" - { RETURN(START); } -#line 2855 "src/prebuilt/ast-lexer-gen.c" -yy368: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 427 "src/ast-lexer.c" - { RETURN(TABLE); } -#line 2863 "src/prebuilt/ast-lexer-gen.c" -yy370: + if (yych != 'n') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy519; - goto yy50; -yy371: + if (yych != 'd') goto yy83; yych = *++lexer->cursor; - if (yych == 'c') goto yy520; - goto yy50; -yy372: + if (yych != '_') goto yy83; yych = *++lexer->cursor; - if (yych <= '/') goto yy50; - if (yych <= '0') goto yy521; - if (yych <= '9') goto yy523; - goto yy50; -yy373: + if (yych == 's') goto yy369; + if (yych == 'u') goto yy370; + goto yy83; +yy369: yych = *++lexer->cursor; - if (yych == 'c') goto yy525; - goto yy50; -yy374: + if (yych == '/') goto yy376; + goto yy83; +yy370: yych = *++lexer->cursor; - if (yych == '_') goto yy527; - goto yy50; -yy375: + if (yych != '/') goto yy83; yych = *++lexer->cursor; - if (yych == 'l') goto yy528; - goto yy50; -yy376: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych <= 'l') goto yy50; - if (yych <= 'm') goto yy529; - if (yych <= 'n') goto yy530; - goto yy50; -yy377: + if (yych != '3') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy531; - goto yy50; -yy378: + if (yych != '2') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 434 "src/ast-lexer.c" - { RETURN(EXPORT); } -#line 2907 "src/prebuilt/ast-lexer-gen.c" -yy380: +#line 392 "src/ast-lexer.c" + { OPCODE(I64_EXTEND_U_I32); RETURN(CONVERT); } +#line 2199 "src/prebuilt/ast-lexer-gen.c" +yy376: yych = *++lexer->cursor; - if (yych == 's') goto yy532; - goto yy50; -yy381: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == 'd') goto yy534; - goto yy50; -yy382: + if (yych != '3') goto yy83; yych = *++lexer->cursor; - if (yych == 'i') goto yy536; - goto yy50; + if (yych != '2') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 391 "src/ast-lexer.c" + { OPCODE(I64_EXTEND_S_I32); RETURN(CONVERT); } +#line 2213 "src/prebuilt/ast-lexer-gen.c" +yy381: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 294 "src/ast-lexer.c" + { OPCODE(I64_EQZ); RETURN(CONVERT); } +#line 2221 "src/prebuilt/ast-lexer-gen.c" yy383: yych = *++lexer->cursor; - if (yych == 'n') goto yy537; - if (yych == 'p') goto yy538; - goto yy50; + if (yych == 'z') goto yy392; + goto yy83; yy384: yych = *++lexer->cursor; - if (yych == 'm') goto yy539; - goto yy50; + if (yych == 'n') goto yy388; + goto yy83; yy385: yych = *++lexer->cursor; - if (yych == 'v') goto yy540; - goto yy50; -yy386: + if (yych != 'z') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 379 "src/ast-lexer.c" - { OPCODE(F32_EQ); RETURN(COMPARE); } -#line 2940 "src/prebuilt/ast-lexer-gen.c" +#line 298 "src/ast-lexer.c" + { OPCODE(I64_CTZ); RETURN(UNARY); } +#line 2239 "src/prebuilt/ast-lexer-gen.c" yy388: yych = *++lexer->cursor; - if (yych == 'o') goto yy542; - goto yy50; -yy389: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 389 "src/ast-lexer.c" - { OPCODE(F32_GE); RETURN(COMPARE); } -#line 2952 "src/prebuilt/ast-lexer-gen.c" -yy391: + if (yych != 's') goto yy83; + yych = *++lexer->cursor; + if (yych != 't') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 387 "src/ast-lexer.c" - { OPCODE(F32_GT); RETURN(COMPARE); } -#line 2960 "src/prebuilt/ast-lexer-gen.c" -yy393: +#line 290 "src/ast-lexer.c" + { TYPE(I64); RETURN(CONST); } +#line 2251 "src/prebuilt/ast-lexer-gen.c" +yy392: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 385 "src/ast-lexer.c" - { OPCODE(F32_LE); RETURN(COMPARE); } -#line 2968 "src/prebuilt/ast-lexer-gen.c" +#line 296 "src/ast-lexer.c" + { OPCODE(I64_CLZ); RETURN(UNARY); } +#line 2259 "src/prebuilt/ast-lexer-gen.c" +yy394: + yych = *++lexer->cursor; + if (yych == 'l') goto yy411; + if (yych == 'r') goto yy413; + goto yy83; yy395: yych = *++lexer->cursor; - if (yych == 'a') goto yy543; - goto yy50; + if (yych == 'o') goto yy399; + goto yy83; yy396: + yych = *++lexer->cursor; + if (yych != 'b') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 383 "src/ast-lexer.c" - { OPCODE(F32_LT); RETURN(COMPARE); } -#line 2980 "src/prebuilt/ast-lexer-gen.c" -yy398: - yych = *++lexer->cursor; - if (yych == 'x') goto yy544; - goto yy50; +#line 318 "src/ast-lexer.c" + { OPCODE(I64_SUB); RETURN(BINARY); } +#line 2278 "src/prebuilt/ast-lexer-gen.c" yy399: yych = *++lexer->cursor; - if (yych == 'n') goto yy546; - goto yy50; -yy400: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'l') goto yy548; - goto yy50; -yy401: + if (yych != 'e') goto yy83; ++lexer->cursor; - if ((yych = *lexer->cursor) <= '[') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; + if ((yych = *lexer->cursor) <= '7') { + if (yych <= '+') { + if (yych <= '"') { + if (yych == '!') goto yy82; } else { - if (yych <= '"') goto yy402; - if (yych <= '\'') goto yy49; + if (yych <= '\'') goto yy82; + if (yych >= '*') goto yy82; } } else { - if (yych <= ':') { - if (yych != ',') goto yy49; + if (yych <= '1') { + if (yych <= ',') goto yy402; + if (yych <= '0') goto yy82; + goto yy403; } else { - if (yych <= ';') goto yy402; - if (yych <= 'Z') goto yy49; + if (yych == '3') goto yy404; + goto yy82; } } } else { - if (yych <= 'g') { - if (yych <= '`') { - if (yych != ']') goto yy49; + if (yych <= '\\') { + if (yych <= ';') { + if (yych <= '8') goto yy405; + if (yych <= ':') goto yy82; } else { - if (yych <= 'a') goto yy550; - if (yych <= 'f') goto yy49; - goto yy551; + if (yych != '[') goto yy82; } } else { - if (yych <= '|') { - if (yych != '{') goto yy49; + if (yych <= '{') { + if (yych <= ']') goto yy402; + if (yych <= 'z') goto yy82; } else { - if (yych == '~') goto yy49; + if (yych == '}') goto yy402; + if (yych <= '~') goto yy82; } } } yy402: -#line 381 "src/ast-lexer.c" - { OPCODE(F32_NE); RETURN(COMPARE); } -#line 3031 "src/prebuilt/ast-lexer-gen.c" +#line 269 "src/ast-lexer.c" + { OPCODE(I64_STORE); RETURN(STORE); } +#line 2324 "src/prebuilt/ast-lexer-gen.c" yy403: yych = *++lexer->cursor; - if (yych == 'i') goto yy553; - goto yy50; + if (yych == '6') goto yy409; + goto yy83; yy404: yych = *++lexer->cursor; - if (yych == 'r') goto yy554; - goto yy50; + if (yych == '2') goto yy407; + goto yy83; yy405: - yych = *++lexer->cursor; - if (yych == 'o') goto yy555; - goto yy50; -yy406: - yych = *++lexer->cursor; - if (yych == 'b') goto yy556; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 283 "src/ast-lexer.c" + { OPCODE(I64_STORE8); RETURN(STORE); } +#line 2340 "src/prebuilt/ast-lexer-gen.c" yy407: - yych = *++lexer->cursor; - if (yych == 'u') goto yy558; - goto yy50; -yy408: - yych = *++lexer->cursor; - if (yych == 's') goto yy559; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 286 "src/ast-lexer.c" + { OPCODE(I64_STORE32); RETURN(STORE); } +#line 2348 "src/prebuilt/ast-lexer-gen.c" yy409: - yych = *++lexer->cursor; - if (yych == 'd') goto yy561; - goto yy50; -yy410: - yych = *++lexer->cursor; - if (yych == 'i') goto yy563; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 285 "src/ast-lexer.c" + { OPCODE(I64_STORE16); RETURN(STORE); } +#line 2356 "src/prebuilt/ast-lexer-gen.c" yy411: - yych = *++lexer->cursor; - if (yych == 'n') goto yy564; - if (yych == 'p') goto yy565; - goto yy50; -yy412: - yych = *++lexer->cursor; - if (yych == 'v') goto yy566; - goto yy50; -yy413: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 380 "src/ast-lexer.c" - { OPCODE(F64_EQ); RETURN(COMPARE); } -#line 3080 "src/prebuilt/ast-lexer-gen.c" -yy415: +#line 336 "src/ast-lexer.c" + { OPCODE(I64_SHL); RETURN(BINARY); } +#line 2364 "src/prebuilt/ast-lexer-gen.c" +yy413: + yych = *++lexer->cursor; + if (yych != '_') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy568; - goto yy50; -yy416: + if (yych == 's') goto yy415; + if (yych == 'u') goto yy417; + goto yy83; +yy415: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 390 "src/ast-lexer.c" - { OPCODE(F64_GE); RETURN(COMPARE); } -#line 3092 "src/prebuilt/ast-lexer-gen.c" -yy418: +#line 338 "src/ast-lexer.c" + { OPCODE(I64_SHR_S); RETURN(BINARY); } +#line 2379 "src/prebuilt/ast-lexer-gen.c" +yy417: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 388 "src/ast-lexer.c" - { OPCODE(F64_GT); RETURN(COMPARE); } -#line 3100 "src/prebuilt/ast-lexer-gen.c" +#line 340 "src/ast-lexer.c" + { OPCODE(I64_SHR_U); RETURN(BINARY); } +#line 2387 "src/prebuilt/ast-lexer-gen.c" +yy419: + yych = *++lexer->cursor; + if (yych == '_') goto yy450; + goto yy83; yy420: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 386 "src/ast-lexer.c" - { OPCODE(F64_LE); RETURN(COMPARE); } -#line 3108 "src/prebuilt/ast-lexer-gen.c" -yy422: yych = *++lexer->cursor; - if (yych == 'a') goto yy569; - goto yy50; + if (yych == 'a') goto yy427; + goto yy83; +yy421: + yych = *++lexer->cursor; + if (yych != '_') goto yy83; + yych = *++lexer->cursor; + if (yych == 's') goto yy423; + if (yych == 'u') goto yy425; + goto yy83; yy423: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 384 "src/ast-lexer.c" - { OPCODE(F64_LT); RETURN(COMPARE); } -#line 3120 "src/prebuilt/ast-lexer-gen.c" +#line 364 "src/ast-lexer.c" + { OPCODE(I64_LT_S); RETURN(COMPARE); } +#line 2410 "src/prebuilt/ast-lexer-gen.c" yy425: - yych = *++lexer->cursor; - if (yych == 'x') goto yy570; - goto yy50; -yy426: - yych = *++lexer->cursor; - if (yych == 'n') goto yy572; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 366 "src/ast-lexer.c" + { OPCODE(I64_LT_U); RETURN(COMPARE); } +#line 2418 "src/prebuilt/ast-lexer-gen.c" yy427: yych = *++lexer->cursor; - if (yych == 'l') goto yy574; - goto yy50; -yy428: + if (yych != 'd') goto yy83; ++lexer->cursor; - if ((yych = *lexer->cursor) <= '[') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; + if ((yych = *lexer->cursor) <= '7') { + if (yych <= '+') { + if (yych <= '"') { + if (yych == '!') goto yy82; } else { - if (yych <= '"') goto yy429; - if (yych <= '\'') goto yy49; + if (yych <= '\'') goto yy82; + if (yych >= '*') goto yy82; } } else { - if (yych <= ':') { - if (yych != ',') goto yy49; + if (yych <= '1') { + if (yych <= ',') goto yy429; + if (yych <= '0') goto yy82; + goto yy431; } else { - if (yych <= ';') goto yy429; - if (yych <= 'Z') goto yy49; + if (yych == '3') goto yy432; + goto yy82; } } } else { - if (yych <= 'g') { - if (yych <= '`') { - if (yych != ']') goto yy49; + if (yych <= '\\') { + if (yych <= ';') { + if (yych <= '8') goto yy430; + if (yych <= ':') goto yy82; } else { - if (yych <= 'a') goto yy576; - if (yych <= 'f') goto yy49; - goto yy577; + if (yych != '[') goto yy82; } } else { - if (yych <= '|') { - if (yych != '{') goto yy49; + if (yych <= '{') { + if (yych <= ']') goto yy429; + if (yych <= 'z') goto yy82; } else { - if (yych == '~') goto yy49; + if (yych == '}') goto yy429; + if (yych <= '~') goto yy82; } } } yy429: -#line 382 "src/ast-lexer.c" - { OPCODE(F64_NE); RETURN(COMPARE); } -#line 3171 "src/prebuilt/ast-lexer-gen.c" +#line 265 "src/ast-lexer.c" + { OPCODE(I64_LOAD); RETURN(LOAD); } +#line 2462 "src/prebuilt/ast-lexer-gen.c" yy430: yych = *++lexer->cursor; - if (yych == 'o') goto yy579; - goto yy50; + if (yych == '_') goto yy445; + goto yy83; yy431: yych = *++lexer->cursor; - if (yych == 'i') goto yy580; - goto yy50; + if (yych == '6') goto yy439; + goto yy83; yy432: yych = *++lexer->cursor; - if (yych == 'r') goto yy581; - goto yy50; -yy433: + if (yych != '2') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy582; - goto yy50; -yy434: + if (yych != '_') goto yy83; yych = *++lexer->cursor; - if (yych == 'b') goto yy583; - goto yy50; + if (yych == 's') goto yy435; + if (yych == 'u') goto yy437; + goto yy83; yy435: - yych = *++lexer->cursor; - if (yych == 'u') goto yy585; - goto yy50; -yy436: - yych = *++lexer->cursor; - if (yych == 'o') goto yy586; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 280 "src/ast-lexer.c" + { OPCODE(I64_LOAD32_S); RETURN(LOAD); } +#line 2487 "src/prebuilt/ast-lexer-gen.c" yy437: - yych = *++lexer->cursor; - if (yych == 'c') goto yy587; - goto yy50; -yy438: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 425 "src/ast-lexer.c" - { RETURN(GLOBAL); } -#line 3211 "src/prebuilt/ast-lexer-gen.c" -yy440: - yych = *++lexer->cursor; - if (yych == 'e') goto yy588; - goto yy50; -yy441: +#line 281 "src/ast-lexer.c" + { OPCODE(I64_LOAD32_U); RETURN(LOAD); } +#line 2495 "src/prebuilt/ast-lexer-gen.c" +yy439: yych = *++lexer->cursor; - if (yych == 'd') goto yy589; - goto yy50; -yy442: + if (yych != '_') goto yy83; yych = *++lexer->cursor; - if (yych == 'd') goto yy591; - goto yy50; + if (yych == 's') goto yy441; + if (yych == 'u') goto yy443; + goto yy83; +yy441: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 277 "src/ast-lexer.c" + { OPCODE(I64_LOAD16_S); RETURN(LOAD); } +#line 2510 "src/prebuilt/ast-lexer-gen.c" yy443: - yych = *++lexer->cursor; - if (yych == 'z') goto yy593; - goto yy50; -yy444: - yych = *++lexer->cursor; - if (yych == 'n') goto yy595; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 279 "src/ast-lexer.c" + { OPCODE(I64_LOAD16_U); RETURN(LOAD); } +#line 2518 "src/prebuilt/ast-lexer-gen.c" yy445: yych = *++lexer->cursor; - if (yych == 'z') goto yy596; - goto yy50; + if (yych == 's') goto yy446; + if (yych == 'u') goto yy448; + goto yy83; yy446: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 273 "src/ast-lexer.c" + { OPCODE(I64_LOAD8_S); RETURN(LOAD); } +#line 2531 "src/prebuilt/ast-lexer-gen.c" +yy448: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 275 "src/ast-lexer.c" + { OPCODE(I64_LOAD8_U); RETURN(LOAD); } +#line 2539 "src/prebuilt/ast-lexer-gen.c" +yy450: yych = *++lexer->cursor; - if (yych == 'v') goto yy598; - goto yy50; -yy447: + if (yych == 's') goto yy451; + if (yych == 'u') goto yy453; + goto yy83; +yy451: ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'Z') { + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 368 "src/ast-lexer.c" + { OPCODE(I64_LE_S); RETURN(COMPARE); } +#line 2552 "src/prebuilt/ast-lexer-gen.c" +yy453: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 370 "src/ast-lexer.c" + { OPCODE(I64_LE_U); RETURN(COMPARE); } +#line 2560 "src/prebuilt/ast-lexer-gen.c" +yy455: + ++lexer->cursor; + if ((yych = *lexer->cursor) <= ':') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy49; + if (yych >= '!') goto yy82; } else { - if (yych <= '"') goto yy448; - if (yych <= '\'') goto yy49; + if (yych <= '"') goto yy456; + if (yych <= '\'') goto yy82; } } else { if (yych <= ',') { - if (yych <= '+') goto yy49; + if (yych <= '+') goto yy82; } else { - if (yych != ';') goto yy49; + if (yych == '.') goto yy457; + goto yy82; } } } else { - if (yych <= 'z') { - if (yych <= '\\') { - if (yych >= '\\') goto yy49; + if (yych <= ']') { + if (yych <= 'Z') { + if (yych >= '<') goto yy82; } else { - if (yych <= ']') goto yy448; - if (yych <= 'y') goto yy49; - goto yy599; + if (yych == '\\') goto yy82; } } else { if (yych <= '|') { - if (yych >= '|') goto yy49; + if (yych != '{') goto yy82; } else { - if (yych == '~') goto yy49; + if (yych == '~') goto yy82; } } } -yy448: -#line 359 "src/ast-lexer.c" - { OPCODE(I32_EQ); RETURN(COMPARE); } -#line 3277 "src/prebuilt/ast-lexer-gen.c" -yy449: - yych = *++lexer->cursor; - if (yych == '_') goto yy601; - goto yy50; -yy450: - yych = *++lexer->cursor; - if (yych == '_') goto yy602; - goto yy50; -yy451: - yych = *++lexer->cursor; - if (yych == '_') goto yy603; - goto yy50; -yy452: - yych = *++lexer->cursor; - if (yych == 'a') goto yy604; - goto yy50; -yy453: +yy456: +#line 237 "src/ast-lexer.c" + { TYPE(I32); RETURN(VALUE_TYPE); } +#line 2597 "src/prebuilt/ast-lexer-gen.c" +yy457: yych = *++lexer->cursor; - if (yych == '_') goto yy605; - goto yy50; -yy454: + switch (yych) { + case 'a': goto yy463; + case 'c': goto yy460; + case 'd': goto yy465; + case 'e': goto yy461; + case 'g': goto yy470; + case 'l': goto yy458; + case 'm': goto yy464; + case 'n': goto yy469; + case 'o': goto yy467; + case 'p': goto yy462; + case 'r': goto yy466; + case 's': goto yy459; + case 't': goto yy472; + case 'w': goto yy471; + case 'x': goto yy468; + default: goto yy83; + } +yy458: yych = *++lexer->cursor; - if (yych == 'l') goto yy606; - goto yy50; -yy455: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 361 "src/ast-lexer.c" - { OPCODE(I32_NE); RETURN(COMPARE); } -#line 3309 "src/prebuilt/ast-lexer-gen.c" -yy457: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yych <= 'n') { + if (yych == 'e') goto yy609; + goto yy83; + } else { + if (yych <= 'o') goto yy610; + if (yych == 't') goto yy611; + goto yy83; } -#line 331 "src/ast-lexer.c" - { OPCODE(I32_OR); RETURN(BINARY); } -#line 3317 "src/prebuilt/ast-lexer-gen.c" yy459: yych = *++lexer->cursor; - if (yych == 'p') goto yy608; - goto yy50; + if (yych <= 's') { + if (yych == 'h') goto yy587; + goto yy83; + } else { + if (yych <= 't') goto yy588; + if (yych <= 'u') goto yy589; + goto yy83; + } yy460: yych = *++lexer->cursor; - if (yych == 'i') goto yy609; - if (yych == 'm') goto yy610; - goto yy50; + if (yych <= 'n') { + if (yych == 'l') goto yy576; + goto yy83; + } else { + if (yych <= 'o') goto yy577; + if (yych == 't') goto yy578; + goto yy83; + } yy461: yych = *++lexer->cursor; - if (yych == 't') goto yy611; - goto yy50; + if (yych == 'q') goto yy572; + goto yy83; yy462: yych = *++lexer->cursor; - if (yych == 'l') goto yy612; - if (yych == 'r') goto yy614; - goto yy50; + if (yych == 'o') goto yy566; + goto yy83; yy463: yych = *++lexer->cursor; - if (yych == 'o') goto yy615; - goto yy50; + if (yych == 'd') goto yy560; + if (yych == 'n') goto yy561; + goto yy83; yy464: yych = *++lexer->cursor; - if (yych == 'b') goto yy616; - goto yy50; + if (yych == 'u') goto yy557; + goto yy83; yy465: yych = *++lexer->cursor; - if (yych == 'u') goto yy618; - goto yy50; + if (yych == 'i') goto yy550; + goto yy83; yy466: yych = *++lexer->cursor; - if (yych == 'a') goto yy619; - goto yy50; + if (yych == 'e') goto yy523; + if (yych == 'o') goto yy524; + goto yy83; yy467: yych = *++lexer->cursor; - if (yych == 'r') goto yy620; - goto yy50; + if (yych == 'r') goto yy521; + goto yy83; yy468: yych = *++lexer->cursor; - if (yych == 'd') goto yy622; - goto yy50; + if (yych == 'o') goto yy518; + goto yy83; yy469: yych = *++lexer->cursor; - if (yych == 'd') goto yy624; - goto yy50; + if (yych == 'e') goto yy516; + goto yy83; yy470: yych = *++lexer->cursor; - if (yych == 'z') goto yy626; - goto yy50; + if (yych == 'e') goto yy504; + if (yych == 't') goto yy505; + goto yy83; yy471: yych = *++lexer->cursor; - if (yych == 'n') goto yy628; - goto yy50; + if (yych == 'r') goto yy496; + goto yy83; yy472: yych = *++lexer->cursor; - if (yych == 'z') goto yy629; - goto yy50; -yy473: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'v') goto yy631; - goto yy50; -yy474: - ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'Z') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; - } else { - if (yych <= '"') goto yy475; - if (yych <= '\'') goto yy49; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy49; - } else { - if (yych != ';') goto yy49; - } - } - } else { - if (yych <= 'z') { - if (yych <= '\\') { - if (yych >= '\\') goto yy49; - } else { - if (yych <= ']') goto yy475; - if (yych <= 'y') goto yy49; - goto yy632; - } - } else { - if (yych <= '|') { - if (yych >= '|') goto yy49; - } else { - if (yych == '~') goto yy49; - } - } - } -yy475: -#line 360 "src/ast-lexer.c" - { OPCODE(I64_EQ); RETURN(COMPARE); } -#line 3417 "src/prebuilt/ast-lexer-gen.c" -yy476: + if (yych != 'u') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy634; - goto yy50; -yy477: + if (yych != 'n') goto yy83; yych = *++lexer->cursor; - if (yych == '_') goto yy635; - goto yy50; + if (yych != 'c') goto yy83; + yych = *++lexer->cursor; + if (yych != '_') goto yy83; + yych = *++lexer->cursor; + if (yych == 's') goto yy478; + if (yych == 'u') goto yy479; + goto yy83; yy478: yych = *++lexer->cursor; - if (yych == '_') goto yy636; - goto yy50; + if (yych == '/') goto yy488; + goto yy83; yy479: yych = *++lexer->cursor; - if (yych == '_') goto yy637; - goto yy50; -yy480: + if (yych != '/') goto yy83; yych = *++lexer->cursor; - if (yych == 'a') goto yy638; - goto yy50; -yy481: + if (yych != 'f') goto yy83; yych = *++lexer->cursor; - if (yych == '_') goto yy639; - goto yy50; + if (yych == '3') goto yy482; + if (yych == '6') goto yy483; + goto yy83; yy482: yych = *++lexer->cursor; - if (yych == 'l') goto yy640; - goto yy50; + if (yych == '2') goto yy486; + goto yy83; yy483: + yych = *++lexer->cursor; + if (yych != '4') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 362 "src/ast-lexer.c" - { OPCODE(I64_NE); RETURN(COMPARE); } -#line 3453 "src/prebuilt/ast-lexer-gen.c" -yy485: +#line 400 "src/ast-lexer.c" + { OPCODE(I32_TRUNC_U_F64); RETURN(CONVERT); } +#line 2736 "src/prebuilt/ast-lexer-gen.c" +yy486: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 332 "src/ast-lexer.c" - { OPCODE(I64_OR); RETURN(BINARY); } -#line 3461 "src/prebuilt/ast-lexer-gen.c" -yy487: - yych = *++lexer->cursor; - if (yych == 'p') goto yy642; - goto yy50; +#line 398 "src/ast-lexer.c" + { OPCODE(I32_TRUNC_U_F32); RETURN(CONVERT); } +#line 2744 "src/prebuilt/ast-lexer-gen.c" yy488: yych = *++lexer->cursor; - if (yych == 'i') goto yy643; - if (yych == 'm') goto yy644; - goto yy50; -yy489: + if (yych != 'f') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy645; - goto yy50; + if (yych == '3') goto yy490; + if (yych == '6') goto yy491; + goto yy83; yy490: yych = *++lexer->cursor; - if (yych == 'l') goto yy646; - if (yych == 'r') goto yy648; - goto yy50; + if (yych == '2') goto yy494; + goto yy83; yy491: yych = *++lexer->cursor; - if (yych == 'o') goto yy649; - goto yy50; -yy492: + if (yych != '4') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 396 "src/ast-lexer.c" + { OPCODE(I32_TRUNC_S_F64); RETURN(CONVERT); } +#line 2765 "src/prebuilt/ast-lexer-gen.c" +yy494: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 394 "src/ast-lexer.c" + { OPCODE(I32_TRUNC_S_F32); RETURN(CONVERT); } +#line 2773 "src/prebuilt/ast-lexer-gen.c" +yy496: yych = *++lexer->cursor; - if (yych == 'b') goto yy650; - goto yy50; -yy493: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych == 'u') goto yy652; - goto yy50; -yy494: + if (yych != 'p') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy653; - goto yy50; -yy495: + if (yych != '/') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy655; - goto yy50; -yy496: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 433 "src/ast-lexer.c" - { RETURN(IMPORT); } -#line 3507 "src/prebuilt/ast-lexer-gen.c" -yy498: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy657; - goto yy50; -yy499: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 436 "src/ast-lexer.c" - { RETURN(INVOKE); } -#line 3519 "src/prebuilt/ast-lexer-gen.c" -yy501: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 428 "src/ast-lexer.c" - { RETURN(MEMORY); } -#line 3527 "src/prebuilt/ast-lexer-gen.c" -yy503: + if (yych != '6') goto yy83; + yych = *++lexer->cursor; + if (yych != '4') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 426 "src/ast-lexer.c" - { RETURN(MODULE); } -#line 3535 "src/prebuilt/ast-lexer-gen.c" +#line 393 "src/ast-lexer.c" + { OPCODE(I32_WRAP_I64); RETURN(CONVERT); } +#line 2793 "src/prebuilt/ast-lexer-gen.c" +yy504: + yych = *++lexer->cursor; + if (yych == '_') goto yy511; + goto yy83; yy505: yych = *++lexer->cursor; - if (yych <= '@') { - if (yych <= '/') goto yy50; - if (yych <= '9') goto yy658; - goto yy50; - } else { - if (yych <= 'F') goto yy658; - if (yych <= '`') goto yy50; - if (yych <= 'f') goto yy658; - goto yy50; - } -yy506: + if (yych != '_') goto yy83; + yych = *++lexer->cursor; + if (yych == 's') goto yy507; + if (yych == 'u') goto yy509; + goto yy83; +yy507: ++lexer->cursor; - if ((yych = *lexer->cursor) <= '<') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; - } else { - if (yych <= '"') goto yy507; - if (yych <= '\'') goto yy49; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy49; - } else { - if (yych != ';') goto yy49; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych <= '=') goto yy660; - goto yy49; - } else { - if (yych == '\\') goto yy49; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy49; - } else { - if (yych == '~') goto yy49; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy507: -#line 432 "src/ast-lexer.c" - { RETURN(OFFSET); } -#line 3584 "src/prebuilt/ast-lexer-gen.c" -yy508: +#line 371 "src/ast-lexer.c" + { OPCODE(I32_GT_S); RETURN(COMPARE); } +#line 2812 "src/prebuilt/ast-lexer-gen.c" +yy509: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 445 "src/ast-lexer.c" - { RETURN(OUTPUT); } -#line 3592 "src/prebuilt/ast-lexer-gen.c" -yy510: - yych = *++lexer->cursor; - if (yych == 'e') goto yy661; - goto yy50; +#line 373 "src/ast-lexer.c" + { OPCODE(I32_GT_U); RETURN(COMPARE); } +#line 2820 "src/prebuilt/ast-lexer-gen.c" yy511: + yych = *++lexer->cursor; + if (yych == 's') goto yy512; + if (yych == 'u') goto yy514; + goto yy83; +yy512: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 423 "src/ast-lexer.c" - { RETURN(RESULT); } -#line 3604 "src/prebuilt/ast-lexer-gen.c" -yy513: +#line 375 "src/ast-lexer.c" + { OPCODE(I32_GE_S); RETURN(COMPARE); } +#line 2833 "src/prebuilt/ast-lexer-gen.c" +yy514: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 258 "src/ast-lexer.c" - { RETURN(RETURN); } -#line 3612 "src/prebuilt/ast-lexer-gen.c" -yy515: +#line 377 "src/ast-lexer.c" + { OPCODE(I32_GE_U); RETURN(COMPARE); } +#line 2841 "src/prebuilt/ast-lexer-gen.c" +yy516: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 416 "src/ast-lexer.c" - { RETURN(SELECT); } -#line 3620 "src/prebuilt/ast-lexer-gen.c" -yy517: - yych = *++lexer->cursor; - if (yych == 'o') goto yy662; - goto yy50; +#line 361 "src/ast-lexer.c" + { OPCODE(I32_NE); RETURN(COMPARE); } +#line 2849 "src/prebuilt/ast-lexer-gen.c" yy518: yych = *++lexer->cursor; - if (yych == 'c') goto yy663; - goto yy50; -yy519: - yych = *++lexer->cursor; - if (yych == 'c') goto yy664; - goto yy50; -yy520: - yych = *++lexer->cursor; - if (yych == 'h') goto yy665; - goto yy50; + if (yych != 'r') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 333 "src/ast-lexer.c" + { OPCODE(I32_XOR); RETURN(BINARY); } +#line 2859 "src/prebuilt/ast-lexer-gen.c" yy521: ++lexer->cursor; - if ((yych = *lexer->cursor) <= ';') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; - } else { - if (yych <= '"') goto yy522; - if (yych <= '\'') goto yy49; - } - } else { - if (yych <= '/') { - if (yych != ',') goto yy49; - } else { - if (yych <= '9') goto yy523; - if (yych <= ':') goto yy49; - } - } - } else { - if (yych <= 'x') { - if (yych <= '\\') { - if (yych != '[') goto yy49; - } else { - if (yych <= ']') goto yy522; - if (yych <= 'w') goto yy49; - goto yy666; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy49; - } else { - if (yych == '~') goto yy49; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy522: -#line 288 "src/ast-lexer.c" - { TEXT_AT(6); RETURN(ALIGN_EQ_NAT); } -#line 3675 "src/prebuilt/ast-lexer-gen.c" +#line 331 "src/ast-lexer.c" + { OPCODE(I32_OR); RETURN(BINARY); } +#line 2867 "src/prebuilt/ast-lexer-gen.c" yy523: + yych = *++lexer->cursor; + if (yych == 'i') goto yy531; + if (yych == 'm') goto yy530; + goto yy83; +yy524: + yych = *++lexer->cursor; + if (yych != 't') goto yy83; + yych = *++lexer->cursor; + if (yych == 'l') goto yy526; + if (yych == 'r') goto yy528; + goto yy83; +yy526: ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= ':') { - if (yych <= ')') { - if (yych <= '!') { - if (yych <= ' ') goto yy522; - goto yy49; - } else { - if (yych <= '"') goto yy522; - if (yych <= '\'') goto yy49; - goto yy522; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy49; - goto yy522; - } else { - if (yych <= '/') goto yy49; - if (yych <= '9') goto yy523; - goto yy49; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych <= ';') goto yy522; - goto yy49; - } else { - if (yych == '\\') goto yy49; - goto yy522; - } - } else { - if (yych <= '|') { - if (yych == '{') goto yy522; - goto yy49; - } else { - if (yych == '~') goto yy49; - goto yy522; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy525: +#line 341 "src/ast-lexer.c" + { OPCODE(I32_ROTL); RETURN(BINARY); } +#line 2887 "src/prebuilt/ast-lexer-gen.c" +yy528: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 241 "src/ast-lexer.c" - { RETURN(ANYFUNC); } -#line 3726 "src/prebuilt/ast-lexer-gen.c" -yy527: +#line 343 "src/ast-lexer.c" + { OPCODE(I32_ROTR); RETURN(BINARY); } +#line 2895 "src/prebuilt/ast-lexer-gen.c" +yy530: yych = *++lexer->cursor; - switch (yych) { - case 'i': goto yy667; - case 'm': goto yy668; - case 'r': goto yy669; - case 't': goto yy670; - case 'u': goto yy671; - default: goto yy50; - } -yy528: + if (yych == '_') goto yy545; + goto yy83; +yy531: yych = *++lexer->cursor; - if (yych == 'e') goto yy672; - goto yy50; -yy529: + if (yych != 'n') goto yy83; yych = *++lexer->cursor; - if (yych == 'p') goto yy674; - goto yy50; -yy530: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'd') goto yy675; - goto yy50; -yy531: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == '_') goto yy676; - goto yy50; -yy532: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 303 "src/ast-lexer.c" - { OPCODE(F32_ABS); RETURN(UNARY); } -#line 3760 "src/prebuilt/ast-lexer-gen.c" -yy534: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 345 "src/ast-lexer.c" - { OPCODE(F32_ADD); RETURN(BINARY); } -#line 3768 "src/prebuilt/ast-lexer-gen.c" -yy536: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'l') goto yy677; - goto yy50; -yy537: + if (yych != 'p') goto yy83; yych = *++lexer->cursor; - if (yych == 's') goto yy679; - if (yych == 'v') goto yy680; - goto yy50; -yy538: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'y') goto yy681; - goto yy50; -yy539: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy682; - goto yy50; -yy540: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 351 "src/ast-lexer.c" - { OPCODE(F32_DIV); RETURN(BINARY); } -#line 3793 "src/prebuilt/ast-lexer-gen.c" -yy542: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy683; - goto yy50; -yy543: + if (yych != '/') goto yy83; yych = *++lexer->cursor; - if (yych == 'd') goto yy684; - goto yy50; -yy544: + if (yych != 'f') goto yy83; + yych = *++lexer->cursor; + if (yych != '3') goto yy83; + yych = *++lexer->cursor; + if (yych != '2') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 355 "src/ast-lexer.c" - { OPCODE(F32_MAX); RETURN(BINARY); } -#line 3809 "src/prebuilt/ast-lexer-gen.c" +#line 413 "src/ast-lexer.c" + { OPCODE(I32_REINTERPRET_F32); RETURN(CONVERT); } +#line 2931 "src/prebuilt/ast-lexer-gen.c" +yy545: + yych = *++lexer->cursor; + if (yych == 's') goto yy546; + if (yych == 'u') goto yy548; + goto yy83; yy546: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 353 "src/ast-lexer.c" - { OPCODE(F32_MIN); RETURN(BINARY); } -#line 3817 "src/prebuilt/ast-lexer-gen.c" +#line 325 "src/ast-lexer.c" + { OPCODE(I32_REM_S); RETURN(BINARY); } +#line 2944 "src/prebuilt/ast-lexer-gen.c" yy548: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 349 "src/ast-lexer.c" - { OPCODE(F32_MUL); RETURN(BINARY); } -#line 3825 "src/prebuilt/ast-lexer-gen.c" +#line 327 "src/ast-lexer.c" + { OPCODE(I32_REM_U); RETURN(BINARY); } +#line 2952 "src/prebuilt/ast-lexer-gen.c" yy550: yych = *++lexer->cursor; - if (yych == 'r') goto yy686; - goto yy50; -yy551: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 301 "src/ast-lexer.c" - { OPCODE(F32_NEG); RETURN(UNARY); } -#line 3837 "src/prebuilt/ast-lexer-gen.c" -yy553: + if (yych != 'v') goto yy83; yych = *++lexer->cursor; - if (yych == 'n') goto yy687; - goto yy50; -yy554: + if (yych != '_') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy688; - goto yy50; + if (yych == 's') goto yy553; + if (yych == 'u') goto yy555; + goto yy83; +yy553: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 321 "src/ast-lexer.c" + { OPCODE(I32_DIV_S); RETURN(BINARY); } +#line 2969 "src/prebuilt/ast-lexer-gen.c" yy555: - yych = *++lexer->cursor; - if (yych == 'r') goto yy690; - goto yy50; -yy556: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 347 "src/ast-lexer.c" - { OPCODE(F32_SUB); RETURN(BINARY); } -#line 3857 "src/prebuilt/ast-lexer-gen.c" -yy558: +#line 323 "src/ast-lexer.c" + { OPCODE(I32_DIV_U); RETURN(BINARY); } +#line 2977 "src/prebuilt/ast-lexer-gen.c" +yy557: yych = *++lexer->cursor; - if (yych == 'n') goto yy691; - goto yy50; -yy559: + if (yych != 'l') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 304 "src/ast-lexer.c" - { OPCODE(F64_ABS); RETURN(UNARY); } -#line 3869 "src/prebuilt/ast-lexer-gen.c" +#line 319 "src/ast-lexer.c" + { OPCODE(I32_MUL); RETURN(BINARY); } +#line 2987 "src/prebuilt/ast-lexer-gen.c" +yy560: + yych = *++lexer->cursor; + if (yych == 'd') goto yy564; + goto yy83; yy561: + yych = *++lexer->cursor; + if (yych != 'd') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 346 "src/ast-lexer.c" - { OPCODE(F64_ADD); RETURN(BINARY); } -#line 3877 "src/prebuilt/ast-lexer-gen.c" -yy563: - yych = *++lexer->cursor; - if (yych == 'l') goto yy692; - goto yy50; +#line 329 "src/ast-lexer.c" + { OPCODE(I32_AND); RETURN(BINARY); } +#line 3001 "src/prebuilt/ast-lexer-gen.c" yy564: - yych = *++lexer->cursor; - if (yych == 's') goto yy694; - if (yych == 'v') goto yy695; - goto yy50; -yy565: - yych = *++lexer->cursor; - if (yych == 'y') goto yy696; - goto yy50; -yy566: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 352 "src/ast-lexer.c" - { OPCODE(F64_DIV); RETURN(BINARY); } -#line 3898 "src/prebuilt/ast-lexer-gen.c" -yy568: +#line 315 "src/ast-lexer.c" + { OPCODE(I32_ADD); RETURN(BINARY); } +#line 3009 "src/prebuilt/ast-lexer-gen.c" +yy566: yych = *++lexer->cursor; - if (yych == 'o') goto yy697; - goto yy50; -yy569: + if (yych != 'p') goto yy83; yych = *++lexer->cursor; - if (yych == 'd') goto yy698; - goto yy50; -yy570: + if (yych != 'c') goto yy83; + yych = *++lexer->cursor; + if (yych != 'n') goto yy83; + yych = *++lexer->cursor; + if (yych != 't') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 356 "src/ast-lexer.c" - { OPCODE(F64_MAX); RETURN(BINARY); } -#line 3914 "src/prebuilt/ast-lexer-gen.c" +#line 299 "src/ast-lexer.c" + { OPCODE(I32_POPCNT); RETURN(UNARY); } +#line 3025 "src/prebuilt/ast-lexer-gen.c" yy572: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if ((yych = *lexer->cursor) <= 'Z') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; + } else { + if (yych <= '"') goto yy573; + if (yych <= '\'') goto yy82; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy82; + } else { + if (yych != ';') goto yy82; + } + } + } else { + if (yych <= 'z') { + if (yych <= '\\') { + if (yych >= '\\') goto yy82; + } else { + if (yych <= ']') goto yy573; + if (yych <= 'y') goto yy82; + goto yy574; + } + } else { + if (yych <= '|') { + if (yych >= '|') goto yy82; + } else { + if (yych == '~') goto yy82; + } + } } -#line 354 "src/ast-lexer.c" - { OPCODE(F64_MIN); RETURN(BINARY); } -#line 3922 "src/prebuilt/ast-lexer-gen.c" +yy573: +#line 359 "src/ast-lexer.c" + { OPCODE(I32_EQ); RETURN(COMPARE); } +#line 3063 "src/prebuilt/ast-lexer-gen.c" yy574: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 350 "src/ast-lexer.c" - { OPCODE(F64_MUL); RETURN(BINARY); } -#line 3930 "src/prebuilt/ast-lexer-gen.c" +#line 293 "src/ast-lexer.c" + { OPCODE(I32_EQZ); RETURN(CONVERT); } +#line 3071 "src/prebuilt/ast-lexer-gen.c" yy576: yych = *++lexer->cursor; - if (yych == 'r') goto yy700; - goto yy50; + if (yych == 'z') goto yy585; + goto yy83; yy577: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 302 "src/ast-lexer.c" - { OPCODE(F64_NEG); RETURN(UNARY); } -#line 3942 "src/prebuilt/ast-lexer-gen.c" -yy579: yych = *++lexer->cursor; - if (yych == 'm') goto yy701; - goto yy50; -yy580: + if (yych == 'n') goto yy581; + goto yy83; +yy578: yych = *++lexer->cursor; - if (yych == 'n') goto yy702; - goto yy50; + if (yych != 'z') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 297 "src/ast-lexer.c" + { OPCODE(I32_CTZ); RETURN(UNARY); } +#line 3089 "src/prebuilt/ast-lexer-gen.c" yy581: yych = *++lexer->cursor; - if (yych == 't') goto yy703; - goto yy50; -yy582: + if (yych != 's') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy705; - goto yy50; -yy583: + if (yych != 't') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 348 "src/ast-lexer.c" - { OPCODE(F64_SUB); RETURN(BINARY); } -#line 3966 "src/prebuilt/ast-lexer-gen.c" +#line 289 "src/ast-lexer.c" + { TYPE(I32); RETURN(CONST); } +#line 3101 "src/prebuilt/ast-lexer-gen.c" yy585: - yych = *++lexer->cursor; - if (yych == 'n') goto yy706; - goto yy50; -yy586: - yych = *++lexer->cursor; - if (yych == 'b') goto yy707; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 295 "src/ast-lexer.c" + { OPCODE(I32_CLZ); RETURN(UNARY); } +#line 3109 "src/prebuilt/ast-lexer-gen.c" yy587: yych = *++lexer->cursor; - if (yych == 'a') goto yy708; - goto yy50; + if (yych == 'l') goto yy601; + if (yych == 'r') goto yy603; + goto yy83; yy588: yych = *++lexer->cursor; - if (yych == 'm') goto yy709; - goto yy50; + if (yych == 'o') goto yy592; + goto yy83; yy589: + yych = *++lexer->cursor; + if (yych != 'b') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 315 "src/ast-lexer.c" - { OPCODE(I32_ADD); RETURN(BINARY); } -#line 3990 "src/prebuilt/ast-lexer-gen.c" -yy591: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 329 "src/ast-lexer.c" - { OPCODE(I32_AND); RETURN(BINARY); } -#line 3998 "src/prebuilt/ast-lexer-gen.c" -yy593: +#line 317 "src/ast-lexer.c" + { OPCODE(I32_SUB); RETURN(BINARY); } +#line 3128 "src/prebuilt/ast-lexer-gen.c" +yy592: + yych = *++lexer->cursor; + if (yych != 'r') goto yy83; + yych = *++lexer->cursor; + if (yych != 'e') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if ((yych = *lexer->cursor) <= '8') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; + } else { + if (yych <= '"') goto yy595; + if (yych <= '\'') goto yy82; + } + } else { + if (yych <= '0') { + if (yych != ',') goto yy82; + } else { + if (yych <= '1') goto yy596; + if (yych <= '7') goto yy82; + goto yy597; + } + } + } else { + if (yych <= ']') { + if (yych <= 'Z') { + if (yych != ';') goto yy82; + } else { + if (yych == '\\') goto yy82; + } + } else { + if (yych <= '|') { + if (yych != '{') goto yy82; + } else { + if (yych == '~') goto yy82; + } + } } -#line 295 "src/ast-lexer.c" - { OPCODE(I32_CLZ); RETURN(UNARY); } -#line 4006 "src/prebuilt/ast-lexer-gen.c" yy595: - yych = *++lexer->cursor; - if (yych == 's') goto yy710; - goto yy50; +#line 268 "src/ast-lexer.c" + { OPCODE(I32_STORE); RETURN(STORE); } +#line 3170 "src/prebuilt/ast-lexer-gen.c" yy596: + yych = *++lexer->cursor; + if (yych == '6') goto yy599; + goto yy83; +yy597: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 297 "src/ast-lexer.c" - { OPCODE(I32_CTZ); RETURN(UNARY); } -#line 4018 "src/prebuilt/ast-lexer-gen.c" -yy598: - yych = *++lexer->cursor; - if (yych == '_') goto yy711; - goto yy50; +#line 282 "src/ast-lexer.c" + { OPCODE(I32_STORE8); RETURN(STORE); } +#line 3182 "src/prebuilt/ast-lexer-gen.c" yy599: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 293 "src/ast-lexer.c" - { OPCODE(I32_EQZ); RETURN(CONVERT); } -#line 4030 "src/prebuilt/ast-lexer-gen.c" +#line 284 "src/ast-lexer.c" + { OPCODE(I32_STORE16); RETURN(STORE); } +#line 3190 "src/prebuilt/ast-lexer-gen.c" yy601: - yych = *++lexer->cursor; - if (yych == 's') goto yy712; - if (yych == 'u') goto yy714; - goto yy50; -yy602: - yych = *++lexer->cursor; - if (yych == 's') goto yy716; - if (yych == 'u') goto yy718; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 335 "src/ast-lexer.c" + { OPCODE(I32_SHL); RETURN(BINARY); } +#line 3198 "src/prebuilt/ast-lexer-gen.c" yy603: yych = *++lexer->cursor; - if (yych == 's') goto yy720; - if (yych == 'u') goto yy722; - goto yy50; -yy604: + if (yych != '_') goto yy83; yych = *++lexer->cursor; - if (yych == 'd') goto yy724; - goto yy50; + if (yych == 's') goto yy605; + if (yych == 'u') goto yy607; + goto yy83; yy605: - yych = *++lexer->cursor; - if (yych == 's') goto yy726; - if (yych == 'u') goto yy728; - goto yy50; -yy606: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 319 "src/ast-lexer.c" - { OPCODE(I32_MUL); RETURN(BINARY); } -#line 4062 "src/prebuilt/ast-lexer-gen.c" -yy608: - yych = *++lexer->cursor; - if (yych == 'c') goto yy730; - goto yy50; +#line 337 "src/ast-lexer.c" + { OPCODE(I32_SHR_S); RETURN(BINARY); } +#line 3213 "src/prebuilt/ast-lexer-gen.c" +yy607: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 339 "src/ast-lexer.c" + { OPCODE(I32_SHR_U); RETURN(BINARY); } +#line 3221 "src/prebuilt/ast-lexer-gen.c" yy609: yych = *++lexer->cursor; - if (yych == 'n') goto yy731; - goto yy50; + if (yych == '_') goto yy633; + goto yy83; yy610: yych = *++lexer->cursor; - if (yych == '_') goto yy732; - goto yy50; + if (yych == 'a') goto yy617; + goto yy83; yy611: yych = *++lexer->cursor; - if (yych == 'l') goto yy733; - if (yych == 'r') goto yy735; - goto yy50; -yy612: + if (yych != '_') goto yy83; + yych = *++lexer->cursor; + if (yych == 's') goto yy613; + if (yych == 'u') goto yy615; + goto yy83; +yy613: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 335 "src/ast-lexer.c" - { OPCODE(I32_SHL); RETURN(BINARY); } -#line 4087 "src/prebuilt/ast-lexer-gen.c" -yy614: - yych = *++lexer->cursor; - if (yych == '_') goto yy737; - goto yy50; +#line 363 "src/ast-lexer.c" + { OPCODE(I32_LT_S); RETURN(COMPARE); } +#line 3244 "src/prebuilt/ast-lexer-gen.c" yy615: - yych = *++lexer->cursor; - if (yych == 'r') goto yy738; - goto yy50; -yy616: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 317 "src/ast-lexer.c" - { OPCODE(I32_SUB); RETURN(BINARY); } -#line 4103 "src/prebuilt/ast-lexer-gen.c" -yy618: - yych = *++lexer->cursor; - if (yych == 'n') goto yy739; - goto yy50; -yy619: +#line 365 "src/ast-lexer.c" + { OPCODE(I32_LT_U); RETURN(COMPARE); } +#line 3252 "src/prebuilt/ast-lexer-gen.c" +yy617: yych = *++lexer->cursor; - if (yych == 'p') goto yy740; - goto yy50; -yy620: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 333 "src/ast-lexer.c" - { OPCODE(I32_XOR); RETURN(BINARY); } -#line 4119 "src/prebuilt/ast-lexer-gen.c" -yy622: + if (yych != 'd') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if ((yych = *lexer->cursor) <= '8') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; + } else { + if (yych <= '"') goto yy619; + if (yych <= '\'') goto yy82; + } + } else { + if (yych <= '0') { + if (yych != ',') goto yy82; + } else { + if (yych <= '1') goto yy621; + if (yych <= '7') goto yy82; + goto yy620; + } + } + } else { + if (yych <= ']') { + if (yych <= 'Z') { + if (yych != ';') goto yy82; + } else { + if (yych == '\\') goto yy82; + } + } else { + if (yych <= '|') { + if (yych != '{') goto yy82; + } else { + if (yych == '~') goto yy82; + } + } } -#line 316 "src/ast-lexer.c" - { OPCODE(I64_ADD); RETURN(BINARY); } -#line 4127 "src/prebuilt/ast-lexer-gen.c" +yy619: +#line 264 "src/ast-lexer.c" + { OPCODE(I32_LOAD); RETURN(LOAD); } +#line 3292 "src/prebuilt/ast-lexer-gen.c" +yy620: + yych = *++lexer->cursor; + if (yych == '_') goto yy628; + goto yy83; +yy621: + yych = *++lexer->cursor; + if (yych != '6') goto yy83; + yych = *++lexer->cursor; + if (yych != '_') goto yy83; + yych = *++lexer->cursor; + if (yych == 's') goto yy624; + if (yych == 'u') goto yy626; + goto yy83; yy624: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 330 "src/ast-lexer.c" - { OPCODE(I64_AND); RETURN(BINARY); } -#line 4135 "src/prebuilt/ast-lexer-gen.c" +#line 276 "src/ast-lexer.c" + { OPCODE(I32_LOAD16_S); RETURN(LOAD); } +#line 3313 "src/prebuilt/ast-lexer-gen.c" yy626: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 296 "src/ast-lexer.c" - { OPCODE(I64_CLZ); RETURN(UNARY); } -#line 4143 "src/prebuilt/ast-lexer-gen.c" +#line 278 "src/ast-lexer.c" + { OPCODE(I32_LOAD16_U); RETURN(LOAD); } +#line 3321 "src/prebuilt/ast-lexer-gen.c" yy628: yych = *++lexer->cursor; - if (yych == 's') goto yy741; - goto yy50; + if (yych == 's') goto yy629; + if (yych == 'u') goto yy631; + goto yy83; yy629: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 298 "src/ast-lexer.c" - { OPCODE(I64_CTZ); RETURN(UNARY); } -#line 4155 "src/prebuilt/ast-lexer-gen.c" +#line 272 "src/ast-lexer.c" + { OPCODE(I32_LOAD8_S); RETURN(LOAD); } +#line 3334 "src/prebuilt/ast-lexer-gen.c" yy631: - yych = *++lexer->cursor; - if (yych == '_') goto yy742; - goto yy50; -yy632: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 294 "src/ast-lexer.c" - { OPCODE(I64_EQZ); RETURN(CONVERT); } -#line 4167 "src/prebuilt/ast-lexer-gen.c" -yy634: - yych = *++lexer->cursor; - if (yych == 'e') goto yy743; - goto yy50; -yy635: +#line 274 "src/ast-lexer.c" + { OPCODE(I32_LOAD8_U); RETURN(LOAD); } +#line 3342 "src/prebuilt/ast-lexer-gen.c" +yy633: yych = *++lexer->cursor; - if (yych == 's') goto yy744; - if (yych == 'u') goto yy746; - goto yy50; + if (yych == 's') goto yy634; + if (yych == 'u') goto yy636; + goto yy83; +yy634: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 367 "src/ast-lexer.c" + { OPCODE(I32_LE_S); RETURN(COMPARE); } +#line 3355 "src/prebuilt/ast-lexer-gen.c" yy636: - yych = *++lexer->cursor; - if (yych == 's') goto yy748; - if (yych == 'u') goto yy750; - goto yy50; -yy637: - yych = *++lexer->cursor; - if (yych == 's') goto yy752; - if (yych == 'u') goto yy754; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 369 "src/ast-lexer.c" + { OPCODE(I32_LE_U); RETURN(COMPARE); } +#line 3363 "src/prebuilt/ast-lexer-gen.c" yy638: yych = *++lexer->cursor; - if (yych == 'd') goto yy756; - goto yy50; + if (yych == 't') goto yy656; + goto yy83; yy639: yych = *++lexer->cursor; - if (yych == 's') goto yy758; - if (yych == 'u') goto yy760; - goto yy50; + if (yych == 'o') goto yy651; + goto yy83; yy640: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 320 "src/ast-lexer.c" - { OPCODE(I64_MUL); RETURN(BINARY); } -#line 4203 "src/prebuilt/ast-lexer-gen.c" -yy642: yych = *++lexer->cursor; - if (yych == 'c') goto yy762; - goto yy50; -yy643: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == 'n') goto yy763; - goto yy50; -yy644: + if (yych != 'w') goto yy83; yych = *++lexer->cursor; - if (yych == '_') goto yy764; - goto yy50; -yy645: + if (yych != '_') goto yy83; yych = *++lexer->cursor; - if (yych == 'l') goto yy765; - if (yych == 'r') goto yy767; - goto yy50; -yy646: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 336 "src/ast-lexer.c" - { OPCODE(I64_SHL); RETURN(BINARY); } -#line 4228 "src/prebuilt/ast-lexer-gen.c" -yy648: + if (yych != 'm') goto yy83; yych = *++lexer->cursor; - if (yych == '_') goto yy769; - goto yy50; -yy649: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy770; - goto yy50; -yy650: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 318 "src/ast-lexer.c" - { OPCODE(I64_SUB); RETURN(BINARY); } -#line 4244 "src/prebuilt/ast-lexer-gen.c" -yy652: + if (yych != 'm') goto yy83; + yych = *++lexer->cursor; + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == 'n') goto yy771; - goto yy50; -yy653: + if (yych != 'r') goto yy83; + yych = *++lexer->cursor; + if (yych != 'y') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 334 "src/ast-lexer.c" - { OPCODE(I64_XOR); RETURN(BINARY); } -#line 4256 "src/prebuilt/ast-lexer-gen.c" -yy655: +#line 419 "src/ast-lexer.c" + { RETURN(GROW_MEMORY); } +#line 3397 "src/prebuilt/ast-lexer-gen.c" +yy651: + yych = *++lexer->cursor; + if (yych != 'b') goto yy83; + yych = *++lexer->cursor; + if (yych != 'a') goto yy83; + yych = *++lexer->cursor; + if (yych != 'l') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 246 "src/ast-lexer.c" - { RETURN(IF); } -#line 4264 "src/prebuilt/ast-lexer-gen.c" -yy657: - yych = *++lexer->cursor; - if (yych == 'y') goto yy772; - goto yy50; -yy658: +#line 425 "src/ast-lexer.c" + { RETURN(GLOBAL); } +#line 3411 "src/prebuilt/ast-lexer-gen.c" +yy656: ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= '@') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy49; - goto yy196; + if ((yych = *lexer->cursor) <= 'Z') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; } else { - if (yych <= '\'') goto yy49; - if (yych <= ')') goto yy196; - goto yy49; + if (yych <= '"') goto yy657; + if (yych <= '\'') goto yy82; } } else { - if (yych <= '9') { - if (yych <= ',') goto yy196; - if (yych <= '/') goto yy49; - goto yy658; + if (yych <= ',') { + if (yych <= '+') goto yy82; } else { - if (yych == ';') goto yy196; - goto yy49; + if (yych != ';') goto yy82; } } } else { - if (yych <= '`') { - if (yych <= '[') { - if (yych <= 'F') goto yy658; - if (yych <= 'Z') goto yy49; - goto yy196; + if (yych <= '_') { + if (yych <= '\\') { + if (yych >= '\\') goto yy82; } else { - if (yych == ']') goto yy196; - goto yy49; + if (yych <= ']') goto yy657; + if (yych <= '^') goto yy82; + goto yy658; } } else { - if (yych <= '{') { - if (yych <= 'f') goto yy658; - if (yych <= 'z') goto yy49; - goto yy196; + if (yych <= '|') { + if (yych != '{') goto yy82; } else { - if (yych == '}') goto yy196; - if (yych <= '~') goto yy49; - goto yy196; + if (yych == '~') goto yy82; } } } -yy660: +yy657: +#line 437 "src/ast-lexer.c" + { RETURN(GET); } +#line 3449 "src/prebuilt/ast-lexer-gen.c" +yy658: yych = *++lexer->cursor; - if (yych <= '/') goto yy50; - if (yych <= '0') goto yy773; - if (yych <= '9') goto yy775; - goto yy50; -yy661: + if (yych == 'g') goto yy660; + if (yych != 'l') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy777; - goto yy50; -yy662: + if (yych == 'o') goto yy667; + goto yy83; +yy660: yych = *++lexer->cursor; - if (yych == 'b') goto yy779; - goto yy50; -yy663: + if (yych != 'l') goto yy83; yych = *++lexer->cursor; - if (yych == 'a') goto yy780; - goto yy50; -yy664: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == 'a') goto yy781; - goto yy50; -yy665: + if (yych != 'b') goto yy83; yych = *++lexer->cursor; - if (yych == 'a') goto yy782; - goto yy50; -yy666: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych <= '@') { - if (yych <= '/') goto yy50; - if (yych <= '9') goto yy783; - goto yy50; - } else { - if (yych <= 'F') goto yy783; - if (yych <= '`') goto yy50; - if (yych <= 'f') goto yy783; - goto yy50; + if (yych != 'l') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } +#line 262 "src/ast-lexer.c" + { RETURN(GET_GLOBAL); } +#line 3474 "src/prebuilt/ast-lexer-gen.c" yy667: yych = *++lexer->cursor; - if (yych == 'n') goto yy785; - goto yy50; -yy668: - yych = *++lexer->cursor; - if (yych == 'a') goto yy786; - goto yy50; -yy669: + if (yych != 'c') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy787; - goto yy50; -yy670: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy788; - goto yy50; -yy671: - yych = *++lexer->cursor; - if (yych == 'n') goto yy789; - goto yy50; -yy672: + if (yych != 'l') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 252 "src/ast-lexer.c" - { RETURN(BR_TABLE); } -#line 4380 "src/prebuilt/ast-lexer-gen.c" -yy674: +#line 259 "src/ast-lexer.c" + { RETURN(GET_LOCAL); } +#line 3488 "src/prebuilt/ast-lexer-gen.c" +yy672: yych = *++lexer->cursor; - if (yych == 'o') goto yy790; - goto yy50; -yy675: + if (yych == '2') goto yy823; + goto yy83; +yy673: yych = *++lexer->cursor; - if (yych == 'i') goto yy791; - goto yy50; -yy676: + if (yych == '4') goto yy678; + goto yy83; +yy674: yych = *++lexer->cursor; - if (yych == 'm') goto yy792; - goto yy50; -yy677: + if (yych != 'n') goto yy83; + yych = *++lexer->cursor; + if (yych != 'c') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 421 "src/ast-lexer.c" + { RETURN(FUNC); } +#line 3508 "src/prebuilt/ast-lexer-gen.c" +yy678: + ++lexer->cursor; + if ((yych = *lexer->cursor) <= ':') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; + } else { + if (yych <= '"') goto yy679; + if (yych <= '\'') goto yy82; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy82; + } else { + if (yych == '.') goto yy680; + goto yy82; + } + } + } else { + if (yych <= ']') { + if (yych <= 'Z') { + if (yych >= '<') goto yy82; + } else { + if (yych == '\\') goto yy82; + } + } else { + if (yych <= '|') { + if (yych != '{') goto yy82; + } else { + if (yych == '~') goto yy82; + } + } } -#line 307 "src/ast-lexer.c" - { OPCODE(F32_CEIL); RETURN(UNARY); } -#line 4400 "src/prebuilt/ast-lexer-gen.c" yy679: - yych = *++lexer->cursor; - if (yych == 't') goto yy793; - goto yy50; +#line 240 "src/ast-lexer.c" + { TYPE(F64); RETURN(VALUE_TYPE); } +#line 3545 "src/prebuilt/ast-lexer-gen.c" yy680: yych = *++lexer->cursor; - if (yych == 'e') goto yy795; - goto yy50; + switch (yych) { + case 'a': goto yy685; + case 'c': goto yy683; + case 'd': goto yy689; + case 'e': goto yy690; + case 'f': goto yy686; + case 'g': goto yy691; + case 'l': goto yy681; + case 'm': goto yy688; + case 'n': goto yy684; + case 'p': goto yy692; + case 'r': goto yy693; + case 's': goto yy682; + case 't': goto yy687; + default: goto yy83; + } yy681: yych = *++lexer->cursor; - if (yych == 's') goto yy796; - goto yy50; + if (yych <= 'n') { + if (yych == 'e') goto yy815; + goto yy83; + } else { + if (yych <= 'o') goto yy817; + if (yych == 't') goto yy818; + goto yy83; + } yy682: yych = *++lexer->cursor; - if (yych == 't') goto yy797; - goto yy50; + if (yych <= 's') { + if (yych == 'q') goto yy803; + goto yy83; + } else { + if (yych <= 't') goto yy804; + if (yych <= 'u') goto yy805; + goto yy83; + } yy683: yych = *++lexer->cursor; - if (yych == 'r') goto yy798; - goto yy50; + if (yych == 'e') goto yy764; + if (yych == 'o') goto yy765; + goto yy83; yy684: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 266 "src/ast-lexer.c" - { OPCODE(F32_LOAD); RETURN(LOAD); } -#line 4428 "src/prebuilt/ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'e') goto yy754; + goto yy83; +yy685: + yych = *++lexer->cursor; + if (yych == 'b') goto yy748; + if (yych == 'd') goto yy749; + goto yy83; yy686: yych = *++lexer->cursor; - if (yych == 'e') goto yy800; - goto yy50; + if (yych == 'l') goto yy743; + goto yy83; yy687: yych = *++lexer->cursor; - if (yych == 't') goto yy801; - goto yy50; + if (yych == 'r') goto yy738; + goto yy83; yy688: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + yych = *++lexer->cursor; + if (yych <= 'h') { + if (yych == 'a') goto yy729; + goto yy83; + } else { + if (yych <= 'i') goto yy730; + if (yych == 'u') goto yy731; + goto yy83; } -#line 305 "src/ast-lexer.c" - { OPCODE(F32_SQRT); RETURN(UNARY); } -#line 4444 "src/prebuilt/ast-lexer-gen.c" +yy689: + yych = *++lexer->cursor; + if (yych == 'i') goto yy726; + goto yy83; yy690: yych = *++lexer->cursor; - if (yych == 'e') goto yy802; - goto yy50; + if (yych == 'q') goto yy724; + goto yy83; yy691: yych = *++lexer->cursor; - if (yych == 'c') goto yy804; - goto yy50; + if (yych == 'e') goto yy720; + if (yych == 't') goto yy722; + goto yy83; yy692: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 308 "src/ast-lexer.c" - { OPCODE(F64_CEIL); RETURN(UNARY); } -#line 4460 "src/prebuilt/ast-lexer-gen.c" -yy694: yych = *++lexer->cursor; - if (yych == 't') goto yy806; - goto yy50; -yy695: + if (yych == 'r') goto yy709; + goto yy83; +yy693: yych = *++lexer->cursor; - if (yych == 'e') goto yy808; - goto yy50; -yy696: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 's') goto yy809; - goto yy50; -yy697: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy810; - goto yy50; -yy698: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 267 "src/ast-lexer.c" - { OPCODE(F64_LOAD); RETURN(LOAD); } -#line 4484 "src/prebuilt/ast-lexer-gen.c" -yy700: + if (yych != 'n') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy812; - goto yy50; -yy701: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy813; - goto yy50; -yy702: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy814; - goto yy50; -yy703: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 306 "src/ast-lexer.c" - { OPCODE(F64_SQRT); RETURN(UNARY); } -#line 4504 "src/prebuilt/ast-lexer-gen.c" -yy705: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy815; - goto yy50; -yy706: + if (yych != 'p') goto yy83; yych = *++lexer->cursor; - if (yych == 'c') goto yy817; - goto yy50; -yy707: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'a') goto yy819; - goto yy50; -yy708: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 'l') goto yy820; - goto yy50; -yy709: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy822; - goto yy50; -yy710: + if (yych != '/') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy823; - goto yy50; -yy711: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == 's') goto yy825; - if (yych == 'u') goto yy827; - goto yy50; -yy712: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 375 "src/ast-lexer.c" - { OPCODE(I32_GE_S); RETURN(COMPARE); } -#line 4541 "src/prebuilt/ast-lexer-gen.c" -yy714: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 377 "src/ast-lexer.c" - { OPCODE(I32_GE_U); RETURN(COMPARE); } -#line 4549 "src/prebuilt/ast-lexer-gen.c" -yy716: + if (yych != '6') goto yy83; + yych = *++lexer->cursor; + if (yych != '4') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 371 "src/ast-lexer.c" - { OPCODE(I32_GT_S); RETURN(COMPARE); } -#line 4557 "src/prebuilt/ast-lexer-gen.c" -yy718: +#line 414 "src/ast-lexer.c" + { OPCODE(F64_REINTERPRET_I64); RETURN(CONVERT); } +#line 3668 "src/prebuilt/ast-lexer-gen.c" +yy709: + yych = *++lexer->cursor; + if (yych != 'o') goto yy83; + yych = *++lexer->cursor; + if (yych != 'm') goto yy83; + yych = *++lexer->cursor; + if (yych != 'o') goto yy83; + yych = *++lexer->cursor; + if (yych != 't') goto yy83; + yych = *++lexer->cursor; + if (yych != 'e') goto yy83; + yych = *++lexer->cursor; + if (yych != '/') goto yy83; + yych = *++lexer->cursor; + if (yych != 'f') goto yy83; + yych = *++lexer->cursor; + if (yych != '3') goto yy83; + yych = *++lexer->cursor; + if (yych != '2') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 373 "src/ast-lexer.c" - { OPCODE(I32_GT_U); RETURN(COMPARE); } -#line 4565 "src/prebuilt/ast-lexer-gen.c" +#line 410 "src/ast-lexer.c" + { OPCODE(F64_PROMOTE_F32); RETURN(CONVERT); } +#line 3694 "src/prebuilt/ast-lexer-gen.c" yy720: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 367 "src/ast-lexer.c" - { OPCODE(I32_LE_S); RETURN(COMPARE); } -#line 4573 "src/prebuilt/ast-lexer-gen.c" +#line 390 "src/ast-lexer.c" + { OPCODE(F64_GE); RETURN(COMPARE); } +#line 3702 "src/prebuilt/ast-lexer-gen.c" yy722: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 369 "src/ast-lexer.c" - { OPCODE(I32_LE_U); RETURN(COMPARE); } -#line 4581 "src/prebuilt/ast-lexer-gen.c" +#line 388 "src/ast-lexer.c" + { OPCODE(F64_GT); RETURN(COMPARE); } +#line 3710 "src/prebuilt/ast-lexer-gen.c" yy724: ++lexer->cursor; - if ((yych = *lexer->cursor) <= '8') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; - } else { - if (yych <= '"') goto yy725; - if (yych <= '\'') goto yy49; - } - } else { - if (yych <= '0') { - if (yych != ',') goto yy49; - } else { - if (yych <= '1') goto yy829; - if (yych <= '7') goto yy49; - goto yy830; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych != ';') goto yy49; - } else { - if (yych == '\\') goto yy49; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy49; - } else { - if (yych == '~') goto yy49; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -yy725: -#line 264 "src/ast-lexer.c" - { OPCODE(I32_LOAD); RETURN(LOAD); } -#line 4619 "src/prebuilt/ast-lexer-gen.c" +#line 380 "src/ast-lexer.c" + { OPCODE(F64_EQ); RETURN(COMPARE); } +#line 3718 "src/prebuilt/ast-lexer-gen.c" yy726: + yych = *++lexer->cursor; + if (yych != 'v') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 363 "src/ast-lexer.c" - { OPCODE(I32_LT_S); RETURN(COMPARE); } -#line 4627 "src/prebuilt/ast-lexer-gen.c" -yy728: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 365 "src/ast-lexer.c" - { OPCODE(I32_LT_U); RETURN(COMPARE); } -#line 4635 "src/prebuilt/ast-lexer-gen.c" +#line 352 "src/ast-lexer.c" + { OPCODE(F64_DIV); RETURN(BINARY); } +#line 3728 "src/prebuilt/ast-lexer-gen.c" +yy729: + yych = *++lexer->cursor; + if (yych == 'x') goto yy736; + goto yy83; yy730: yych = *++lexer->cursor; - if (yych == 'n') goto yy831; - goto yy50; + if (yych == 'n') goto yy734; + goto yy83; yy731: yych = *++lexer->cursor; - if (yych == 't') goto yy832; - goto yy50; -yy732: - yych = *++lexer->cursor; - if (yych == 's') goto yy833; - if (yych == 'u') goto yy835; - goto yy50; -yy733: + if (yych != 'l') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 341 "src/ast-lexer.c" - { OPCODE(I32_ROTL); RETURN(BINARY); } -#line 4656 "src/prebuilt/ast-lexer-gen.c" -yy735: +#line 350 "src/ast-lexer.c" + { OPCODE(F64_MUL); RETURN(BINARY); } +#line 3746 "src/prebuilt/ast-lexer-gen.c" +yy734: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 343 "src/ast-lexer.c" - { OPCODE(I32_ROTR); RETURN(BINARY); } -#line 4664 "src/prebuilt/ast-lexer-gen.c" -yy737: - yych = *++lexer->cursor; - if (yych == 's') goto yy837; - if (yych == 'u') goto yy839; - goto yy50; +#line 354 "src/ast-lexer.c" + { OPCODE(F64_MIN); RETURN(BINARY); } +#line 3754 "src/prebuilt/ast-lexer-gen.c" +yy736: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 356 "src/ast-lexer.c" + { OPCODE(F64_MAX); RETURN(BINARY); } +#line 3762 "src/prebuilt/ast-lexer-gen.c" yy738: yych = *++lexer->cursor; - if (yych == 'e') goto yy841; - goto yy50; -yy739: + if (yych != 'u') goto yy83; yych = *++lexer->cursor; - if (yych == 'c') goto yy843; - goto yy50; -yy740: + if (yych != 'n') goto yy83; yych = *++lexer->cursor; - if (yych == '/') goto yy844; - goto yy50; -yy741: + if (yych != 'c') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 312 "src/ast-lexer.c" + { OPCODE(F64_TRUNC); RETURN(UNARY); } +#line 3776 "src/prebuilt/ast-lexer-gen.c" +yy743: yych = *++lexer->cursor; - if (yych == 't') goto yy845; - goto yy50; -yy742: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == 's') goto yy847; - if (yych == 'u') goto yy849; - goto yy50; -yy743: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == 'n') goto yy851; - goto yy50; -yy744: + if (yych != 'r') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 376 "src/ast-lexer.c" - { OPCODE(I64_GE_S); RETURN(COMPARE); } -#line 4702 "src/prebuilt/ast-lexer-gen.c" -yy746: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 378 "src/ast-lexer.c" - { OPCODE(I64_GE_U); RETURN(COMPARE); } -#line 4710 "src/prebuilt/ast-lexer-gen.c" +#line 310 "src/ast-lexer.c" + { OPCODE(F64_FLOOR); RETURN(UNARY); } +#line 3790 "src/prebuilt/ast-lexer-gen.c" yy748: + yych = *++lexer->cursor; + if (yych == 's') goto yy752; + goto yy83; +yy749: + yych = *++lexer->cursor; + if (yych != 'd') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 372 "src/ast-lexer.c" - { OPCODE(I64_GT_S); RETURN(COMPARE); } -#line 4718 "src/prebuilt/ast-lexer-gen.c" -yy750: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 374 "src/ast-lexer.c" - { OPCODE(I64_GT_U); RETURN(COMPARE); } -#line 4726 "src/prebuilt/ast-lexer-gen.c" +#line 346 "src/ast-lexer.c" + { OPCODE(F64_ADD); RETURN(BINARY); } +#line 3804 "src/prebuilt/ast-lexer-gen.c" yy752: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 368 "src/ast-lexer.c" - { OPCODE(I64_LE_S); RETURN(COMPARE); } -#line 4734 "src/prebuilt/ast-lexer-gen.c" +#line 304 "src/ast-lexer.c" + { OPCODE(F64_ABS); RETURN(UNARY); } +#line 3812 "src/prebuilt/ast-lexer-gen.c" yy754: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 370 "src/ast-lexer.c" - { OPCODE(I64_LE_U); RETURN(COMPARE); } -#line 4742 "src/prebuilt/ast-lexer-gen.c" -yy756: - ++lexer->cursor; - if ((yych = *lexer->cursor) <= '7') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy49; + if ((yych = *lexer->cursor) <= '[') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; } else { - if (yych <= '\'') goto yy49; - if (yych >= '*') goto yy49; + if (yych <= '"') goto yy755; + if (yych <= '\'') goto yy82; } } else { - if (yych <= '1') { - if (yych <= ',') goto yy757; - if (yych <= '0') goto yy49; - goto yy852; + if (yych <= ':') { + if (yych != ',') goto yy82; } else { - if (yych == '3') goto yy853; - goto yy49; + if (yych <= ';') goto yy755; + if (yych <= 'Z') goto yy82; } } } else { - if (yych <= '\\') { - if (yych <= ';') { - if (yych <= '8') goto yy854; - if (yych <= ':') goto yy49; + if (yych <= 'g') { + if (yych <= '`') { + if (yych != ']') goto yy82; } else { - if (yych != '[') goto yy49; + if (yych <= 'a') goto yy758; + if (yych <= 'f') goto yy82; + goto yy756; } } else { - if (yych <= '{') { - if (yych <= ']') goto yy757; - if (yych <= 'z') goto yy49; + if (yych <= '|') { + if (yych != '{') goto yy82; } else { - if (yych == '}') goto yy757; - if (yych <= '~') goto yy49; + if (yych == '~') goto yy82; } } } -yy757: -#line 265 "src/ast-lexer.c" - { OPCODE(I64_LOAD); RETURN(LOAD); } -#line 4784 "src/prebuilt/ast-lexer-gen.c" -yy758: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 364 "src/ast-lexer.c" - { OPCODE(I64_LT_S); RETURN(COMPARE); } -#line 4792 "src/prebuilt/ast-lexer-gen.c" -yy760: +yy755: +#line 382 "src/ast-lexer.c" + { OPCODE(F64_NE); RETURN(COMPARE); } +#line 3851 "src/prebuilt/ast-lexer-gen.c" +yy756: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 366 "src/ast-lexer.c" - { OPCODE(I64_LT_U); RETURN(COMPARE); } -#line 4800 "src/prebuilt/ast-lexer-gen.c" -yy762: +#line 302 "src/ast-lexer.c" + { OPCODE(F64_NEG); RETURN(UNARY); } +#line 3859 "src/prebuilt/ast-lexer-gen.c" +yy758: yych = *++lexer->cursor; - if (yych == 'n') goto yy855; - goto yy50; -yy763: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy856; - goto yy50; -yy764: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 's') goto yy857; - if (yych == 'u') goto yy859; - goto yy50; -yy765: + if (yych != 's') goto yy83; + yych = *++lexer->cursor; + if (yych != 't') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 342 "src/ast-lexer.c" - { OPCODE(I64_ROTL); RETURN(BINARY); } -#line 4821 "src/prebuilt/ast-lexer-gen.c" +#line 314 "src/ast-lexer.c" + { OPCODE(F64_NEAREST); RETURN(UNARY); } +#line 3875 "src/prebuilt/ast-lexer-gen.c" +yy764: + yych = *++lexer->cursor; + if (yych == 'i') goto yy800; + goto yy83; +yy765: + yych = *++lexer->cursor; + if (yych == 'n') goto yy766; + if (yych == 'p') goto yy767; + goto yy83; +yy766: + yych = *++lexer->cursor; + if (yych == 's') goto yy774; + if (yych == 'v') goto yy775; + goto yy83; yy767: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 344 "src/ast-lexer.c" - { OPCODE(I64_ROTR); RETURN(BINARY); } -#line 4829 "src/prebuilt/ast-lexer-gen.c" -yy769: yych = *++lexer->cursor; - if (yych == 's') goto yy861; - if (yych == 'u') goto yy863; - goto yy50; -yy770: + if (yych != 'y') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy865; - goto yy50; -yy771: + if (yych != 's') goto yy83; yych = *++lexer->cursor; - if (yych == 'c') goto yy867; - goto yy50; -yy772: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yybm[0+yych] & 16) { - goto yy49; - } - goto yy186; -yy773: + if (yych != 'g') goto yy83; + yych = *++lexer->cursor; + if (yych != 'n') goto yy83; ++lexer->cursor; - if ((yych = *lexer->cursor) <= ';') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy49; - } else { - if (yych <= '"') goto yy774; - if (yych <= '\'') goto yy49; - } - } else { - if (yych <= '/') { - if (yych != ',') goto yy49; - } else { - if (yych <= '9') goto yy775; - if (yych <= ':') goto yy49; - } - } - } else { - if (yych <= 'x') { - if (yych <= '\\') { - if (yych != '[') goto yy49; - } else { - if (yych <= ']') goto yy774; - if (yych <= 'w') goto yy49; - goto yy868; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy49; - } else { - if (yych == '~') goto yy49; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } +#line 358 "src/ast-lexer.c" + { OPCODE(F64_COPYSIGN); RETURN(BINARY); } +#line 3907 "src/prebuilt/ast-lexer-gen.c" yy774: -#line 287 "src/ast-lexer.c" - { TEXT_AT(7); RETURN(OFFSET_EQ_NAT); } -#line 4887 "src/prebuilt/ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 't') goto yy798; + goto yy83; yy775: - ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= ':') { - if (yych <= ')') { - if (yych <= '!') { - if (yych <= ' ') goto yy774; - goto yy49; - } else { - if (yych <= '"') goto yy774; - if (yych <= '\'') goto yy49; - goto yy774; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy49; - goto yy774; - } else { - if (yych <= '/') goto yy49; - if (yych <= '9') goto yy775; - goto yy49; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych <= ';') goto yy774; - goto yy49; - } else { - if (yych == '\\') goto yy49; - goto yy774; - } - } else { - if (yych <= '|') { - if (yych == '{') goto yy774; - goto yy49; - } else { - if (yych == '~') goto yy49; - goto yy774; - } - } - } -yy777: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 435 "src/ast-lexer.c" - { RETURN(REGISTER); } -#line 4938 "src/prebuilt/ast-lexer-gen.c" -yy779: yych = *++lexer->cursor; - if (yych == 'a') goto yy869; - goto yy50; + if (yych != 'e') goto yy83; + yych = *++lexer->cursor; + if (yych != 'r') goto yy83; + yych = *++lexer->cursor; + if (yych != 't') goto yy83; + yych = *++lexer->cursor; + if (yych != '_') goto yy83; + yych = *++lexer->cursor; + if (yych == 's') goto yy780; + if (yych == 'u') goto yy781; + goto yy83; yy780: yych = *++lexer->cursor; - if (yych == 'l') goto yy870; - goto yy50; + if (yych == '/') goto yy790; + goto yy83; yy781: yych = *++lexer->cursor; - if (yych == 'l') goto yy872; - goto yy50; -yy782: + if (yych != '/') goto yy83; yych = *++lexer->cursor; - if (yych == 'b') goto yy874; - goto yy50; -yy783: - ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= '@') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy49; - goto yy522; - } else { - if (yych <= '\'') goto yy49; - if (yych <= ')') goto yy522; - goto yy49; - } - } else { - if (yych <= '9') { - if (yych <= ',') goto yy522; - if (yych <= '/') goto yy49; - goto yy783; - } else { - if (yych == ';') goto yy522; - goto yy49; - } - } - } else { - if (yych <= '`') { - if (yych <= '[') { - if (yych <= 'F') goto yy783; - if (yych <= 'Z') goto yy49; - goto yy522; - } else { - if (yych == ']') goto yy522; - goto yy49; - } - } else { - if (yych <= '{') { - if (yych <= 'f') goto yy783; - if (yych <= 'z') goto yy49; - goto yy522; - } else { - if (yych == '}') goto yy522; - if (yych <= '~') goto yy49; - goto yy522; - } - } - } -yy785: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == 'v') goto yy875; - goto yy50; -yy786: + if (yych == '3') goto yy784; + if (yych == '6') goto yy785; + goto yy83; +yy784: yych = *++lexer->cursor; - if (yych == 'l') goto yy876; - goto yy50; -yy787: + if (yych == '2') goto yy788; + goto yy83; +yy785: yych = *++lexer->cursor; - if (yych == 't') goto yy877; - goto yy50; + if (yych != '4') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 409 "src/ast-lexer.c" + { OPCODE(F64_CONVERT_U_I64); RETURN(CONVERT); } +#line 3951 "src/prebuilt/ast-lexer-gen.c" yy788: - yych = *++lexer->cursor; - if (yych == 'a') goto yy878; - goto yy50; -yy789: - yych = *++lexer->cursor; - if (yych == 'l') goto yy879; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 407 "src/ast-lexer.c" + { OPCODE(F64_CONVERT_U_I32); RETURN(CONVERT); } +#line 3959 "src/prebuilt/ast-lexer-gen.c" yy790: yych = *++lexer->cursor; - if (yych == 'r') goto yy880; - goto yy50; -yy791: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy881; - goto yy50; + if (yych == '3') goto yy792; + if (yych == '6') goto yy793; + goto yy83; yy792: yych = *++lexer->cursor; - if (yych == 'e') goto yy882; - goto yy50; + if (yych == '2') goto yy796; + goto yy83; yy793: + yych = *++lexer->cursor; + if (yych != '4') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 291 "src/ast-lexer.c" - { TYPE(F32); RETURN(CONST); } -#line 5040 "src/prebuilt/ast-lexer-gen.c" -yy795: - yych = *++lexer->cursor; - if (yych == 'r') goto yy883; - goto yy50; +#line 405 "src/ast-lexer.c" + { OPCODE(F64_CONVERT_S_I64); RETURN(CONVERT); } +#line 3980 "src/prebuilt/ast-lexer-gen.c" yy796: - yych = *++lexer->cursor; - if (yych == 'i') goto yy884; - goto yy50; -yy797: - yych = *++lexer->cursor; - if (yych == 'e') goto yy885; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 403 "src/ast-lexer.c" + { OPCODE(F64_CONVERT_S_I32); RETURN(CONVERT); } +#line 3988 "src/prebuilt/ast-lexer-gen.c" yy798: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 309 "src/ast-lexer.c" - { OPCODE(F32_FLOOR); RETURN(UNARY); } -#line 5060 "src/prebuilt/ast-lexer-gen.c" +#line 292 "src/ast-lexer.c" + { TYPE(F64); RETURN(CONST); } +#line 3996 "src/prebuilt/ast-lexer-gen.c" yy800: yych = *++lexer->cursor; - if (yych == 's') goto yy886; - goto yy50; -yy801: - yych = *++lexer->cursor; - if (yych == 'e') goto yy887; - goto yy50; -yy802: + if (yych != 'l') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 270 "src/ast-lexer.c" - { OPCODE(F32_STORE); RETURN(STORE); } -#line 5076 "src/prebuilt/ast-lexer-gen.c" +#line 308 "src/ast-lexer.c" + { OPCODE(F64_CEIL); RETURN(UNARY); } +#line 4006 "src/prebuilt/ast-lexer-gen.c" +yy803: + yych = *++lexer->cursor; + if (yych == 'r') goto yy812; + goto yy83; yy804: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 311 "src/ast-lexer.c" - { OPCODE(F32_TRUNC); RETURN(UNARY); } -#line 5084 "src/prebuilt/ast-lexer-gen.c" -yy806: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 292 "src/ast-lexer.c" - { TYPE(F64); RETURN(CONST); } -#line 5092 "src/prebuilt/ast-lexer-gen.c" -yy808: yych = *++lexer->cursor; - if (yych == 'r') goto yy888; - goto yy50; -yy809: + if (yych == 'o') goto yy808; + goto yy83; +yy805: yych = *++lexer->cursor; - if (yych == 'i') goto yy889; - goto yy50; -yy810: + if (yych != 'b') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 310 "src/ast-lexer.c" - { OPCODE(F64_FLOOR); RETURN(UNARY); } -#line 5108 "src/prebuilt/ast-lexer-gen.c" -yy812: - yych = *++lexer->cursor; - if (yych == 's') goto yy890; - goto yy50; -yy813: +#line 348 "src/ast-lexer.c" + { OPCODE(F64_SUB); RETURN(BINARY); } +#line 4024 "src/prebuilt/ast-lexer-gen.c" +yy808: yych = *++lexer->cursor; - if (yych == 't') goto yy891; - goto yy50; -yy814: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy892; - goto yy50; -yy815: + if (yych != 'e') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } #line 271 "src/ast-lexer.c" { OPCODE(F64_STORE); RETURN(STORE); } -#line 5128 "src/prebuilt/ast-lexer-gen.c" -yy817: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 312 "src/ast-lexer.c" - { OPCODE(F64_TRUNC); RETURN(UNARY); } -#line 5136 "src/prebuilt/ast-lexer-gen.c" -yy819: - yych = *++lexer->cursor; - if (yych == 'l') goto yy893; - goto yy50; -yy820: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 259 "src/ast-lexer.c" - { RETURN(GET_LOCAL); } -#line 5148 "src/prebuilt/ast-lexer-gen.c" -yy822: +#line 4036 "src/prebuilt/ast-lexer-gen.c" +yy812: yych = *++lexer->cursor; - if (yych == 'r') goto yy895; - goto yy50; -yy823: + if (yych != 't') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 289 "src/ast-lexer.c" - { TYPE(I32); RETURN(CONST); } -#line 5160 "src/prebuilt/ast-lexer-gen.c" -yy825: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 321 "src/ast-lexer.c" - { OPCODE(I32_DIV_S); RETURN(BINARY); } -#line 5168 "src/prebuilt/ast-lexer-gen.c" -yy827: +#line 306 "src/ast-lexer.c" + { OPCODE(F64_SQRT); RETURN(UNARY); } +#line 4046 "src/prebuilt/ast-lexer-gen.c" +yy815: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 323 "src/ast-lexer.c" - { OPCODE(I32_DIV_U); RETURN(BINARY); } -#line 5176 "src/prebuilt/ast-lexer-gen.c" -yy829: - yych = *++lexer->cursor; - if (yych == '6') goto yy896; - goto yy50; -yy830: - yych = *++lexer->cursor; - if (yych == '_') goto yy897; - goto yy50; -yy831: - yych = *++lexer->cursor; - if (yych == 't') goto yy898; - goto yy50; -yy832: +#line 386 "src/ast-lexer.c" + { OPCODE(F64_LE); RETURN(COMPARE); } +#line 4054 "src/prebuilt/ast-lexer-gen.c" +yy817: yych = *++lexer->cursor; - if (yych == 'e') goto yy900; - goto yy50; -yy833: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 325 "src/ast-lexer.c" - { OPCODE(I32_REM_S); RETURN(BINARY); } -#line 5200 "src/prebuilt/ast-lexer-gen.c" -yy835: + if (yych == 'a') goto yy820; + goto yy83; +yy818: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 327 "src/ast-lexer.c" - { OPCODE(I32_REM_U); RETURN(BINARY); } -#line 5208 "src/prebuilt/ast-lexer-gen.c" -yy837: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 337 "src/ast-lexer.c" - { OPCODE(I32_SHR_S); RETURN(BINARY); } -#line 5216 "src/prebuilt/ast-lexer-gen.c" -yy839: +#line 384 "src/ast-lexer.c" + { OPCODE(F64_LT); RETURN(COMPARE); } +#line 4066 "src/prebuilt/ast-lexer-gen.c" +yy820: + yych = *++lexer->cursor; + if (yych != 'd') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 339 "src/ast-lexer.c" - { OPCODE(I32_SHR_U); RETURN(BINARY); } -#line 5224 "src/prebuilt/ast-lexer-gen.c" -yy841: +#line 267 "src/ast-lexer.c" + { OPCODE(F64_LOAD); RETURN(LOAD); } +#line 4076 "src/prebuilt/ast-lexer-gen.c" +yy823: ++lexer->cursor; - if ((yych = *lexer->cursor) <= '8') { + if ((yych = *lexer->cursor) <= ':') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy49; + if (yych >= '!') goto yy82; } else { - if (yych <= '"') goto yy842; - if (yych <= '\'') goto yy49; + if (yych <= '"') goto yy824; + if (yych <= '\'') goto yy82; } } else { - if (yych <= '0') { - if (yych != ',') goto yy49; + if (yych <= ',') { + if (yych <= '+') goto yy82; } else { - if (yych <= '1') goto yy901; - if (yych <= '7') goto yy49; - goto yy902; + if (yych == '.') goto yy825; + goto yy82; } } } else { if (yych <= ']') { if (yych <= 'Z') { - if (yych != ';') goto yy49; + if (yych >= '<') goto yy82; } else { - if (yych == '\\') goto yy49; + if (yych == '\\') goto yy82; } } else { if (yych <= '|') { - if (yych != '{') goto yy49; + if (yych != '{') goto yy82; } else { - if (yych == '~') goto yy49; + if (yych == '~') goto yy82; } } } -yy842: -#line 268 "src/ast-lexer.c" - { OPCODE(I32_STORE); RETURN(STORE); } -#line 5262 "src/prebuilt/ast-lexer-gen.c" -yy843: +yy824: +#line 239 "src/ast-lexer.c" + { TYPE(F32); RETURN(VALUE_TYPE); } +#line 4113 "src/prebuilt/ast-lexer-gen.c" +yy825: yych = *++lexer->cursor; - if (yych == '_') goto yy904; - goto yy50; -yy844: + switch (yych) { + case 'a': goto yy830; + case 'c': goto yy828; + case 'd': goto yy834; + case 'e': goto yy835; + case 'f': goto yy831; + case 'g': goto yy836; + case 'l': goto yy826; + case 'm': goto yy833; + case 'n': goto yy829; + case 'r': goto yy837; + case 's': goto yy827; + case 't': goto yy832; + default: goto yy83; + } +yy826: yych = *++lexer->cursor; - if (yych == 'i') goto yy905; - goto yy50; -yy845: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 290 "src/ast-lexer.c" - { TYPE(I64); RETURN(CONST); } -#line 5278 "src/prebuilt/ast-lexer-gen.c" -yy847: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yych <= 'n') { + if (yych == 'e') goto yy958; + goto yy83; + } else { + if (yych <= 'o') goto yy960; + if (yych == 't') goto yy961; + goto yy83; } -#line 322 "src/ast-lexer.c" - { OPCODE(I64_DIV_S); RETURN(BINARY); } -#line 5286 "src/prebuilt/ast-lexer-gen.c" -yy849: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; +yy827: + yych = *++lexer->cursor; + if (yych <= 's') { + if (yych == 'q') goto yy946; + goto yy83; + } else { + if (yych <= 't') goto yy947; + if (yych <= 'u') goto yy948; + goto yy83; } -#line 324 "src/ast-lexer.c" - { OPCODE(I64_DIV_U); RETURN(BINARY); } -#line 5294 "src/prebuilt/ast-lexer-gen.c" -yy851: +yy828: yych = *++lexer->cursor; - if (yych == 'd') goto yy906; - goto yy50; -yy852: + if (yych == 'e') goto yy907; + if (yych == 'o') goto yy908; + goto yy83; +yy829: yych = *++lexer->cursor; - if (yych == '6') goto yy907; - goto yy50; -yy853: + if (yych == 'e') goto yy897; + goto yy83; +yy830: yych = *++lexer->cursor; - if (yych == '2') goto yy908; - goto yy50; -yy854: + if (yych == 'b') goto yy891; + if (yych == 'd') goto yy892; + goto yy83; +yy831: yych = *++lexer->cursor; - if (yych == '_') goto yy909; - goto yy50; -yy855: + if (yych == 'l') goto yy886; + goto yy83; +yy832: yych = *++lexer->cursor; - if (yych == 't') goto yy910; - goto yy50; -yy856: + if (yych == 'r') goto yy881; + goto yy83; +yy833: yych = *++lexer->cursor; - if (yych == 'e') goto yy912; - goto yy50; -yy857: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 326 "src/ast-lexer.c" - { OPCODE(I64_REM_S); RETURN(BINARY); } -#line 5326 "src/prebuilt/ast-lexer-gen.c" -yy859: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 328 "src/ast-lexer.c" - { OPCODE(I64_REM_U); RETURN(BINARY); } -#line 5334 "src/prebuilt/ast-lexer-gen.c" -yy861: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 338 "src/ast-lexer.c" - { OPCODE(I64_SHR_S); RETURN(BINARY); } -#line 5342 "src/prebuilt/ast-lexer-gen.c" -yy863: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 340 "src/ast-lexer.c" - { OPCODE(I64_SHR_U); RETURN(BINARY); } -#line 5350 "src/prebuilt/ast-lexer-gen.c" -yy865: - ++lexer->cursor; - if ((yych = *lexer->cursor) <= '7') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy49; - } else { - if (yych <= '\'') goto yy49; - if (yych >= '*') goto yy49; - } - } else { - if (yych <= '1') { - if (yych <= ',') goto yy866; - if (yych <= '0') goto yy49; - goto yy913; - } else { - if (yych == '3') goto yy914; - goto yy49; - } - } + if (yych <= 'h') { + if (yych == 'a') goto yy872; + goto yy83; } else { - if (yych <= '\\') { - if (yych <= ';') { - if (yych <= '8') goto yy915; - if (yych <= ':') goto yy49; - } else { - if (yych != '[') goto yy49; - } - } else { - if (yych <= '{') { - if (yych <= ']') goto yy866; - if (yych <= 'z') goto yy49; - } else { - if (yych == '}') goto yy866; - if (yych <= '~') goto yy49; - } - } + if (yych <= 'i') goto yy873; + if (yych == 'u') goto yy874; + goto yy83; } -yy866: -#line 269 "src/ast-lexer.c" - { OPCODE(I64_STORE); RETURN(STORE); } -#line 5392 "src/prebuilt/ast-lexer-gen.c" -yy867: +yy834: yych = *++lexer->cursor; - if (yych == '_') goto yy917; - goto yy50; -yy868: + if (yych == 'e') goto yy859; + if (yych == 'i') goto yy860; + goto yy83; +yy835: yych = *++lexer->cursor; - if (yych <= '@') { - if (yych <= '/') goto yy50; - if (yych <= '9') goto yy918; - goto yy50; - } else { - if (yych <= 'F') goto yy918; - if (yych <= '`') goto yy50; - if (yych <= 'f') goto yy918; - goto yy50; - } -yy869: + if (yych == 'q') goto yy857; + goto yy83; +yy836: yych = *++lexer->cursor; - if (yych == 'l') goto yy920; - goto yy50; -yy870: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 260 "src/ast-lexer.c" - { RETURN(SET_LOCAL); } -#line 5420 "src/prebuilt/ast-lexer-gen.c" -yy872: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 261 "src/ast-lexer.c" - { RETURN(TEE_LOCAL); } -#line 5428 "src/prebuilt/ast-lexer-gen.c" -yy874: + if (yych == 'e') goto yy853; + if (yych == 't') goto yy855; + goto yy83; +yy837: yych = *++lexer->cursor; - if (yych == 'l') goto yy922; - goto yy50; -yy875: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 'a') goto yy923; - goto yy50; -yy876: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == 'f') goto yy924; - goto yy50; -yy877: + if (yych != 'n') goto yy83; yych = *++lexer->cursor; - if (yych == 'u') goto yy925; - goto yy50; -yy878: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'p') goto yy926; - goto yy50; -yy879: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 'i') goto yy928; - goto yy50; -yy880: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy929; - goto yy50; -yy881: + if (yych != 'p') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy931; - goto yy50; -yy882: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'm') goto yy932; - goto yy50; -yy883: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy933; - goto yy50; -yy884: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'g') goto yy934; - goto yy50; -yy885: + if (yych != '/') goto yy83; yych = *++lexer->cursor; - if (yych == '/') goto yy935; - goto yy50; -yy886: + if (yych != 'i') goto yy83; + yych = *++lexer->cursor; + if (yych != '3') goto yy83; + yych = *++lexer->cursor; + if (yych != '2') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 412 "src/ast-lexer.c" + { OPCODE(F32_REINTERPRET_I32); RETURN(CONVERT); } +#line 4232 "src/prebuilt/ast-lexer-gen.c" +yy853: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 389 "src/ast-lexer.c" + { OPCODE(F32_GE); RETURN(COMPARE); } +#line 4240 "src/prebuilt/ast-lexer-gen.c" +yy855: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 387 "src/ast-lexer.c" + { OPCODE(F32_GT); RETURN(COMPARE); } +#line 4248 "src/prebuilt/ast-lexer-gen.c" +yy857: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 379 "src/ast-lexer.c" + { OPCODE(F32_EQ); RETURN(COMPARE); } +#line 4256 "src/prebuilt/ast-lexer-gen.c" +yy859: yych = *++lexer->cursor; - if (yych == 't') goto yy936; - goto yy50; -yy887: + if (yych == 'm') goto yy863; + goto yy83; +yy860: yych = *++lexer->cursor; - if (yych == 'r') goto yy938; - goto yy50; -yy888: + if (yych != 'v') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 351 "src/ast-lexer.c" + { OPCODE(F32_DIV); RETURN(BINARY); } +#line 4270 "src/prebuilt/ast-lexer-gen.c" +yy863: yych = *++lexer->cursor; - if (yych == 't') goto yy939; - goto yy50; -yy889: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == 'g') goto yy940; - goto yy50; -yy890: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy941; - goto yy50; -yy891: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy943; - goto yy50; -yy892: + if (yych != '/') goto yy83; + yych = *++lexer->cursor; + if (yych != 'f') goto yy83; + yych = *++lexer->cursor; + if (yych != '6') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy944; - goto yy50; -yy893: + if (yych != '4') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 262 "src/ast-lexer.c" - { RETURN(GET_GLOBAL); } -#line 5512 "src/prebuilt/ast-lexer-gen.c" -yy895: +#line 411 "src/ast-lexer.c" + { OPCODE(F32_DEMOTE_F64); RETURN(CONVERT); } +#line 4292 "src/prebuilt/ast-lexer-gen.c" +yy872: yych = *++lexer->cursor; - if (yych == 'y') goto yy945; - goto yy50; -yy896: + if (yych == 'x') goto yy879; + goto yy83; +yy873: yych = *++lexer->cursor; - if (yych == '_') goto yy947; - goto yy50; -yy897: + if (yych == 'n') goto yy877; + goto yy83; +yy874: yych = *++lexer->cursor; - if (yych == 's') goto yy948; - if (yych == 'u') goto yy950; - goto yy50; -yy898: + if (yych != 'l') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 299 "src/ast-lexer.c" - { OPCODE(I32_POPCNT); RETURN(UNARY); } -#line 5533 "src/prebuilt/ast-lexer-gen.c" -yy900: - yych = *++lexer->cursor; - if (yych == 'r') goto yy952; - goto yy50; -yy901: - yych = *++lexer->cursor; - if (yych == '6') goto yy953; - goto yy50; -yy902: +#line 349 "src/ast-lexer.c" + { OPCODE(F32_MUL); RETURN(BINARY); } +#line 4310 "src/prebuilt/ast-lexer-gen.c" +yy877: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 282 "src/ast-lexer.c" - { OPCODE(I32_STORE8); RETURN(STORE); } -#line 5549 "src/prebuilt/ast-lexer-gen.c" -yy904: +#line 353 "src/ast-lexer.c" + { OPCODE(F32_MIN); RETURN(BINARY); } +#line 4318 "src/prebuilt/ast-lexer-gen.c" +yy879: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 355 "src/ast-lexer.c" + { OPCODE(F32_MAX); RETURN(BINARY); } +#line 4326 "src/prebuilt/ast-lexer-gen.c" +yy881: yych = *++lexer->cursor; - if (yych == 's') goto yy955; - if (yych == 'u') goto yy956; - goto yy50; -yy905: + if (yych != 'u') goto yy83; yych = *++lexer->cursor; - if (yych == '6') goto yy957; - goto yy50; -yy906: + if (yych != 'n') goto yy83; yych = *++lexer->cursor; - if (yych == '_') goto yy958; - goto yy50; -yy907: + if (yych != 'c') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 311 "src/ast-lexer.c" + { OPCODE(F32_TRUNC); RETURN(UNARY); } +#line 4340 "src/prebuilt/ast-lexer-gen.c" +yy886: yych = *++lexer->cursor; - if (yych == '_') goto yy959; - goto yy50; -yy908: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == '_') goto yy960; - goto yy50; -yy909: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == 's') goto yy961; - if (yych == 'u') goto yy963; - goto yy50; -yy910: + if (yych != 'r') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 300 "src/ast-lexer.c" - { OPCODE(I64_POPCNT); RETURN(UNARY); } -#line 5583 "src/prebuilt/ast-lexer-gen.c" -yy912: - yych = *++lexer->cursor; - if (yych == 'r') goto yy965; - goto yy50; -yy913: +#line 309 "src/ast-lexer.c" + { OPCODE(F32_FLOOR); RETURN(UNARY); } +#line 4354 "src/prebuilt/ast-lexer-gen.c" +yy891: yych = *++lexer->cursor; - if (yych == '6') goto yy966; - goto yy50; -yy914: + if (yych == 's') goto yy895; + goto yy83; +yy892: yych = *++lexer->cursor; - if (yych == '2') goto yy968; - goto yy50; -yy915: + if (yych != 'd') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 283 "src/ast-lexer.c" - { OPCODE(I64_STORE8); RETURN(STORE); } -#line 5603 "src/prebuilt/ast-lexer-gen.c" -yy917: - yych = *++lexer->cursor; - if (yych == 's') goto yy970; - if (yych == 'u') goto yy971; - goto yy50; -yy918: +#line 345 "src/ast-lexer.c" + { OPCODE(F32_ADD); RETURN(BINARY); } +#line 4368 "src/prebuilt/ast-lexer-gen.c" +yy895: ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= '@') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy49; - goto yy774; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 303 "src/ast-lexer.c" + { OPCODE(F32_ABS); RETURN(UNARY); } +#line 4376 "src/prebuilt/ast-lexer-gen.c" +yy897: + ++lexer->cursor; + if ((yych = *lexer->cursor) <= '[') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; } else { - if (yych <= '\'') goto yy49; - if (yych <= ')') goto yy774; - goto yy49; + if (yych <= '"') goto yy898; + if (yych <= '\'') goto yy82; } } else { - if (yych <= '9') { - if (yych <= ',') goto yy774; - if (yych <= '/') goto yy49; - goto yy918; + if (yych <= ':') { + if (yych != ',') goto yy82; } else { - if (yych == ';') goto yy774; - goto yy49; + if (yych <= ';') goto yy898; + if (yych <= 'Z') goto yy82; } } } else { - if (yych <= '`') { - if (yych <= '[') { - if (yych <= 'F') goto yy918; - if (yych <= 'Z') goto yy49; - goto yy774; + if (yych <= 'g') { + if (yych <= '`') { + if (yych != ']') goto yy82; } else { - if (yych == ']') goto yy774; - goto yy49; + if (yych <= 'a') goto yy901; + if (yych <= 'f') goto yy82; + goto yy899; } } else { - if (yych <= '{') { - if (yych <= 'f') goto yy918; - if (yych <= 'z') goto yy49; - goto yy774; + if (yych <= '|') { + if (yych != '{') goto yy82; } else { - if (yych == '}') goto yy774; - if (yych <= '~') goto yy49; - goto yy774; + if (yych == '~') goto yy82; } } } -yy920: +yy898: +#line 381 "src/ast-lexer.c" + { OPCODE(F32_NE); RETURN(COMPARE); } +#line 4415 "src/prebuilt/ast-lexer-gen.c" +yy899: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 263 "src/ast-lexer.c" - { RETURN(SET_GLOBAL); } -#line 5662 "src/prebuilt/ast-lexer-gen.c" -yy922: +#line 301 "src/ast-lexer.c" + { OPCODE(F32_NEG); RETURN(UNARY); } +#line 4423 "src/prebuilt/ast-lexer-gen.c" +yy901: yych = *++lexer->cursor; - if (yych == 'e') goto yy972; - goto yy50; -yy923: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'l') goto yy974; - goto yy50; -yy924: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy975; - goto yy50; -yy925: + if (yych != 's') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy976; - goto yy50; -yy926: + if (yych != 't') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 443 "src/ast-lexer.c" - { RETURN(ASSERT_TRAP); } -#line 5686 "src/prebuilt/ast-lexer-gen.c" -yy928: +#line 313 "src/ast-lexer.c" + { OPCODE(F32_NEAREST); RETURN(UNARY); } +#line 4439 "src/prebuilt/ast-lexer-gen.c" +yy907: + yych = *++lexer->cursor; + if (yych == 'i') goto yy943; + goto yy83; +yy908: + yych = *++lexer->cursor; + if (yych == 'n') goto yy909; + if (yych == 'p') goto yy910; + goto yy83; +yy909: + yych = *++lexer->cursor; + if (yych == 's') goto yy917; + if (yych == 'v') goto yy918; + goto yy83; +yy910: + yych = *++lexer->cursor; + if (yych != 'y') goto yy83; + yych = *++lexer->cursor; + if (yych != 's') goto yy83; yych = *++lexer->cursor; - if (yych == 'n') goto yy977; - goto yy50; -yy929: + if (yych != 'i') goto yy83; + yych = *++lexer->cursor; + if (yych != 'g') goto yy83; + yych = *++lexer->cursor; + if (yych != 'n') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 254 "src/ast-lexer.c" - { RETURN(CALL_IMPORT); } -#line 5698 "src/prebuilt/ast-lexer-gen.c" -yy931: +#line 357 "src/ast-lexer.c" + { OPCODE(F32_COPYSIGN); RETURN(BINARY); } +#line 4471 "src/prebuilt/ast-lexer-gen.c" +yy917: + yych = *++lexer->cursor; + if (yych == 't') goto yy941; + goto yy83; +yy918: + yych = *++lexer->cursor; + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 'c') goto yy978; - goto yy50; -yy932: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'o') goto yy979; - goto yy50; + if (yych != 't') goto yy83; + yych = *++lexer->cursor; + if (yych != '_') goto yy83; + yych = *++lexer->cursor; + if (yych == 's') goto yy923; + if (yych == 'u') goto yy924; + goto yy83; +yy923: + yych = *++lexer->cursor; + if (yych == '/') goto yy933; + goto yy83; +yy924: + yych = *++lexer->cursor; + if (yych != '/') goto yy83; + yych = *++lexer->cursor; + if (yych != 'i') goto yy83; + yych = *++lexer->cursor; + if (yych == '3') goto yy927; + if (yych == '6') goto yy928; + goto yy83; +yy927: + yych = *++lexer->cursor; + if (yych == '2') goto yy931; + goto yy83; +yy928: + yych = *++lexer->cursor; + if (yych != '4') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 408 "src/ast-lexer.c" + { OPCODE(F32_CONVERT_U_I64); RETURN(CONVERT); } +#line 4515 "src/prebuilt/ast-lexer-gen.c" +yy931: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 406 "src/ast-lexer.c" + { OPCODE(F32_CONVERT_U_I32); RETURN(CONVERT); } +#line 4523 "src/prebuilt/ast-lexer-gen.c" yy933: yych = *++lexer->cursor; - if (yych == '_') goto yy980; - goto yy50; -yy934: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == 'n') goto yy981; - goto yy50; + if (yych == '3') goto yy935; + if (yych == '6') goto yy936; + goto yy83; yy935: yych = *++lexer->cursor; - if (yych == 'f') goto yy983; - goto yy50; + if (yych == '2') goto yy939; + goto yy83; yy936: + yych = *++lexer->cursor; + if (yych != '4') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 313 "src/ast-lexer.c" - { OPCODE(F32_NEAREST); RETURN(UNARY); } -#line 5726 "src/prebuilt/ast-lexer-gen.c" -yy938: - yych = *++lexer->cursor; - if (yych == 'p') goto yy984; - goto yy50; +#line 404 "src/ast-lexer.c" + { OPCODE(F32_CONVERT_S_I64); RETURN(CONVERT); } +#line 4544 "src/prebuilt/ast-lexer-gen.c" yy939: - yych = *++lexer->cursor; - if (yych == '_') goto yy985; - goto yy50; -yy940: - yych = *++lexer->cursor; - if (yych == 'n') goto yy986; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 402 "src/ast-lexer.c" + { OPCODE(F32_CONVERT_S_I32); RETURN(CONVERT); } +#line 4552 "src/prebuilt/ast-lexer-gen.c" yy941: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 314 "src/ast-lexer.c" - { OPCODE(F64_NEAREST); RETURN(UNARY); } -#line 5746 "src/prebuilt/ast-lexer-gen.c" +#line 291 "src/ast-lexer.c" + { TYPE(F32); RETURN(CONST); } +#line 4560 "src/prebuilt/ast-lexer-gen.c" yy943: yych = *++lexer->cursor; - if (yych == '/') goto yy988; - goto yy50; -yy944: - yych = *++lexer->cursor; - if (yych == 'p') goto yy989; - goto yy50; -yy945: + if (yych != 'l') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 419 "src/ast-lexer.c" - { RETURN(GROW_MEMORY); } -#line 5762 "src/prebuilt/ast-lexer-gen.c" +#line 307 "src/ast-lexer.c" + { OPCODE(F32_CEIL); RETURN(UNARY); } +#line 4570 "src/prebuilt/ast-lexer-gen.c" +yy946: + yych = *++lexer->cursor; + if (yych == 'r') goto yy955; + goto yy83; yy947: yych = *++lexer->cursor; - if (yych == 's') goto yy990; - if (yych == 'u') goto yy992; - goto yy50; + if (yych == 'o') goto yy951; + goto yy83; yy948: + yych = *++lexer->cursor; + if (yych != 'b') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 272 "src/ast-lexer.c" - { OPCODE(I32_LOAD8_S); RETURN(LOAD); } -#line 5775 "src/prebuilt/ast-lexer-gen.c" -yy950: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 274 "src/ast-lexer.c" - { OPCODE(I32_LOAD8_U); RETURN(LOAD); } -#line 5783 "src/prebuilt/ast-lexer-gen.c" -yy952: +#line 347 "src/ast-lexer.c" + { OPCODE(F32_SUB); RETURN(BINARY); } +#line 4588 "src/prebuilt/ast-lexer-gen.c" +yy951: yych = *++lexer->cursor; - if (yych == 'p') goto yy994; - goto yy50; -yy953: + if (yych != 'r') goto yy83; + yych = *++lexer->cursor; + if (yych != 'e') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 284 "src/ast-lexer.c" - { OPCODE(I32_STORE16); RETURN(STORE); } -#line 5795 "src/prebuilt/ast-lexer-gen.c" +#line 270 "src/ast-lexer.c" + { OPCODE(F32_STORE); RETURN(STORE); } +#line 4600 "src/prebuilt/ast-lexer-gen.c" yy955: yych = *++lexer->cursor; - if (yych == '/') goto yy995; - goto yy50; -yy956: - yych = *++lexer->cursor; - if (yych == '/') goto yy996; - goto yy50; -yy957: - yych = *++lexer->cursor; - if (yych == '4') goto yy997; - goto yy50; + if (yych != 't') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 305 "src/ast-lexer.c" + { OPCODE(F32_SQRT); RETURN(UNARY); } +#line 4610 "src/prebuilt/ast-lexer-gen.c" yy958: - yych = *++lexer->cursor; - if (yych == 's') goto yy999; - if (yych == 'u') goto yy1000; - goto yy50; -yy959: - yych = *++lexer->cursor; - if (yych == 's') goto yy1001; - if (yych == 'u') goto yy1003; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 385 "src/ast-lexer.c" + { OPCODE(F32_LE); RETURN(COMPARE); } +#line 4618 "src/prebuilt/ast-lexer-gen.c" yy960: yych = *++lexer->cursor; - if (yych == 's') goto yy1005; - if (yych == 'u') goto yy1007; - goto yy50; + if (yych == 'a') goto yy963; + goto yy83; yy961: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 273 "src/ast-lexer.c" - { OPCODE(I64_LOAD8_S); RETURN(LOAD); } -#line 5830 "src/prebuilt/ast-lexer-gen.c" +#line 383 "src/ast-lexer.c" + { OPCODE(F32_LT); RETURN(COMPARE); } +#line 4630 "src/prebuilt/ast-lexer-gen.c" yy963: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 275 "src/ast-lexer.c" - { OPCODE(I64_LOAD8_U); RETURN(LOAD); } -#line 5838 "src/prebuilt/ast-lexer-gen.c" -yy965: yych = *++lexer->cursor; - if (yych == 'p') goto yy1009; - goto yy50; -yy966: + if (yych != 'd') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 285 "src/ast-lexer.c" - { OPCODE(I64_STORE16); RETURN(STORE); } -#line 5850 "src/prebuilt/ast-lexer-gen.c" +#line 266 "src/ast-lexer.c" + { OPCODE(F32_LOAD); RETURN(LOAD); } +#line 4640 "src/prebuilt/ast-lexer-gen.c" +yy966: + yych = *++lexer->cursor; + if (yych == 'e') goto yy977; + if (yych == 's') goto yy976; + goto yy83; +yy967: + yych = *++lexer->cursor; + if (yych == 'd') goto yy974; + goto yy83; yy968: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 286 "src/ast-lexer.c" - { OPCODE(I64_STORE32); RETURN(STORE); } -#line 5858 "src/prebuilt/ast-lexer-gen.c" -yy970: yych = *++lexer->cursor; - if (yych == '/') goto yy1010; - goto yy50; -yy971: + if (yych != 'p') goto yy83; + yych = *++lexer->cursor; + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == '/') goto yy1011; - goto yy50; -yy972: + if (yych != 'r') goto yy83; + yych = *++lexer->cursor; + if (yych != 't') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 417 "src/ast-lexer.c" - { RETURN(UNREACHABLE); } -#line 5874 "src/prebuilt/ast-lexer-gen.c" +#line 434 "src/ast-lexer.c" + { RETURN(EXPORT); } +#line 4665 "src/prebuilt/ast-lexer-gen.c" yy974: - yych = *++lexer->cursor; - if (yych == 'i') goto yy1012; - goto yy50; -yy975: - yych = *++lexer->cursor; - if (yych == 'r') goto yy1013; - goto yy50; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 257 "src/ast-lexer.c" + { RETURN(END); } +#line 4673 "src/prebuilt/ast-lexer-gen.c" yy976: yych = *++lexer->cursor; - if (yych == 'n') goto yy1014; - goto yy50; + if (yych == 'e') goto yy980; + goto yy83; yy977: yych = *++lexer->cursor; - if (yych == 'k') goto yy1016; - goto yy50; -yy978: - yych = *++lexer->cursor; - if (yych == 't') goto yy1017; - goto yy50; -yy979: - yych = *++lexer->cursor; - if (yych == 'r') goto yy1019; - goto yy50; + if (yych != 'm') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 430 "src/ast-lexer.c" + { RETURN(ELEM); } +#line 4687 "src/prebuilt/ast-lexer-gen.c" yy980: - yych = *++lexer->cursor; - if (yych == 's') goto yy1020; - if (yych == 'u') goto yy1021; - goto yy50; -yy981: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 357 "src/ast-lexer.c" - { OPCODE(F32_COPYSIGN); RETURN(BINARY); } -#line 5911 "src/prebuilt/ast-lexer-gen.c" -yy983: +#line 248 "src/ast-lexer.c" + { RETURN(ELSE); } +#line 4695 "src/prebuilt/ast-lexer-gen.c" +yy982: yych = *++lexer->cursor; - if (yych == '6') goto yy1022; - goto yy50; -yy984: + if (yych == 't') goto yy987; + goto yy83; +yy983: yych = *++lexer->cursor; - if (yych == 'r') goto yy1023; - goto yy50; -yy985: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == 's') goto yy1024; - if (yych == 'u') goto yy1025; - goto yy50; -yy986: + if (yych != 'p') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 358 "src/ast-lexer.c" - { OPCODE(F64_COPYSIGN); RETURN(BINARY); } -#line 5932 "src/prebuilt/ast-lexer-gen.c" -yy988: - yych = *++lexer->cursor; - if (yych == 'f') goto yy1026; - goto yy50; -yy989: +#line 256 "src/ast-lexer.c" + { RETURN(DROP); } +#line 4711 "src/prebuilt/ast-lexer-gen.c" +yy987: yych = *++lexer->cursor; - if (yych == 'r') goto yy1027; - goto yy50; -yy990: + if (yych != 'a') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 276 "src/ast-lexer.c" - { OPCODE(I32_LOAD16_S); RETURN(LOAD); } -#line 5948 "src/prebuilt/ast-lexer-gen.c" -yy992: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 278 "src/ast-lexer.c" - { OPCODE(I32_LOAD16_U); RETURN(LOAD); } -#line 5956 "src/prebuilt/ast-lexer-gen.c" -yy994: +#line 431 "src/ast-lexer.c" + { RETURN(DATA); } +#line 4721 "src/prebuilt/ast-lexer-gen.c" +yy990: yych = *++lexer->cursor; - if (yych == 'r') goto yy1028; - goto yy50; -yy995: + if (yych == 'l') goto yy1005; + goto yy83; +yy991: yych = *++lexer->cursor; - if (yych == 'f') goto yy1029; - goto yy50; -yy996: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'f') goto yy1030; - goto yy50; -yy997: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 393 "src/ast-lexer.c" - { OPCODE(I32_WRAP_I64); RETURN(CONVERT); } -#line 5976 "src/prebuilt/ast-lexer-gen.c" -yy999: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == '/') goto yy1031; - goto yy50; -yy1000: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == '/') goto yy1032; - goto yy50; -yy1001: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 277 "src/ast-lexer.c" - { OPCODE(I64_LOAD16_S); RETURN(LOAD); } -#line 5992 "src/prebuilt/ast-lexer-gen.c" -yy1003: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 279 "src/ast-lexer.c" - { OPCODE(I64_LOAD16_U); RETURN(LOAD); } -#line 6000 "src/prebuilt/ast-lexer-gen.c" -yy1005: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 280 "src/ast-lexer.c" - { OPCODE(I64_LOAD32_S); RETURN(LOAD); } -#line 6008 "src/prebuilt/ast-lexer-gen.c" -yy1007: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 281 "src/ast-lexer.c" - { OPCODE(I64_LOAD32_U); RETURN(LOAD); } -#line 6016 "src/prebuilt/ast-lexer-gen.c" -yy1009: + if (yych != 'n') goto yy83; yych = *++lexer->cursor; - if (yych == 'r') goto yy1033; - goto yy50; -yy1010: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == 'f') goto yy1034; - goto yy50; -yy1011: + if (yych != '_') goto yy83; yych = *++lexer->cursor; - if (yych == 'f') goto yy1035; - goto yy50; -yy1012: + if (yych != 'm') goto yy83; + yych = *++lexer->cursor; + if (yych != 'e') goto yy83; + yych = *++lexer->cursor; + if (yych != 'm') goto yy83; yych = *++lexer->cursor; - if (yych == 'd') goto yy1036; - goto yy50; -yy1013: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == 'm') goto yy1038; - goto yy50; -yy1014: + if (yych != 'r') goto yy83; + yych = *++lexer->cursor; + if (yych != 'y') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 418 "src/ast-lexer.c" + { RETURN(CURRENT_MEMORY); } +#line 4757 "src/prebuilt/ast-lexer-gen.c" +yy1005: + yych = *++lexer->cursor; + if (yych != 'l') goto yy83; ++lexer->cursor; if ((yych = *lexer->cursor) <= 'Z') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy49; + if (yych >= '!') goto yy82; } else { - if (yych <= '"') goto yy1015; - if (yych <= '\'') goto yy49; + if (yych <= '"') goto yy1007; + if (yych <= '\'') goto yy82; } } else { if (yych <= ',') { - if (yych <= '+') goto yy49; + if (yych <= '+') goto yy82; } else { - if (yych != ';') goto yy49; + if (yych != ';') goto yy82; } } } else { if (yych <= '_') { if (yych <= '\\') { - if (yych >= '\\') goto yy49; + if (yych >= '\\') goto yy82; } else { - if (yych <= ']') goto yy1015; - if (yych <= '^') goto yy49; - goto yy1039; + if (yych <= ']') goto yy1007; + if (yych <= '^') goto yy82; + goto yy1008; } } else { if (yych <= '|') { - if (yych != '{') goto yy49; + if (yych != '{') goto yy82; } else { - if (yych == '~') goto yy49; + if (yych == '~') goto yy82; } } } -yy1015: -#line 441 "src/ast-lexer.c" - { RETURN(ASSERT_RETURN); } -#line 6074 "src/prebuilt/ast-lexer-gen.c" -yy1016: +yy1007: +#line 253 "src/ast-lexer.c" + { RETURN(CALL); } +#line 4797 "src/prebuilt/ast-lexer-gen.c" +yy1008: + yych = *++lexer->cursor; + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == 'a') goto yy1040; - goto yy50; -yy1017: + if (yych <= 'l') goto yy83; + if (yych <= 'm') goto yy1010; + if (yych <= 'n') goto yy1011; + goto yy83; +yy1010: + yych = *++lexer->cursor; + if (yych == 'p') goto yy1019; + goto yy83; +yy1011: + yych = *++lexer->cursor; + if (yych != 'd') goto yy83; + yych = *++lexer->cursor; + if (yych != 'i') goto yy83; + yych = *++lexer->cursor; + if (yych != 'r') goto yy83; + yych = *++lexer->cursor; + if (yych != 'e') goto yy83; + yych = *++lexer->cursor; + if (yych != 'c') goto yy83; + yych = *++lexer->cursor; + if (yych != 't') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } #line 255 "src/ast-lexer.c" { RETURN(CALL_INDIRECT); } -#line 6086 "src/prebuilt/ast-lexer-gen.c" +#line 4829 "src/prebuilt/ast-lexer-gen.c" yy1019: yych = *++lexer->cursor; - if (yych == 'y') goto yy1041; - goto yy50; -yy1020: - yych = *++lexer->cursor; - if (yych == '/') goto yy1043; - goto yy50; -yy1021: - yych = *++lexer->cursor; - if (yych == '/') goto yy1044; - goto yy50; -yy1022: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == '4') goto yy1045; - goto yy50; -yy1023: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy1047; - goto yy50; + if (yych != 't') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 254 "src/ast-lexer.c" + { RETURN(CALL_IMPORT); } +#line 4843 "src/prebuilt/ast-lexer-gen.c" yy1024: yych = *++lexer->cursor; - if (yych == '/') goto yy1048; - goto yy50; + if (yych == 'o') goto yy1037; + goto yy83; yy1025: - yych = *++lexer->cursor; - if (yych == '/') goto yy1049; - goto yy50; + ++lexer->cursor; + if ((yych = *lexer->cursor) <= 'Z') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; + } else { + if (yych <= '"') goto yy1026; + if (yych <= '\'') goto yy82; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy82; + } else { + if (yych != ';') goto yy82; + } + } + } else { + if (yych <= '_') { + if (yych <= '\\') { + if (yych >= '\\') goto yy82; + } else { + if (yych <= ']') goto yy1026; + if (yych <= '^') goto yy82; + goto yy1027; + } + } else { + if (yych <= '|') { + if (yych != '{') goto yy82; + } else { + if (yych == '~') goto yy82; + } + } + } yy1026: - yych = *++lexer->cursor; - if (yych == '3') goto yy1050; - goto yy50; +#line 250 "src/ast-lexer.c" + { RETURN(BR); } +#line 4885 "src/prebuilt/ast-lexer-gen.c" yy1027: yych = *++lexer->cursor; - if (yych == 'e') goto yy1051; - goto yy50; + if (yych == 'i') goto yy1028; + if (yych == 't') goto yy1029; + goto yy83; yy1028: yych = *++lexer->cursor; - if (yych == 'e') goto yy1052; - goto yy50; + if (yych == 'f') goto yy1035; + goto yy83; yy1029: yych = *++lexer->cursor; - if (yych == '3') goto yy1053; - if (yych == '6') goto yy1054; - goto yy50; -yy1030: - yych = *++lexer->cursor; - if (yych == '3') goto yy1055; - if (yych == '6') goto yy1056; - goto yy50; -yy1031: - yych = *++lexer->cursor; - if (yych == 'i') goto yy1057; - goto yy50; -yy1032: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych == 'i') goto yy1058; - goto yy50; -yy1033: + if (yych != 'b') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy1059; - goto yy50; -yy1034: + if (yych != 'l') goto yy83; yych = *++lexer->cursor; - if (yych == '3') goto yy1060; - if (yych == '6') goto yy1061; - goto yy50; + if (yych != 'e') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 252 "src/ast-lexer.c" + { RETURN(BR_TABLE); } +#line 4910 "src/prebuilt/ast-lexer-gen.c" yy1035: - yych = *++lexer->cursor; - if (yych == '3') goto yy1062; - if (yych == '6') goto yy1063; - goto yy50; -yy1036: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 439 "src/ast-lexer.c" - { RETURN(ASSERT_INVALID); } -#line 6166 "src/prebuilt/ast-lexer-gen.c" -yy1038: - yych = *++lexer->cursor; - if (yych == 'e') goto yy1064; - goto yy50; -yy1039: +#line 251 "src/ast-lexer.c" + { RETURN(BR_IF); } +#line 4918 "src/prebuilt/ast-lexer-gen.c" +yy1037: yych = *++lexer->cursor; - if (yych == 'n') goto yy1065; - goto yy50; -yy1040: + if (yych != 'c') goto yy83; yych = *++lexer->cursor; - if (yych == 'b') goto yy1066; - goto yy50; -yy1041: + if (yych != 'k') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 418 "src/ast-lexer.c" - { RETURN(CURRENT_MEMORY); } -#line 6186 "src/prebuilt/ast-lexer-gen.c" +#line 244 "src/ast-lexer.c" + { RETURN(BLOCK); } +#line 4930 "src/prebuilt/ast-lexer-gen.c" +yy1041: + yych = *++lexer->cursor; + if (yych == 'i') goto yy1112; + goto yy83; +yy1042: + yych = *++lexer->cursor; + if (yych == 'y') goto yy1106; + goto yy83; yy1043: yych = *++lexer->cursor; - if (yych == 'i') goto yy1067; - goto yy50; -yy1044: + if (yych != 's') goto yy83; yych = *++lexer->cursor; - if (yych == 'i') goto yy1068; - goto yy50; -yy1045: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 411 "src/ast-lexer.c" - { OPCODE(F32_DEMOTE_F64); RETURN(CONVERT); } -#line 6202 "src/prebuilt/ast-lexer-gen.c" -yy1047: + if (yych != 'e') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy1069; - goto yy50; -yy1048: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == 'i') goto yy1070; - goto yy50; + if (yych != 't') goto yy83; + yych = *++lexer->cursor; + if (yych != '_') goto yy83; + yych = *++lexer->cursor; + switch (yych) { + case 'e': goto yy1049; + case 'i': goto yy1050; + case 'm': goto yy1051; + case 'r': goto yy1052; + case 't': goto yy1053; + case 'u': goto yy1054; + default: goto yy83; + } yy1049: yych = *++lexer->cursor; - if (yych == 'i') goto yy1071; - goto yy50; + if (yych == 'x') goto yy1096; + goto yy83; yy1050: yych = *++lexer->cursor; - if (yych == '2') goto yy1072; - goto yy50; + if (yych == 'n') goto yy1089; + goto yy83; yy1051: yych = *++lexer->cursor; - if (yych == 't') goto yy1074; - goto yy50; + if (yych == 'a') goto yy1080; + goto yy83; yy1052: yych = *++lexer->cursor; - if (yych == 't') goto yy1075; - goto yy50; + if (yych == 'e') goto yy1069; + goto yy83; yy1053: yych = *++lexer->cursor; - if (yych == '2') goto yy1076; - goto yy50; + if (yych == 'r') goto yy1065; + goto yy83; yy1054: yych = *++lexer->cursor; - if (yych == '4') goto yy1078; - goto yy50; -yy1055: - yych = *++lexer->cursor; - if (yych == '2') goto yy1080; - goto yy50; -yy1056: - yych = *++lexer->cursor; - if (yych == '4') goto yy1082; - goto yy50; -yy1057: + if (yych != 'n') goto yy83; yych = *++lexer->cursor; - if (yych == '3') goto yy1084; - goto yy50; -yy1058: + if (yych != 'l') goto yy83; yych = *++lexer->cursor; - if (yych == '3') goto yy1085; - goto yy50; -yy1059: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == 't') goto yy1086; - goto yy50; -yy1060: + if (yych != 'n') goto yy83; yych = *++lexer->cursor; - if (yych == '2') goto yy1087; - goto yy50; -yy1061: + if (yych != 'k') goto yy83; yych = *++lexer->cursor; - if (yych == '4') goto yy1089; - goto yy50; -yy1062: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych == '2') goto yy1091; - goto yy50; -yy1063: + if (yych != 'b') goto yy83; yych = *++lexer->cursor; - if (yych == '4') goto yy1093; - goto yy50; -yy1064: + if (yych != 'l') goto yy83; yych = *++lexer->cursor; - if (yych == 'd') goto yy1095; - goto yy50; + if (yych != 'e') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 440 "src/ast-lexer.c" + { RETURN(ASSERT_UNLINKABLE); } +#line 5005 "src/prebuilt/ast-lexer-gen.c" yy1065: yych = *++lexer->cursor; - if (yych == 'a') goto yy1097; - goto yy50; -yy1066: - yych = *++lexer->cursor; - if (yych == 'l') goto yy1098; - goto yy50; -yy1067: - yych = *++lexer->cursor; - if (yych == '3') goto yy1099; - if (yych == '6') goto yy1100; - goto yy50; -yy1068: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych == '3') goto yy1101; - if (yych == '6') goto yy1102; - goto yy50; + if (yych != 'p') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 443 "src/ast-lexer.c" + { RETURN(ASSERT_TRAP); } +#line 5017 "src/prebuilt/ast-lexer-gen.c" yy1069: yych = *++lexer->cursor; - if (yych == '/') goto yy1103; - goto yy50; -yy1070: + if (yych != 't') goto yy83; + yych = *++lexer->cursor; + if (yych != 'u') goto yy83; yych = *++lexer->cursor; - if (yych == '3') goto yy1104; - if (yych == '6') goto yy1105; - goto yy50; -yy1071: + if (yych != 'r') goto yy83; yych = *++lexer->cursor; - if (yych == '3') goto yy1106; - if (yych == '6') goto yy1107; - goto yy50; -yy1072: + if (yych != 'n') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if ((yych = *lexer->cursor) <= 'Z') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; + } else { + if (yych <= '"') goto yy1074; + if (yych <= '\'') goto yy82; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy82; + } else { + if (yych != ';') goto yy82; + } + } + } else { + if (yych <= '_') { + if (yych <= '\\') { + if (yych >= '\\') goto yy82; + } else { + if (yych <= ']') goto yy1074; + if (yych <= '^') goto yy82; + goto yy1075; + } + } else { + if (yych <= '|') { + if (yych != '{') goto yy82; + } else { + if (yych == '~') goto yy82; + } + } } -#line 410 "src/ast-lexer.c" - { OPCODE(F64_PROMOTE_F32); RETURN(CONVERT); } -#line 6314 "src/prebuilt/ast-lexer-gen.c" yy1074: - yych = *++lexer->cursor; - if (yych == '/') goto yy1108; - goto yy50; +#line 441 "src/ast-lexer.c" + { RETURN(ASSERT_RETURN); } +#line 5063 "src/prebuilt/ast-lexer-gen.c" yy1075: yych = *++lexer->cursor; - if (yych == '/') goto yy1109; - goto yy50; -yy1076: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 394 "src/ast-lexer.c" - { OPCODE(I32_TRUNC_S_F32); RETURN(CONVERT); } -#line 6330 "src/prebuilt/ast-lexer-gen.c" -yy1078: + if (yych != 'n') goto yy83; + yych = *++lexer->cursor; + if (yych != 'a') goto yy83; + yych = *++lexer->cursor; + if (yych != 'n') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 396 "src/ast-lexer.c" - { OPCODE(I32_TRUNC_S_F64); RETURN(CONVERT); } -#line 6338 "src/prebuilt/ast-lexer-gen.c" +#line 442 "src/ast-lexer.c" + { RETURN(ASSERT_RETURN_NAN); } +#line 5077 "src/prebuilt/ast-lexer-gen.c" yy1080: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 398 "src/ast-lexer.c" - { OPCODE(I32_TRUNC_U_F32); RETURN(CONVERT); } -#line 6346 "src/prebuilt/ast-lexer-gen.c" -yy1082: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 400 "src/ast-lexer.c" - { OPCODE(I32_TRUNC_U_F64); RETURN(CONVERT); } -#line 6354 "src/prebuilt/ast-lexer-gen.c" -yy1084: yych = *++lexer->cursor; - if (yych == '2') goto yy1110; - goto yy50; -yy1085: + if (yych != 'l') goto yy83; yych = *++lexer->cursor; - if (yych == '2') goto yy1112; - goto yy50; -yy1086: + if (yych != 'f') goto yy83; yych = *++lexer->cursor; - if (yych == '/') goto yy1114; - goto yy50; -yy1087: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 395 "src/ast-lexer.c" - { OPCODE(I64_TRUNC_S_F32); RETURN(CONVERT); } -#line 6374 "src/prebuilt/ast-lexer-gen.c" -yy1089: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 397 "src/ast-lexer.c" - { OPCODE(I64_TRUNC_S_F64); RETURN(CONVERT); } -#line 6382 "src/prebuilt/ast-lexer-gen.c" -yy1091: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 399 "src/ast-lexer.c" - { OPCODE(I64_TRUNC_U_F32); RETURN(CONVERT); } -#line 6390 "src/prebuilt/ast-lexer-gen.c" -yy1093: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 401 "src/ast-lexer.c" - { OPCODE(I64_TRUNC_U_F64); RETURN(CONVERT); } -#line 6398 "src/prebuilt/ast-lexer-gen.c" -yy1095: + if (yych != 'o') goto yy83; + yych = *++lexer->cursor; + if (yych != 'r') goto yy83; + yych = *++lexer->cursor; + if (yych != 'm') goto yy83; + yych = *++lexer->cursor; + if (yych != 'e') goto yy83; + yych = *++lexer->cursor; + if (yych != 'd') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } #line 438 "src/ast-lexer.c" { RETURN(ASSERT_MALFORMED); } -#line 6406 "src/prebuilt/ast-lexer-gen.c" -yy1097: +#line 5099 "src/prebuilt/ast-lexer-gen.c" +yy1089: yych = *++lexer->cursor; - if (yych == 'n') goto yy1115; - goto yy50; -yy1098: + if (yych != 'v') goto yy83; yych = *++lexer->cursor; - if (yych == 'e') goto yy1117; - goto yy50; -yy1099: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych == '2') goto yy1119; - goto yy50; -yy1100: + if (yych != 'l') goto yy83; yych = *++lexer->cursor; - if (yych == '4') goto yy1121; - goto yy50; -yy1101: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == '2') goto yy1123; - goto yy50; -yy1102: + if (yych != 'd') goto yy83; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; + } +#line 439 "src/ast-lexer.c" + { RETURN(ASSERT_INVALID); } +#line 5117 "src/prebuilt/ast-lexer-gen.c" +yy1096: yych = *++lexer->cursor; - if (yych == '4') goto yy1125; - goto yy50; -yy1103: + if (yych != 'h') goto yy83; yych = *++lexer->cursor; - if (yych == 'i') goto yy1127; - goto yy50; -yy1104: + if (yych != 'a') goto yy83; yych = *++lexer->cursor; - if (yych == '2') goto yy1128; - goto yy50; -yy1105: + if (yych != 'u') goto yy83; yych = *++lexer->cursor; - if (yych == '4') goto yy1130; - goto yy50; -yy1106: + if (yych != 's') goto yy83; yych = *++lexer->cursor; - if (yych == '2') goto yy1132; - goto yy50; -yy1107: + if (yych != 't') goto yy83; yych = *++lexer->cursor; - if (yych == '4') goto yy1134; - goto yy50; -yy1108: + if (yych != 'i') goto yy83; yych = *++lexer->cursor; - if (yych == 'i') goto yy1136; - goto yy50; -yy1109: + if (yych != 'o') goto yy83; yych = *++lexer->cursor; - if (yych == 'f') goto yy1137; - goto yy50; -yy1110: + if (yych != 'n') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 391 "src/ast-lexer.c" - { OPCODE(I64_EXTEND_S_I32); RETURN(CONVERT); } -#line 6466 "src/prebuilt/ast-lexer-gen.c" -yy1112: +#line 444 "src/ast-lexer.c" + { RETURN(ASSERT_EXHAUSTION); } +#line 5141 "src/prebuilt/ast-lexer-gen.c" +yy1106: + yych = *++lexer->cursor; + if (yych != 'f') goto yy83; + yych = *++lexer->cursor; + if (yych != 'u') goto yy83; + yych = *++lexer->cursor; + if (yych != 'n') goto yy83; + yych = *++lexer->cursor; + if (yych != 'c') goto yy83; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (yybm[0+(yych = *lexer->cursor)] & 8) { + goto yy82; } -#line 392 "src/ast-lexer.c" - { OPCODE(I64_EXTEND_U_I32); RETURN(CONVERT); } -#line 6474 "src/prebuilt/ast-lexer-gen.c" -yy1114: +#line 241 "src/ast-lexer.c" + { RETURN(ANYFUNC); } +#line 5157 "src/prebuilt/ast-lexer-gen.c" +yy1112: + yych = *++lexer->cursor; + if (yych != 'g') goto yy83; + yych = *++lexer->cursor; + if (yych != 'n') goto yy83; + yych = *++lexer->cursor; + if (yych != '=') goto yy83; yych = *++lexer->cursor; - if (yych == 'f') goto yy1138; - goto yy50; -yy1115: + if (yych <= '/') goto yy83; + if (yych <= '0') goto yy1116; + if (yych <= '9') goto yy1118; + goto yy83; +yy1116: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if ((yych = *lexer->cursor) <= ';') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; + } else { + if (yych <= '"') goto yy1117; + if (yych <= '\'') goto yy82; + } + } else { + if (yych <= '/') { + if (yych != ',') goto yy82; + } else { + if (yych <= '9') goto yy1118; + if (yych <= ':') goto yy82; + } + } + } else { + if (yych <= 'x') { + if (yych <= '\\') { + if (yych != '[') goto yy82; + } else { + if (yych <= ']') goto yy1117; + if (yych <= 'w') goto yy82; + goto yy1120; + } + } else { + if (yych <= '|') { + if (yych != '{') goto yy82; + } else { + if (yych == '~') goto yy82; + } + } } -#line 442 "src/ast-lexer.c" - { RETURN(ASSERT_RETURN_NAN); } -#line 6486 "src/prebuilt/ast-lexer-gen.c" yy1117: +#line 288 "src/ast-lexer.c" + { TEXT_AT(6); RETURN(ALIGN_EQ_NAT); } +#line 5208 "src/prebuilt/ast-lexer-gen.c" +yy1118: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= ':') { + if (yych <= ')') { + if (yych <= '!') { + if (yych <= ' ') goto yy1117; + goto yy82; + } else { + if (yych <= '"') goto yy1117; + if (yych <= '\'') goto yy82; + goto yy1117; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy82; + goto yy1117; + } else { + if (yych <= '/') goto yy82; + if (yych <= '9') goto yy1118; + goto yy82; + } + } + } else { + if (yych <= ']') { + if (yych <= 'Z') { + if (yych <= ';') goto yy1117; + goto yy82; + } else { + if (yych == '\\') goto yy82; + goto yy1117; + } + } else { + if (yych <= '|') { + if (yych == '{') goto yy1117; + goto yy82; + } else { + if (yych == '~') goto yy82; + goto yy1117; + } + } } -#line 440 "src/ast-lexer.c" - { RETURN(ASSERT_UNLINKABLE); } -#line 6494 "src/prebuilt/ast-lexer-gen.c" -yy1119: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; +yy1120: + yych = *++lexer->cursor; + if (yych <= '@') { + if (yych <= '/') goto yy83; + if (yych >= ':') goto yy83; + } else { + if (yych <= 'F') goto yy1121; + if (yych <= '`') goto yy83; + if (yych >= 'g') goto yy83; } -#line 402 "src/ast-lexer.c" - { OPCODE(F32_CONVERT_S_I32); RETURN(CONVERT); } -#line 6502 "src/prebuilt/ast-lexer-gen.c" yy1121: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= '@') { + if (yych <= '+') { + if (yych <= '"') { + if (yych == '!') goto yy82; + goto yy1117; + } else { + if (yych <= '\'') goto yy82; + if (yych <= ')') goto yy1117; + goto yy82; + } + } else { + if (yych <= '9') { + if (yych <= ',') goto yy1117; + if (yych <= '/') goto yy82; + goto yy1121; + } else { + if (yych == ';') goto yy1117; + goto yy82; + } + } + } else { + if (yych <= '`') { + if (yych <= '[') { + if (yych <= 'F') goto yy1121; + if (yych <= 'Z') goto yy82; + goto yy1117; + } else { + if (yych == ']') goto yy1117; + goto yy82; + } + } else { + if (yych <= '{') { + if (yych <= 'f') goto yy1121; + if (yych <= 'z') goto yy82; + goto yy1117; + } else { + if (yych == '}') goto yy1117; + if (yych <= '~') goto yy82; + goto yy1117; + } + } } -#line 404 "src/ast-lexer.c" - { OPCODE(F32_CONVERT_S_I64); RETURN(CONVERT); } -#line 6510 "src/prebuilt/ast-lexer-gen.c" yy1123: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 406 "src/ast-lexer.c" - { OPCODE(F32_CONVERT_U_I32); RETURN(CONVERT); } -#line 6518 "src/prebuilt/ast-lexer-gen.c" + BEGIN(YYCOND_LINE_COMMENT); +#line 449 "src/ast-lexer.c" + { continue; } +#line 5313 "src/prebuilt/ast-lexer-gen.c" yy1125: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if ((lexer->limit - lexer->cursor) < 3) FILL(3); + yych = *lexer->cursor; + if (yych <= 'D') { + if (yych <= '+') { + if (yych <= '"') { + if (yych == '!') goto yy82; + } else { + if (yych <= '\'') goto yy82; + if (yych >= '*') goto yy82; + } + } else { + if (yych <= '9') { + if (yych <= ',') goto yy1127; + if (yych <= '/') goto yy82; + goto yy1125; + } else { + if (yych != ';') goto yy82; + } + } + } else { + if (yych <= 'd') { + if (yych <= '[') { + if (yych <= 'E') goto yy1130; + if (yych <= 'Z') goto yy82; + } else { + if (yych != ']') goto yy82; + } + } else { + if (yych <= '{') { + if (yych <= 'e') goto yy1130; + if (yych <= 'z') goto yy82; + } else { + if (yych == '}') goto yy1127; + if (yych <= '~') goto yy82; + } + } } -#line 408 "src/ast-lexer.c" - { OPCODE(F32_CONVERT_U_I64); RETURN(CONVERT); } -#line 6526 "src/prebuilt/ast-lexer-gen.c" yy1127: - yych = *++lexer->cursor; - if (yych == '3') goto yy1139; - goto yy50; +#line 224 "src/ast-lexer.c" + { LITERAL(FLOAT); RETURN(FLOAT); } +#line 5356 "src/prebuilt/ast-lexer-gen.c" yy1128: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if ((lexer->limit - lexer->cursor) < 3) FILL(3); + yych = *lexer->cursor; + if (yych <= ';') { + if (yych <= '+') { + if (yych <= '"') { + if (yych == '!') goto yy82; + goto yy62; + } else { + if (yych <= '\'') goto yy82; + if (yych <= ')') goto yy62; + goto yy82; + } + } else { + if (yych <= '.') { + if (yych <= ',') goto yy62; + if (yych <= '-') goto yy82; + goto yy1125; + } else { + if (yych <= '/') goto yy82; + if (yych <= '9') goto yy1128; + if (yych <= ':') goto yy82; + goto yy62; + } + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') { + if (yych != 'E') goto yy82; + } else { + if (yych == '\\') goto yy82; + if (yych <= ']') goto yy62; + goto yy82; + } + } else { + if (yych <= '{') { + if (yych <= 'e') goto yy1130; + if (yych <= 'z') goto yy82; + goto yy62; + } else { + if (yych == '}') goto yy62; + if (yych <= '~') goto yy82; + goto yy62; + } + } } -#line 403 "src/ast-lexer.c" - { OPCODE(F64_CONVERT_S_I32); RETURN(CONVERT); } -#line 6538 "src/prebuilt/ast-lexer-gen.c" yy1130: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + yych = *++lexer->cursor; + if (yych <= ',') { + if (yych != '+') goto yy83; + } else { + if (yych <= '-') goto yy1131; + if (yych <= '/') goto yy83; + if (yych <= '9') goto yy1132; + goto yy83; } -#line 405 "src/ast-lexer.c" - { OPCODE(F64_CONVERT_S_I64); RETURN(CONVERT); } -#line 6546 "src/prebuilt/ast-lexer-gen.c" +yy1131: + yych = *++lexer->cursor; + if (yych <= '/') goto yy83; + if (yych >= ':') goto yy83; yy1132: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= ':') { + if (yych <= ')') { + if (yych <= '!') { + if (yych <= ' ') goto yy1127; + goto yy82; + } else { + if (yych <= '"') goto yy1127; + if (yych <= '\'') goto yy82; + goto yy1127; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy82; + goto yy1127; + } else { + if (yych <= '/') goto yy82; + if (yych <= '9') goto yy1132; + goto yy82; + } + } + } else { + if (yych <= ']') { + if (yych <= 'Z') { + if (yych <= ';') goto yy1127; + goto yy82; + } else { + if (yych == '\\') goto yy82; + goto yy1127; + } + } else { + if (yych <= '|') { + if (yych == '{') goto yy1127; + goto yy82; + } else { + if (yych == '~') goto yy82; + goto yy1127; + } + } } -#line 407 "src/ast-lexer.c" - { OPCODE(F64_CONVERT_U_I32); RETURN(CONVERT); } -#line 6554 "src/prebuilt/ast-lexer-gen.c" yy1134: + yych = *++lexer->cursor; + if (yych <= '@') { + if (yych <= '/') goto yy83; + if (yych >= ':') goto yy83; + } else { + if (yych <= 'F') goto yy1135; + if (yych <= '`') goto yy83; + if (yych >= 'g') goto yy83; + } +yy1135: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if ((lexer->limit - lexer->cursor) < 3) FILL(3); + yych = *lexer->cursor; + if (yych <= '@') { + if (yych <= ',') { + if (yych <= '"') { + if (yych == '!') goto yy82; + goto yy62; + } else { + if (yych <= '\'') goto yy82; + if (yych <= ')') goto yy62; + if (yych <= '+') goto yy82; + goto yy62; + } + } else { + if (yych <= '/') { + if (yych != '.') goto yy82; + } else { + if (yych <= '9') goto yy1135; + if (yych == ';') goto yy62; + goto yy82; + } + } + } else { + if (yych <= 'f') { + if (yych <= '[') { + if (yych <= 'F') goto yy1135; + if (yych <= 'Z') goto yy82; + goto yy62; + } else { + if (yych == ']') goto yy62; + if (yych <= '`') goto yy82; + goto yy1135; + } + } else { + if (yych <= '{') { + if (yych == 'p') goto yy1139; + if (yych <= 'z') goto yy82; + goto yy62; + } else { + if (yych == '}') goto yy62; + if (yych <= '~') goto yy82; + goto yy62; + } + } } -#line 409 "src/ast-lexer.c" - { OPCODE(F64_CONVERT_U_I64); RETURN(CONVERT); } -#line 6562 "src/prebuilt/ast-lexer-gen.c" -yy1136: - yych = *++lexer->cursor; - if (yych == '6') goto yy1140; - goto yy50; yy1137: - yych = *++lexer->cursor; - if (yych == '3') goto yy1141; - goto yy50; -yy1138: - yych = *++lexer->cursor; - if (yych == '6') goto yy1142; - goto yy50; + ++lexer->cursor; + if ((lexer->limit - lexer->cursor) < 3) FILL(3); + yych = *lexer->cursor; + if (yych <= 'F') { + if (yych <= '+') { + if (yych <= '"') { + if (yych == '!') goto yy82; + goto yy52; + } else { + if (yych <= '\'') goto yy82; + if (yych <= ')') goto yy52; + goto yy82; + } + } else { + if (yych <= '9') { + if (yych <= ',') goto yy52; + if (yych <= '/') goto yy82; + goto yy1137; + } else { + if (yych == ';') goto yy52; + if (yych <= '@') goto yy82; + goto yy1137; + } + } + } else { + if (yych <= 'o') { + if (yych <= '\\') { + if (yych == '[') goto yy52; + goto yy82; + } else { + if (yych <= ']') goto yy52; + if (yych <= '`') goto yy82; + if (yych <= 'f') goto yy1137; + goto yy82; + } + } else { + if (yych <= '{') { + if (yych <= 'p') goto yy1139; + if (yych <= 'z') goto yy82; + goto yy52; + } else { + if (yych == '}') goto yy52; + if (yych <= '~') goto yy82; + goto yy52; + } + } + } yy1139: yych = *++lexer->cursor; - if (yych == '2') goto yy1143; - goto yy50; + if (yych <= ',') { + if (yych != '+') goto yy83; + } else { + if (yych <= '-') goto yy1140; + if (yych <= '/') goto yy83; + if (yych <= '9') goto yy1141; + goto yy83; + } yy1140: yych = *++lexer->cursor; - if (yych == '4') goto yy1145; - goto yy50; + if (yych <= '/') goto yy83; + if (yych >= ':') goto yy83; yy1141: - yych = *++lexer->cursor; - if (yych == '2') goto yy1147; - goto yy50; -yy1142: - yych = *++lexer->cursor; - if (yych == '4') goto yy1149; - goto yy50; + ++lexer->cursor; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= ':') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy82; + } else { + if (yych <= '"') goto yy1143; + if (yych <= '\'') goto yy82; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy82; + } else { + if (yych <= '/') goto yy82; + if (yych <= '9') goto yy1141; + goto yy82; + } + } + } else { + if (yych <= ']') { + if (yych <= 'Z') { + if (yych >= '<') goto yy82; + } else { + if (yych == '\\') goto yy82; + } + } else { + if (yych <= '|') { + if (yych != '{') goto yy82; + } else { + if (yych == '~') goto yy82; + } + } + } yy1143: +#line 225 "src/ast-lexer.c" + { LITERAL(HEXFLOAT); RETURN(FLOAT); } +#line 5619 "src/prebuilt/ast-lexer-gen.c" +yy1144: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if ((yych = *lexer->cursor) <= 'D') { + if (yych <= ',') { + if (yych <= '"') { + if (yych == '!') goto yy82; + } else { + if (yych <= '\'') goto yy82; + if (yych <= ')') goto yy1145; + if (yych <= '+') goto yy82; + } + } else { + if (yych <= '/') { + if (yych == '.') goto yy1125; + goto yy82; + } else { + if (yych <= '9') goto yy1146; + if (yych != ';') goto yy82; + } + } + } else { + if (yych <= 'e') { + if (yych <= '[') { + if (yych <= 'E') goto yy1130; + if (yych <= 'Z') goto yy82; + } else { + if (yych == ']') goto yy1145; + if (yych <= 'd') goto yy82; + goto yy1130; + } + } else { + if (yych <= '{') { + if (yych == 'x') goto yy1151; + if (yych <= 'z') goto yy82; + } else { + if (yych == '}') goto yy1145; + if (yych <= '~') goto yy82; + } + } } -#line 412 "src/ast-lexer.c" - { OPCODE(F32_REINTERPRET_I32); RETURN(CONVERT); } -#line 6598 "src/prebuilt/ast-lexer-gen.c" yy1145: +#line 223 "src/ast-lexer.c" + { LITERAL(INT); RETURN(INT); } +#line 5663 "src/prebuilt/ast-lexer-gen.c" +yy1146: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if ((lexer->limit - lexer->cursor) < 3) FILL(3); + yych = *lexer->cursor; + if (yych <= ';') { + if (yych <= '+') { + if (yych <= '"') { + if (yych == '!') goto yy82; + goto yy1145; + } else { + if (yych <= '\'') goto yy82; + if (yych <= ')') goto yy1145; + goto yy82; + } + } else { + if (yych <= '.') { + if (yych <= ',') goto yy1145; + if (yych <= '-') goto yy82; + goto yy1125; + } else { + if (yych <= '/') goto yy82; + if (yych <= '9') goto yy1146; + if (yych <= ':') goto yy82; + goto yy1145; + } + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') { + if (yych == 'E') goto yy1130; + goto yy82; + } else { + if (yych == '\\') goto yy82; + if (yych <= ']') goto yy1145; + goto yy82; + } + } else { + if (yych <= '{') { + if (yych <= 'e') goto yy1130; + if (yych <= 'z') goto yy82; + goto yy1145; + } else { + if (yych == '}') goto yy1145; + if (yych <= '~') goto yy82; + goto yy1145; + } + } } -#line 414 "src/ast-lexer.c" - { OPCODE(F64_REINTERPRET_I64); RETURN(CONVERT); } -#line 6606 "src/prebuilt/ast-lexer-gen.c" -yy1147: +yy1148: + yych = *++lexer->cursor; + if (yych == 'n') goto yy1150; + goto yy83; +yy1149: + yych = *++lexer->cursor; + if (yych == 'a') goto yy186; + goto yy83; +yy1150: + yych = *++lexer->cursor; + if (yych == 'f') goto yy226; + goto yy83; +yy1151: + yych = *++lexer->cursor; + if (yych <= '@') { + if (yych <= '/') goto yy83; + if (yych >= ':') goto yy83; + } else { + if (yych <= 'F') goto yy1152; + if (yych <= '`') goto yy83; + if (yych >= 'g') goto yy83; + } +yy1152: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + if ((lexer->limit - lexer->cursor) < 3) FILL(3); + yych = *lexer->cursor; + if (yych <= '@') { + if (yych <= ',') { + if (yych <= '"') { + if (yych == '!') goto yy82; + goto yy1145; + } else { + if (yych <= '\'') goto yy82; + if (yych <= ')') goto yy1145; + if (yych <= '+') goto yy82; + goto yy1145; + } + } else { + if (yych <= '/') { + if (yych == '.') goto yy1137; + goto yy82; + } else { + if (yych <= '9') goto yy1152; + if (yych == ';') goto yy1145; + goto yy82; + } + } + } else { + if (yych <= 'f') { + if (yych <= '[') { + if (yych <= 'F') goto yy1152; + if (yych <= 'Z') goto yy82; + goto yy1145; + } else { + if (yych == ']') goto yy1145; + if (yych <= '`') goto yy82; + goto yy1152; + } + } else { + if (yych <= '{') { + if (yych == 'p') goto yy1139; + if (yych <= 'z') goto yy82; + goto yy1145; + } else { + if (yych == '}') goto yy1145; + if (yych <= '~') goto yy82; + goto yy1145; + } + } } -#line 413 "src/ast-lexer.c" - { OPCODE(I32_REINTERPRET_F32); RETURN(CONVERT); } -#line 6614 "src/prebuilt/ast-lexer-gen.c" -yy1149: +yy1154: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; + BEGIN(YYCOND_BLOCK_COMMENT); +#line 452 "src/ast-lexer.c" + { COMMENT_NESTING = 1; continue; } +#line 5787 "src/prebuilt/ast-lexer-gen.c" +yy1156: + ++lexer->cursor; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= ';') { + if (yych <= '\'') { + if (yych == '!') goto yy1156; + if (yych >= '#') goto yy1156; + } else { + if (yych <= '+') { + if (yych >= '*') goto yy1156; + } else { + if (yych <= ',') goto yy1158; + if (yych <= ':') goto yy1156; + } + } + } else { + if (yych <= 'z') { + if (yych <= '[') { + if (yych <= 'Z') goto yy1156; + } else { + if (yych != ']') goto yy1156; + } + } else { + if (yych <= '|') { + if (yych >= '|') goto yy1156; + } else { + if (yych == '~') goto yy1156; + } + } } -#line 415 "src/ast-lexer.c" - { OPCODE(I64_REINTERPRET_F64); RETURN(CONVERT); } -#line 6622 "src/prebuilt/ast-lexer-gen.c" +yy1158: +#line 447 "src/ast-lexer.c" + { TEXT; RETURN(VAR); } +#line 5822 "src/prebuilt/ast-lexer-gen.c" +yy1159: + ++lexer->cursor; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; +yy1160: + if (yybm[0+yych] & 64) { + goto yy1159; + } + if (yych <= '!') goto yy1161; + if (yych <= '"') goto yy1163; + if (yych <= '~') goto yy1162; +yy1161: + lexer->cursor = lexer->marker; + goto yy54; +yy1162: + ++lexer->cursor; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= 'F') { + if (yych <= '\'') { + if (yych == '"') goto yy1159; + if (yych <= '&') goto yy1161; + goto yy1159; + } else { + if (yych <= '/') goto yy1161; + if (yych <= '9') goto yy1165; + if (yych <= '@') goto yy1161; + goto yy1165; + } + } else { + if (yych <= 'f') { + if (yych == '\\') goto yy1159; + if (yych <= '`') goto yy1161; + goto yy1165; + } else { + if (yych <= 'n') { + if (yych <= 'm') goto yy1161; + goto yy1159; + } else { + if (yych == 't') goto yy1159; + goto yy1161; + } + } + } +yy1163: + ++lexer->cursor; +#line 228 "src/ast-lexer.c" + { TEXT; RETURN(TEXT); } +#line 5871 "src/prebuilt/ast-lexer-gen.c" +yy1165: + ++lexer->cursor; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= '@') { + if (yych <= '/') goto yy1161; + if (yych <= '9') goto yy1159; + goto yy1161; + } else { + if (yych <= 'F') goto yy1159; + if (yych <= '`') goto yy1161; + if (yych <= 'f') goto yy1159; + goto yy1161; + } +yy1166: + ++lexer->cursor; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; +yy1167: + if (yybm[0+yych] & 128) { + goto yy1166; + } + goto yy48; } } -#line 466 "src/ast-lexer.c" +#line 467 "src/ast-lexer.c" } } diff --git a/src/prebuilt/ast-parser-gen.c b/src/prebuilt/ast-parser-gen.c index c49768c5..797ea43f 100644 --- a/src/prebuilt/ast-parser-gen.c +++ b/src/prebuilt/ast-parser-gen.c @@ -352,9 +352,10 @@ extern int wasm_ast_parser_debug; WASM_TOKEN_TYPE_ASSERT_RETURN = 322, WASM_TOKEN_TYPE_ASSERT_RETURN_NAN = 323, WASM_TOKEN_TYPE_ASSERT_TRAP = 324, - WASM_TOKEN_TYPE_INPUT = 325, - WASM_TOKEN_TYPE_OUTPUT = 326, - WASM_TOKEN_TYPE_LOW = 327 + WASM_TOKEN_TYPE_ASSERT_EXHAUSTION = 325, + WASM_TOKEN_TYPE_INPUT = 326, + WASM_TOKEN_TYPE_OUTPUT = 327, + WASM_TOKEN_TYPE_LOW = 328 }; #endif @@ -387,7 +388,7 @@ int wasm_ast_parser_parse (WasmAstLexer* lexer, WasmAstParser* parser); /* Copy the second part of user declarations. */ -#line 391 "src/prebuilt/ast-parser-gen.c" /* yacc.c:358 */ +#line 392 "src/prebuilt/ast-parser-gen.c" /* yacc.c:358 */ #ifdef short # undef short @@ -631,21 +632,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 10 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 790 +#define YYLAST 794 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 73 +#define YYNTOKENS 74 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 63 /* YYNRULES -- Number of rules. */ -#define YYNRULES 170 +#define YYNRULES 171 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 398 +#define YYNSTATES 402 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 327 +#define YYMAXUTOK 328 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -686,7 +687,7 @@ static const yytype_uint8 yytranslate[] = 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72 + 65, 66, 67, 68, 69, 70, 71, 72, 73 }; #if WASM_AST_PARSER_DEBUG @@ -709,8 +710,8 @@ static const yytype_uint16 yyrline[] = 1102, 1105, 1116, 1120, 1127, 1131, 1134, 1142, 1150, 1167, 1183, 1194, 1201, 1208, 1214, 1254, 1264, 1286, 1296, 1322, 1327, 1335, 1343, 1353, 1359, 1365, 1371, 1377, 1383, 1388, - 1397, 1402, 1403, 1409, 1418, 1419, 1427, 1439, 1440, 1447, - 1512 + 1394, 1403, 1408, 1409, 1415, 1424, 1425, 1433, 1445, 1446, + 1453, 1519 }; #endif @@ -730,16 +731,16 @@ static const char *const yytname[] = "TABLE", "ELEM", "MEMORY", "DATA", "OFFSET", "IMPORT", "EXPORT", "REGISTER", "INVOKE", "GET", "ASSERT_MALFORMED", "ASSERT_INVALID", "ASSERT_UNLINKABLE", "ASSERT_RETURN", "ASSERT_RETURN_NAN", "ASSERT_TRAP", - "INPUT", "OUTPUT", "LOW", "$accept", "non_empty_text_list", "text_list", - "quoted_text", "value_type_list", "elem_type", "global_type", - "func_type", "func_sig", "table_sig", "memory_sig", "limits", "type_use", - "nat", "literal", "var", "var_list", "bind_var_opt", "bind_var", - "labeling_opt", "offset_opt", "align_opt", "instr", "plain_instr", - "block_instr", "block", "expr", "expr1", "if_", "instr_list", - "expr_list", "const_expr", "func_fields", "func_body", "func_info", - "func", "offset", "elem", "table", "data", "memory", "global", - "import_kind", "import", "inline_import", "export_kind", "export", - "inline_export_opt", "inline_export", "type_def", "start", + "ASSERT_EXHAUSTION", "INPUT", "OUTPUT", "LOW", "$accept", + "non_empty_text_list", "text_list", "quoted_text", "value_type_list", + "elem_type", "global_type", "func_type", "func_sig", "table_sig", + "memory_sig", "limits", "type_use", "nat", "literal", "var", "var_list", + "bind_var_opt", "bind_var", "labeling_opt", "offset_opt", "align_opt", + "instr", "plain_instr", "block_instr", "block", "expr", "expr1", "if_", + "instr_list", "expr_list", "const_expr", "func_fields", "func_body", + "func_info", "func", "offset", "elem", "table", "data", "memory", + "global", "import_kind", "import", "inline_import", "export_kind", + "export", "inline_export_opt", "inline_export", "type_def", "start", "module_fields", "raw_module", "module", "script_var_opt", "action", "assertion", "cmd", "cmd_list", "const", "const_list", "script", "script_start", YY_NULLPTR @@ -758,14 +759,14 @@ static const yytype_uint16 yytoknum[] = 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327 + 325, 326, 327, 328 }; # endif -#define YYPACT_NINF -276 +#define YYPACT_NINF -271 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-276))) + (!!((Yystate) == (-271))) #define YYTABLE_NINF -30 @@ -776,46 +777,47 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -276, 33, -276, 76, 58, -276, -276, -276, -276, -276, - -276, 72, 154, 97, 97, 176, 176, 176, 185, 185, - 187, -276, 208, -276, -276, 97, -276, 154, 154, 140, - 154, 154, 154, 143, -276, 191, 12, 154, 154, -276, - 139, 227, 218, -276, 220, 228, 242, 243, 231, -276, - 245, 247, -276, -276, 98, -276, -276, -276, -276, -276, - -276, -276, -276, -276, -276, -276, -276, 237, -276, -276, - -276, -276, 215, -276, -276, -276, -276, 72, 212, 43, - 72, 72, 99, 72, 99, 154, 154, -276, 109, 401, - -276, -276, -276, 249, 209, 252, 255, 48, 256, 322, - 267, -276, -276, 268, 267, 208, 154, 270, -276, -276, - -276, 271, 281, -276, -276, 72, 72, 72, 212, 212, - -276, 212, 212, -276, 212, 212, 212, 212, 212, 239, - 239, 109, -276, -276, -276, -276, -276, -276, -276, -276, - 434, 467, -276, -276, -276, -276, -276, -276, 272, 274, - 500, -276, 276, -276, 277, 20, -276, 467, 61, 61, - 183, 275, 83, -276, 72, 72, 72, 467, 279, 280, - -276, 125, 104, 275, 275, 282, 208, 278, 283, 285, - 113, 293, -276, 212, 72, -276, 72, 154, 154, -276, - -276, -276, -276, -276, -276, 212, -276, -276, -276, -276, - -276, -276, -276, -276, 253, 253, -276, 605, 295, 745, - -276, -276, 179, 296, 302, 566, 434, 312, 195, 313, - -276, 273, -276, 323, 316, 329, 467, 330, 327, 275, - -276, 344, 353, -276, -276, -276, 354, 279, -276, -276, - 167, -276, -276, 208, 364, -276, 365, 315, 366, -276, - 114, 369, 212, 212, 212, 212, -276, 370, 95, 367, - 103, 127, 374, 154, 371, 368, 360, 132, 363, 214, - -276, -276, -276, -276, -276, -276, -276, -276, 382, -276, - -276, 383, -276, -276, 389, -276, -276, -276, 348, -276, - -276, 74, -276, -276, -276, -276, 413, -276, -276, 208, - -276, 72, 72, 72, 72, -276, 415, 416, 422, 432, - -276, 434, -276, 446, 533, 533, 448, 449, -276, -276, - 72, 72, 72, 72, 170, 177, -276, -276, -276, -276, - 679, 456, -276, 465, 479, 274, 61, 275, 275, -276, - -276, -276, -276, -276, 434, 644, -276, -276, 533, -276, - -276, -276, 467, -276, 482, -276, 198, 467, 712, 279, - -276, 488, 498, 512, 514, 515, 521, -276, -276, 470, - 485, 545, 547, 467, -276, -276, -276, -276, -276, -276, - -276, 72, -276, -276, 549, 554, -276, 188, 550, 565, - -276, 467, 563, 580, 467, -276, 581, -276 + -271, 26, -271, 77, 84, -271, -271, -271, -271, -271, + -271, 82, 94, 107, 107, 124, 124, 124, 157, 157, + 159, 157, -271, 106, -271, -271, 107, -271, 94, 94, + 123, 94, 94, 94, -12, -271, 160, 18, 94, 94, + 94, -271, 39, 140, 179, -271, 186, 194, 198, 215, + 213, -271, 230, 238, 245, -271, -271, 111, -271, -271, + -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, + 248, -271, -271, -271, -271, 216, -271, -271, -271, -271, + -271, 82, 70, 85, 82, 82, 117, 82, 117, 94, + 94, -271, 200, 405, -271, -271, -271, 266, 142, 267, + 270, 58, 271, 326, 272, -271, -271, 273, 272, 106, + 94, 274, -271, -271, -271, 275, 285, -271, -271, 82, + 82, 82, 70, 70, -271, 70, 70, -271, 70, 70, + 70, 70, 70, 246, 246, 200, -271, -271, -271, -271, + -271, -271, -271, -271, 438, 471, -271, -271, -271, -271, + -271, -271, 276, 279, 504, -271, 280, -271, 281, 25, + -271, 471, 87, 87, 196, 282, 118, -271, 82, 82, + 82, 471, 283, 284, -271, 220, 184, 282, 282, 286, + 106, 293, 287, 289, 53, 299, -271, 70, 82, -271, + 82, 94, 94, -271, -271, -271, -271, -271, -271, 70, + -271, -271, -271, -271, -271, -271, -271, -271, 254, 254, + -271, 609, 300, 749, -271, -271, 197, 306, 316, 570, + 438, 317, 209, 327, -271, 322, -271, 333, 330, 334, + 471, 347, 350, 282, -271, 290, 358, -271, -271, -271, + 368, 283, -271, -271, 223, -271, -271, 106, 369, -271, + 370, 227, 373, -271, 65, 374, 70, 70, 70, 70, + -271, 375, 121, 366, 151, 177, 371, 94, 376, 372, + 367, 48, 381, 125, -271, -271, -271, -271, -271, -271, + -271, -271, 384, -271, -271, 386, -271, -271, 387, -271, + -271, -271, 352, -271, -271, 105, -271, -271, -271, -271, + 417, -271, -271, 106, -271, 82, 82, 82, 82, -271, + 419, 420, 426, 436, -271, 438, -271, 450, 537, 537, + 452, 453, -271, -271, 82, 82, 82, 82, 182, 189, + -271, -271, -271, -271, 683, 460, -271, 469, 483, 279, + 87, 282, 282, -271, -271, -271, -271, -271, 438, 648, + -271, -271, 537, -271, -271, -271, 471, -271, 486, -271, + 226, 471, 716, 283, -271, 492, 502, 516, 518, 519, + 525, -271, -271, 474, 489, 549, 551, 471, -271, -271, + -271, -271, -271, -271, -271, 82, -271, -271, 553, 558, + -271, 191, 554, 569, -271, 471, 567, 584, 471, -271, + 585, -271 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -823,70 +825,71 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 164, 169, 170, 0, 0, 148, 162, 160, 161, 165, + 165, 170, 171, 0, 0, 148, 163, 161, 162, 166, 1, 30, 0, 149, 149, 0, 0, 0, 0, 0, - 0, 32, 135, 31, 6, 149, 150, 0, 0, 0, - 0, 0, 0, 0, 167, 0, 0, 0, 0, 2, - 0, 0, 0, 167, 0, 0, 0, 0, 0, 158, - 0, 0, 147, 3, 0, 146, 140, 141, 138, 142, - 139, 137, 144, 145, 136, 143, 163, 0, 152, 153, - 154, 155, 0, 157, 168, 156, 159, 30, 0, 0, - 30, 30, 0, 30, 0, 0, 0, 151, 0, 82, - 22, 27, 26, 0, 0, 0, 0, 0, 129, 0, - 0, 100, 28, 129, 0, 4, 0, 0, 23, 24, - 25, 0, 0, 43, 44, 33, 33, 33, 0, 0, - 28, 0, 0, 49, 0, 0, 0, 0, 0, 35, - 35, 0, 60, 61, 62, 63, 45, 42, 64, 65, - 82, 82, 39, 40, 41, 91, 94, 87, 0, 13, - 82, 134, 13, 132, 0, 0, 10, 82, 0, 0, - 0, 0, 0, 130, 33, 33, 33, 82, 84, 0, - 28, 0, 0, 0, 0, 130, 4, 5, 0, 0, - 0, 0, 166, 0, 7, 7, 7, 0, 0, 34, - 7, 7, 7, 46, 47, 0, 50, 51, 52, 53, - 54, 55, 56, 36, 37, 37, 59, 0, 0, 0, - 83, 98, 0, 0, 0, 0, 82, 0, 0, 0, - 133, 0, 86, 0, 0, 0, 82, 0, 0, 19, - 9, 0, 0, 7, 7, 7, 0, 84, 72, 71, - 0, 102, 29, 4, 0, 18, 0, 0, 0, 106, - 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, - 0, 0, 0, 0, 0, 82, 0, 0, 0, 48, - 38, 57, 58, 96, 7, 7, 119, 118, 0, 97, - 12, 0, 111, 122, 0, 120, 17, 20, 0, 103, - 73, 0, 74, 99, 85, 101, 0, 121, 107, 4, - 105, 30, 30, 30, 30, 117, 0, 0, 0, 0, - 21, 82, 8, 0, 82, 82, 0, 0, 131, 70, - 33, 33, 33, 33, 0, 0, 95, 11, 110, 28, - 0, 0, 75, 0, 0, 13, 0, 0, 0, 124, - 127, 125, 126, 89, 82, 0, 88, 92, 82, 123, - 66, 68, 82, 67, 14, 16, 0, 82, 0, 81, - 109, 0, 0, 0, 0, 0, 0, 90, 93, 0, - 0, 0, 0, 82, 80, 108, 113, 112, 116, 114, - 115, 33, 7, 104, 77, 0, 69, 0, 0, 79, - 15, 82, 0, 0, 82, 76, 0, 78 + 0, 0, 32, 135, 31, 6, 149, 150, 0, 0, + 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 168, 0, 0, 0, 0, + 0, 158, 0, 0, 0, 147, 3, 0, 146, 140, + 141, 138, 142, 139, 137, 144, 145, 136, 143, 164, + 0, 152, 153, 154, 155, 0, 157, 169, 156, 159, + 160, 30, 0, 0, 30, 30, 0, 30, 0, 0, + 0, 151, 0, 82, 22, 27, 26, 0, 0, 0, + 0, 0, 129, 0, 0, 100, 28, 129, 0, 4, + 0, 0, 23, 24, 25, 0, 0, 43, 44, 33, + 33, 33, 0, 0, 28, 0, 0, 49, 0, 0, + 0, 0, 0, 35, 35, 0, 60, 61, 62, 63, + 45, 42, 64, 65, 82, 82, 39, 40, 41, 91, + 94, 87, 0, 13, 82, 134, 13, 132, 0, 0, + 10, 82, 0, 0, 0, 0, 0, 130, 33, 33, + 33, 82, 84, 0, 28, 0, 0, 0, 0, 130, + 4, 5, 0, 0, 0, 0, 167, 0, 7, 7, + 7, 0, 0, 34, 7, 7, 7, 46, 47, 0, + 50, 51, 52, 53, 54, 55, 56, 36, 37, 37, + 59, 0, 0, 0, 83, 98, 0, 0, 0, 0, + 82, 0, 0, 0, 133, 0, 86, 0, 0, 0, + 82, 0, 0, 19, 9, 0, 0, 7, 7, 7, + 0, 84, 72, 71, 0, 102, 29, 4, 0, 18, + 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 82, + 0, 0, 0, 48, 38, 57, 58, 96, 7, 7, + 119, 118, 0, 97, 12, 0, 111, 122, 0, 120, + 17, 20, 0, 103, 73, 0, 74, 99, 85, 101, + 0, 121, 107, 4, 105, 30, 30, 30, 30, 117, + 0, 0, 0, 0, 21, 82, 8, 0, 82, 82, + 0, 0, 131, 70, 33, 33, 33, 33, 0, 0, + 95, 11, 110, 28, 0, 0, 75, 0, 0, 13, + 0, 0, 0, 124, 127, 125, 126, 89, 82, 0, + 88, 92, 82, 123, 66, 68, 82, 67, 14, 16, + 0, 82, 0, 81, 109, 0, 0, 0, 0, 0, + 0, 90, 93, 0, 0, 0, 0, 82, 80, 108, + 113, 112, 116, 114, 115, 33, 7, 104, 77, 0, + 69, 0, 0, 79, 15, 82, 0, 0, 82, 76, + 0, 78 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -276, 569, -150, -3, -174, 373, -142, 506, -139, -148, - -156, -152, -144, -112, 481, 14, -111, -39, -11, -109, - 483, 418, -276, -97, -276, -138, -81, -276, -276, -137, - 384, -136, -266, -275, -107, -276, -37, -276, -276, -276, - -276, -276, -276, -276, -12, -276, -276, 527, 80, -276, - -276, -276, 184, -276, 23, 219, -276, -276, -276, -276, - 597, -276, -276 + -271, 572, -134, -7, -178, 385, -146, 505, -143, -152, + -160, -142, -148, -138, 481, 10, -115, -43, -11, -113, + 472, 416, -271, -101, -271, -133, -85, -271, -271, -141, + 393, -137, -270, -266, -96, -271, -39, -271, -271, -271, + -271, -271, -271, -271, 71, -271, -271, 520, 73, -271, + -271, -271, 206, -271, 40, 219, -271, -271, -271, -271, + 583, -271, -271 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 177, 178, 25, 265, 231, 157, 95, 213, 227, - 244, 228, 140, 92, 111, 242, 171, 22, 189, 190, - 204, 271, 141, 142, 143, 266, 144, 169, 332, 145, - 238, 223, 146, 147, 148, 56, 102, 57, 58, 59, - 60, 61, 251, 62, 149, 181, 63, 162, 150, 64, - 65, 41, 5, 6, 27, 7, 8, 9, 1, 74, - 48, 2, 3 + -1, 181, 182, 26, 269, 235, 161, 99, 217, 231, + 248, 232, 144, 96, 115, 246, 175, 23, 193, 194, + 208, 275, 145, 146, 147, 270, 148, 173, 336, 149, + 242, 227, 150, 151, 152, 59, 106, 60, 61, 62, + 63, 64, 255, 65, 153, 185, 66, 166, 154, 67, + 68, 43, 5, 6, 28, 7, 8, 9, 1, 77, + 50, 2, 3 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -894,239 +897,240 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 23, 101, 168, 101, 210, 214, 216, 191, 192, 195, - 258, 260, 261, 219, 232, 168, 225, 226, 246, 101, - 222, 245, 245, 101, 43, 44, 248, 45, 46, 47, - 222, 236, 221, 208, 50, 51, 4, 28, 89, 346, - 347, 97, 98, 217, 103, 343, 94, 105, 42, 229, - 229, 155, 21, 267, 268, 233, 234, 235, 156, 240, - 291, 229, 229, 170, 224, 11, 23, 176, 96, 23, - 23, 156, 23, 368, 13, 14, 10, 330, 367, 187, - 188, 21, 106, 107, 312, 158, 161, 237, 90, 222, - 284, 173, 93, 296, 230, 290, 100, 292, 104, 311, - 324, 325, 99, 179, 90, 312, 26, 314, 91, 278, - 168, 11, 168, 312, 108, 109, 110, 287, 168, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 319, 241, - 90, 315, 193, 194, 91, 196, 197, 312, 198, 199, - 200, 201, 202, 52, 77, 78, 79, 53, 321, 334, - 80, 322, 81, 82, 83, 84, 237, 85, 86, 252, - 301, 243, 24, 187, 188, 253, 302, 254, 303, 255, - 304, 295, 90, 259, 354, 262, 91, 159, 163, 29, - 312, 355, 366, 175, 263, 264, 245, 312, 33, 365, - 36, 363, 390, 11, 364, 49, 362, 257, 312, 30, - 31, 32, 371, 90, 37, 13, 14, 91, 387, 269, - 331, 350, 351, 352, 353, 369, 39, 90, 356, -29, - 372, 91, 66, -29, 68, 229, 229, 183, 274, 275, - 54, 55, 69, 168, 72, 73, 385, 34, 35, 38, - 72, 87, 187, 188, 274, 275, 70, 71, 168, 75, - 359, 76, 88, 151, 393, 152, 153, 396, 94, 160, - 317, 168, 335, 336, 337, 338, 306, 307, 308, 309, - 99, 172, 386, 180, 203, 182, 211, 212, 374, 218, - 90, 220, 209, 281, 239, 247, 53, 249, 250, 270, - 23, 23, 23, 23, 113, 114, 164, 256, 165, 273, - 276, 166, 118, 119, 120, 121, 277, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 279, 280, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 282, 221, 183, - 184, 185, 186, 283, 285, 113, 114, 164, 230, 165, - 187, 188, 166, 118, 119, 120, 121, 288, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 289, 293, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 297, 298, - 300, 209, 299, 305, 310, 318, 320, 313, 312, 323, - 167, 113, 114, 115, 316, 116, 326, 327, 117, 118, - 119, 120, 121, 328, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 329, 112, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 113, 114, 115, 333, 116, 339, - 340, 117, 118, 119, 120, 121, 341, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 342, 207, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 113, 114, 115, - 344, 116, 348, 349, 117, 118, 119, 120, 121, 358, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 360, - 209, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 113, 114, 115, 361, 116, 370, 381, 117, 118, 119, - 120, 121, 375, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 376, 215, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 113, 114, 115, 377, 116, 378, 379, - 117, 118, 119, 120, 121, 380, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 382, 345, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 113, 114, 115, 383, - 116, 384, 388, 117, 118, 119, 120, 121, 389, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 392, 391, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 113, - 114, 164, 394, 165, 395, 397, 166, 118, 119, 120, - 121, 40, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 286, 154, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 206, 205, 183, 184, 185, 186, 113, 114, - 164, 294, 165, 272, 0, 166, 118, 119, 120, 121, - 174, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 67, 0, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 0, 0, 0, 184, 185, 186, 113, 114, 164, - 0, 165, 0, 0, 166, 118, 119, 120, 121, 0, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 0, - 0, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 0, 0, 113, 114, 164, 186, 165, 357, 0, 166, - 118, 119, 120, 121, 0, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 0, 0, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 113, 114, 164, 0, 165, - 373, 0, 166, 118, 119, 120, 121, 0, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 0, 0, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 113, 114, - 164, 0, 165, 0, 0, 166, 118, 119, 120, 121, - 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 0, 0, 131, 132, 133, 134, 135, 136, 137, 138, - 139 + 24, 105, 172, 105, 214, 218, 220, 195, 196, 199, + 262, 264, 265, 223, 236, 172, 229, 230, 250, 105, + 226, 45, 46, 105, 47, 48, 49, 233, 233, 4, + 226, 52, 53, 54, 240, 249, 249, 225, 93, 233, + 233, 101, 102, 55, 107, 347, 252, 56, 212, 109, + 13, 14, 350, 351, 29, 237, 238, 239, 221, 244, + 295, 159, 271, 272, 325, 174, 44, 326, 160, 180, + 24, 11, 100, 24, 24, 94, 24, 10, 371, 95, + 13, 14, 110, 111, 191, 192, 372, 241, 98, 226, + 228, 22, 97, 288, 22, 291, 104, 160, 108, 256, + 328, 329, 25, 183, 294, 257, 296, 258, 334, 259, + 172, 305, 172, 300, 41, 316, 27, 306, 172, 307, + 103, 308, 94, 94, 282, 315, 95, 30, 323, 234, + -29, 316, 197, 198, -29, 200, 201, 11, 202, 203, + 204, 205, 206, 57, 58, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 318, 241, 81, 82, 83, + 34, 316, 37, 84, 51, 85, 86, 87, 88, 338, + 89, 90, 162, 165, 163, 167, 11, 263, 177, 266, + 179, 319, 370, 69, 267, 268, 358, 316, 156, 369, + 71, 367, 316, 359, 368, 394, 366, 261, 72, 316, + 249, 316, 73, 233, 233, 112, 113, 114, 391, 273, + 335, 354, 355, 356, 357, 373, 75, 76, 360, 74, + 376, 31, 32, 33, 245, 94, 38, 299, 94, 95, + 375, 94, 95, 172, 78, 95, 389, 35, 36, 39, + 40, 247, 79, 191, 192, 187, 278, 279, 172, 80, + 363, 75, 91, 92, 397, 191, 192, 400, 278, 279, + 321, 172, 339, 340, 341, 342, 310, 311, 312, 313, + 155, 157, 390, 98, 164, 103, 176, 184, 378, 186, + 215, 207, 216, 222, 303, 224, 213, 94, 243, 251, + 274, 253, 254, 292, 24, 24, 24, 24, 117, 118, + 168, 56, 169, 260, 277, 170, 122, 123, 124, 125, + 280, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 281, 283, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 284, 285, 187, 188, 189, 190, 286, 287, 117, + 118, 168, 225, 169, 191, 192, 170, 122, 123, 124, + 125, 289, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 234, 293, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 297, 301, 302, 213, 317, 304, 309, 314, + 322, 320, 316, 324, 171, 117, 118, 119, 330, 120, + 331, 332, 121, 122, 123, 124, 125, 327, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 333, 116, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 117, 118, + 119, 337, 120, 343, 344, 121, 122, 123, 124, 125, + 345, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 346, 211, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 117, 118, 119, 348, 120, 352, 353, 121, 122, + 123, 124, 125, 362, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 364, 213, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 117, 118, 119, 365, 120, 374, + 385, 121, 122, 123, 124, 125, 379, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 380, 219, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 117, 118, 119, + 381, 120, 382, 383, 121, 122, 123, 124, 125, 384, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 386, + 349, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 117, 118, 119, 387, 120, 388, 392, 121, 122, 123, + 124, 125, 393, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 396, 395, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 117, 118, 168, 398, 169, 399, 401, + 170, 122, 123, 124, 125, 42, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 158, 209, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 210, 290, 187, 188, + 189, 190, 117, 118, 168, 276, 169, 178, 70, 170, + 122, 123, 124, 125, 298, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 0, 0, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 0, 0, 0, 188, 189, + 190, 117, 118, 168, 0, 169, 0, 0, 170, 122, + 123, 124, 125, 0, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 0, 0, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 0, 0, 117, 118, 168, 190, + 169, 361, 0, 170, 122, 123, 124, 125, 0, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 0, 0, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 117, + 118, 168, 0, 169, 377, 0, 170, 122, 123, 124, + 125, 0, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 0, 0, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 117, 118, 168, 0, 169, 0, 0, 170, + 122, 123, 124, 125, 0, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 0, 0, 135, 136, 137, 138, + 139, 140, 141, 142, 143 }; static const yytype_int16 yycheck[] = { - 11, 82, 99, 84, 141, 149, 150, 116, 117, 120, - 184, 185, 186, 152, 162, 112, 158, 159, 174, 100, - 157, 173, 174, 104, 27, 28, 176, 30, 31, 32, - 167, 167, 12, 140, 37, 38, 3, 14, 77, 314, - 315, 80, 81, 150, 83, 311, 3, 84, 25, 161, - 162, 3, 9, 191, 192, 164, 165, 166, 10, 170, - 234, 173, 174, 100, 3, 53, 77, 104, 79, 80, - 81, 10, 83, 348, 62, 63, 0, 3, 344, 59, - 60, 9, 85, 86, 10, 97, 98, 168, 5, 226, - 226, 103, 78, 243, 11, 233, 82, 235, 84, 4, - 274, 275, 3, 106, 5, 10, 9, 4, 9, 216, - 207, 53, 209, 10, 5, 6, 7, 229, 215, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 265, 4, - 5, 4, 118, 119, 9, 121, 122, 10, 124, 125, - 126, 127, 128, 4, 46, 47, 48, 8, 16, 299, - 52, 19, 54, 55, 56, 57, 237, 59, 60, 46, - 46, 57, 8, 59, 60, 52, 52, 54, 54, 56, - 56, 4, 5, 184, 4, 186, 9, 97, 98, 3, - 10, 4, 338, 103, 187, 188, 338, 10, 3, 337, - 3, 335, 4, 53, 336, 4, 335, 183, 10, 15, - 16, 17, 4, 5, 20, 62, 63, 9, 382, 195, - 291, 320, 321, 322, 323, 352, 8, 5, 329, 5, - 357, 9, 4, 9, 4, 337, 338, 48, 49, 50, - 3, 4, 4, 330, 3, 4, 373, 18, 19, 20, - 3, 4, 59, 60, 49, 50, 4, 4, 345, 4, - 331, 4, 37, 4, 391, 46, 4, 394, 3, 3, - 263, 358, 301, 302, 303, 304, 252, 253, 254, 255, - 3, 3, 381, 3, 35, 4, 4, 3, 359, 3, - 5, 4, 3, 10, 4, 3, 8, 4, 3, 36, - 301, 302, 303, 304, 13, 14, 15, 4, 17, 4, - 4, 20, 21, 22, 23, 24, 4, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 4, 4, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 4, 12, 48, - 49, 50, 51, 4, 4, 13, 14, 15, 11, 17, - 59, 60, 20, 21, 22, 23, 24, 3, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 4, 4, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 4, 4, - 4, 3, 57, 4, 4, 4, 16, 10, 10, 16, - 58, 13, 14, 15, 10, 17, 4, 4, 20, 21, - 22, 23, 24, 4, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 55, 3, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 13, 14, 15, 4, 17, 4, - 4, 20, 21, 22, 23, 24, 4, 26, 27, 28, + 11, 86, 103, 88, 145, 153, 154, 120, 121, 124, + 188, 189, 190, 156, 166, 116, 162, 163, 178, 104, + 161, 28, 29, 108, 31, 32, 33, 165, 166, 3, + 171, 38, 39, 40, 171, 177, 178, 12, 81, 177, + 178, 84, 85, 4, 87, 315, 180, 8, 144, 88, + 62, 63, 318, 319, 14, 168, 169, 170, 154, 174, + 238, 3, 195, 196, 16, 104, 26, 19, 10, 108, + 81, 53, 83, 84, 85, 5, 87, 0, 348, 9, + 62, 63, 89, 90, 59, 60, 352, 172, 3, 230, + 3, 9, 82, 230, 9, 233, 86, 10, 88, 46, + 278, 279, 8, 110, 237, 52, 239, 54, 3, 56, + 211, 46, 213, 247, 8, 10, 9, 52, 219, 54, + 3, 56, 5, 5, 220, 4, 9, 3, 269, 11, + 5, 10, 122, 123, 9, 125, 126, 53, 128, 129, + 130, 131, 132, 3, 4, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 4, 241, 46, 47, 48, + 3, 10, 3, 52, 4, 54, 55, 56, 57, 303, + 59, 60, 101, 102, 101, 102, 53, 188, 107, 190, + 107, 4, 342, 4, 191, 192, 4, 10, 46, 341, + 4, 339, 10, 4, 340, 4, 339, 187, 4, 10, + 342, 10, 4, 341, 342, 5, 6, 7, 386, 199, + 295, 324, 325, 326, 327, 356, 3, 4, 333, 4, + 361, 15, 16, 17, 4, 5, 20, 4, 5, 9, + 4, 5, 9, 334, 4, 9, 377, 18, 19, 20, + 21, 57, 4, 59, 60, 48, 49, 50, 349, 4, + 335, 3, 4, 37, 395, 59, 60, 398, 49, 50, + 267, 362, 305, 306, 307, 308, 256, 257, 258, 259, + 4, 4, 385, 3, 3, 3, 3, 3, 363, 4, + 4, 35, 3, 3, 57, 4, 3, 5, 4, 3, + 36, 4, 3, 3, 305, 306, 307, 308, 13, 14, + 15, 8, 17, 4, 4, 20, 21, 22, 23, 24, + 4, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 4, 4, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 4, 10, 48, 49, 50, 51, 4, 4, 13, + 14, 15, 12, 17, 59, 60, 20, 21, 22, 23, + 24, 4, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 11, 4, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 4, 4, 4, 3, 10, 4, 4, 4, + 4, 10, 10, 16, 58, 13, 14, 15, 4, 17, + 4, 4, 20, 21, 22, 23, 24, 16, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 55, 3, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 13, 14, + 15, 4, 17, 4, 4, 20, 21, 22, 23, 24, + 4, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 4, 3, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 13, 14, 15, 4, 17, 4, 4, 20, 21, + 22, 23, 24, 3, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 4, 3, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 13, 14, 15, 4, 17, 3, + 16, 20, 21, 22, 23, 24, 4, 26, 27, 28, 29, 30, 31, 32, 33, 34, 4, 3, 37, 38, 39, 40, 41, 42, 43, 44, 45, 13, 14, 15, - 4, 17, 4, 4, 20, 21, 22, 23, 24, 3, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 4, + 4, 17, 4, 4, 20, 21, 22, 23, 24, 4, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 50, 3, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 13, 14, 15, 4, 17, 3, 16, 20, 21, 22, + 13, 14, 15, 4, 17, 4, 3, 20, 21, 22, 23, 24, 4, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 4, 3, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 13, 14, 15, 4, 17, 4, 4, - 20, 21, 22, 23, 24, 4, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 50, 3, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 13, 14, 15, 4, - 17, 4, 3, 20, 21, 22, 23, 24, 4, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 3, 19, + 33, 34, 3, 19, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 13, 14, 15, 19, 17, 4, 4, + 20, 21, 22, 23, 24, 23, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 100, 134, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 135, 232, 48, 49, + 50, 51, 13, 14, 15, 209, 17, 107, 45, 20, + 21, 22, 23, 24, 241, 26, 27, 28, 29, 30, + 31, 32, 33, 34, -1, -1, 37, 38, 39, 40, + 41, 42, 43, 44, 45, -1, -1, -1, 49, 50, + 51, 13, 14, 15, -1, 17, -1, -1, 20, 21, + 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, -1, -1, 37, 38, 39, 40, 41, + 42, 43, 44, 45, -1, -1, 13, 14, 15, 51, + 17, 18, -1, 20, 21, 22, 23, 24, -1, 26, + 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, 13, - 14, 15, 19, 17, 4, 4, 20, 21, 22, 23, - 24, 22, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 228, 96, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 131, 130, 48, 49, 50, 51, 13, 14, - 15, 237, 17, 205, -1, 20, 21, 22, 23, 24, - 103, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 43, -1, 37, 38, 39, 40, 41, 42, 43, 44, - 45, -1, -1, -1, 49, 50, 51, 13, 14, 15, - -1, 17, -1, -1, 20, 21, 22, 23, 24, -1, - 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, - -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, - -1, -1, 13, 14, 15, 51, 17, 18, -1, 20, + 14, 15, -1, 17, 18, -1, 20, 21, 22, 23, + 24, -1, 26, 27, 28, 29, 30, 31, 32, 33, + 34, -1, -1, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 13, 14, 15, -1, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 13, 14, 15, -1, 17, - 18, -1, 20, 21, 22, 23, 24, -1, 26, 27, - 28, 29, 30, 31, 32, 33, 34, -1, -1, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 13, 14, - 15, -1, 17, -1, -1, 20, 21, 22, 23, 24, - -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, - -1, -1, 37, 38, 39, 40, 41, 42, 43, 44, - 45 + 41, 42, 43, 44, 45 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 131, 134, 135, 3, 125, 126, 128, 129, 130, + 0, 132, 135, 136, 3, 126, 127, 129, 130, 131, 0, 53, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 9, 90, 91, 8, 76, 9, 127, 127, 3, - 125, 125, 125, 3, 128, 128, 3, 125, 128, 8, - 74, 124, 127, 76, 76, 76, 76, 76, 133, 4, - 76, 76, 4, 8, 3, 4, 108, 110, 111, 112, - 113, 114, 116, 119, 122, 123, 4, 133, 4, 4, - 4, 4, 3, 4, 132, 4, 4, 46, 47, 48, - 52, 54, 55, 56, 57, 59, 60, 4, 37, 90, - 5, 9, 86, 88, 3, 80, 91, 90, 90, 3, - 88, 99, 109, 90, 88, 109, 76, 76, 5, 6, - 7, 87, 3, 13, 14, 15, 17, 20, 21, 22, - 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 85, 95, 96, 97, 99, 102, 105, 106, 107, 117, - 121, 4, 46, 4, 80, 3, 10, 79, 117, 121, - 3, 117, 120, 121, 15, 17, 20, 58, 96, 100, - 109, 89, 3, 117, 120, 121, 109, 74, 75, 76, - 3, 118, 4, 48, 49, 50, 51, 59, 60, 91, - 92, 92, 92, 88, 88, 89, 88, 88, 88, 88, - 88, 88, 88, 35, 93, 93, 87, 3, 107, 3, - 102, 4, 3, 81, 85, 3, 85, 107, 3, 81, - 4, 12, 102, 104, 3, 79, 79, 82, 84, 86, - 11, 78, 82, 92, 92, 92, 104, 99, 103, 4, - 89, 4, 88, 57, 83, 84, 83, 3, 75, 4, - 3, 115, 46, 52, 54, 56, 4, 88, 77, 91, - 77, 77, 91, 76, 76, 77, 98, 98, 98, 88, - 36, 94, 94, 4, 49, 50, 4, 4, 107, 4, - 4, 10, 4, 4, 104, 4, 78, 86, 3, 4, - 98, 77, 98, 4, 103, 4, 75, 4, 4, 57, - 4, 46, 52, 54, 56, 4, 88, 88, 88, 88, - 4, 4, 10, 10, 4, 4, 10, 76, 4, 102, - 16, 16, 19, 16, 77, 77, 4, 4, 4, 55, - 3, 99, 101, 4, 75, 90, 90, 90, 90, 4, - 4, 4, 4, 105, 4, 3, 106, 106, 4, 4, - 92, 92, 92, 92, 4, 4, 89, 18, 3, 99, - 4, 4, 81, 85, 79, 82, 83, 105, 106, 102, - 3, 4, 102, 18, 99, 4, 4, 4, 4, 4, - 4, 16, 50, 4, 4, 102, 92, 77, 3, 4, - 4, 19, 3, 102, 19, 4, 102, 4 + 69, 70, 9, 91, 92, 8, 77, 9, 128, 128, + 3, 126, 126, 126, 3, 129, 129, 3, 126, 129, + 129, 8, 75, 125, 128, 77, 77, 77, 77, 77, + 134, 4, 77, 77, 77, 4, 8, 3, 4, 109, + 111, 112, 113, 114, 115, 117, 120, 123, 124, 4, + 134, 4, 4, 4, 4, 3, 4, 133, 4, 4, + 4, 46, 47, 48, 52, 54, 55, 56, 57, 59, + 60, 4, 37, 91, 5, 9, 87, 89, 3, 81, + 92, 91, 91, 3, 89, 100, 110, 91, 89, 110, + 77, 77, 5, 6, 7, 88, 3, 13, 14, 15, + 17, 20, 21, 22, 23, 24, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 86, 96, 97, 98, 100, 103, + 106, 107, 108, 118, 122, 4, 46, 4, 81, 3, + 10, 80, 118, 122, 3, 118, 121, 122, 15, 17, + 20, 58, 97, 101, 110, 90, 3, 118, 121, 122, + 110, 75, 76, 77, 3, 119, 4, 48, 49, 50, + 51, 59, 60, 92, 93, 93, 93, 89, 89, 90, + 89, 89, 89, 89, 89, 89, 89, 35, 94, 94, + 88, 3, 108, 3, 103, 4, 3, 82, 86, 3, + 86, 108, 3, 82, 4, 12, 103, 105, 3, 80, + 80, 83, 85, 87, 11, 79, 83, 93, 93, 93, + 105, 100, 104, 4, 90, 4, 89, 57, 84, 85, + 84, 3, 76, 4, 3, 116, 46, 52, 54, 56, + 4, 89, 78, 92, 78, 78, 92, 77, 77, 78, + 99, 99, 99, 89, 36, 95, 95, 4, 49, 50, + 4, 4, 108, 4, 4, 10, 4, 4, 105, 4, + 79, 87, 3, 4, 99, 78, 99, 4, 104, 4, + 76, 4, 4, 57, 4, 46, 52, 54, 56, 4, + 89, 89, 89, 89, 4, 4, 10, 10, 4, 4, + 10, 77, 4, 103, 16, 16, 19, 16, 78, 78, + 4, 4, 4, 55, 3, 100, 102, 4, 76, 91, + 91, 91, 91, 4, 4, 4, 4, 106, 4, 3, + 107, 107, 4, 4, 93, 93, 93, 93, 4, 4, + 90, 18, 3, 100, 4, 4, 82, 86, 80, 83, + 84, 106, 107, 103, 3, 4, 103, 18, 100, 4, + 4, 4, 4, 4, 4, 16, 50, 4, 4, 103, + 93, 78, 3, 4, 4, 19, 3, 103, 19, 4, + 103, 4 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 73, 74, 74, 75, 75, 76, 77, 77, 78, - 79, 79, 80, 81, 81, 81, 81, 82, 83, 84, - 84, 85, 86, 87, 87, 87, 88, 88, 89, 89, - 90, 90, 91, 92, 92, 93, 93, 94, 94, 95, - 95, 95, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 97, 97, 97, 97, - 98, 99, 100, 100, 100, 100, 101, 101, 101, 101, - 101, 101, 102, 102, 103, 103, 104, 105, 105, 105, - 105, 106, 106, 106, 107, 108, 108, 108, 108, 109, - 109, 110, 110, 111, 111, 112, 112, 113, 113, 113, - 114, 114, 115, 115, 115, 115, 115, 116, 116, 116, - 116, 116, 116, 117, 118, 118, 118, 118, 119, 120, - 120, 121, 122, 122, 123, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 125, 125, 126, 127, - 127, 128, 128, 129, 129, 129, 129, 129, 129, 129, - 130, 130, 130, 130, 131, 131, 132, 133, 133, 134, - 135 + 0, 74, 75, 75, 76, 76, 77, 78, 78, 79, + 80, 80, 81, 82, 82, 82, 82, 83, 84, 85, + 85, 86, 87, 88, 88, 88, 89, 89, 90, 90, + 91, 91, 92, 93, 93, 94, 94, 95, 95, 96, + 96, 96, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, + 99, 100, 101, 101, 101, 101, 102, 102, 102, 102, + 102, 102, 103, 103, 104, 104, 105, 106, 106, 106, + 106, 107, 107, 107, 108, 109, 109, 109, 109, 110, + 110, 111, 111, 112, 112, 113, 113, 114, 114, 114, + 115, 115, 116, 116, 116, 116, 116, 117, 117, 117, + 117, 117, 117, 118, 119, 119, 119, 119, 120, 121, + 121, 122, 123, 123, 124, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 126, 126, 127, 128, + 128, 129, 129, 130, 130, 130, 130, 130, 130, 130, + 130, 131, 131, 131, 131, 132, 132, 133, 134, 134, + 135, 136 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1148,8 +1152,8 @@ static const yytype_uint8 yyr2[] = 1, 4, 4, 5, 4, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 1, 0, 1, 6, 5, 5, 5, 5, 5, 5, 4, 5, - 1, 1, 1, 5, 0, 2, 4, 0, 2, 1, - 1 + 5, 1, 1, 1, 5, 0, 2, 4, 0, 2, + 1, 1 }; @@ -1648,331 +1652,331 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio case 5: /* NAT */ #line 259 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1652 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1656 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; case 6: /* INT */ #line 259 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1658 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1662 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; case 7: /* FLOAT */ #line 259 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1664 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1668 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; case 8: /* TEXT */ #line 259 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1670 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1674 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; case 9: /* VAR */ #line 259 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1676 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1680 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; case 35: /* OFFSET_EQ_NAT */ #line 259 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1682 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1686 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; case 36: /* ALIGN_EQ_NAT */ #line 259 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1688 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1692 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 74: /* non_empty_text_list */ + case 75: /* non_empty_text_list */ #line 282 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_text_list(parser->allocator, &((*yyvaluep).text_list)); } -#line 1694 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1698 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 75: /* text_list */ + case 76: /* text_list */ #line 282 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_text_list(parser->allocator, &((*yyvaluep).text_list)); } -#line 1700 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1704 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 76: /* quoted_text */ + case 77: /* quoted_text */ #line 281 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).text)); } -#line 1706 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1710 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 77: /* value_type_list */ + case 78: /* value_type_list */ #line 283 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_type_vector(parser->allocator, &((*yyvaluep).types)); } -#line 1712 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1716 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 80: /* func_type */ + case 81: /* func_type */ #line 273 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_func_signature(parser->allocator, &((*yyvaluep).func_sig)); } -#line 1718 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1722 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 81: /* func_sig */ + case 82: /* func_sig */ #line 273 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_func_signature(parser->allocator, &((*yyvaluep).func_sig)); } -#line 1724 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1728 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 85: /* type_use */ + case 86: /* type_use */ #line 285 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_var(parser->allocator, &((*yyvaluep).var)); } -#line 1730 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1734 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 87: /* literal */ + case 88: /* literal */ #line 279 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).literal).text); } -#line 1736 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1740 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 88: /* var */ + case 89: /* var */ #line 285 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_var(parser->allocator, &((*yyvaluep).var)); } -#line 1742 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1746 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 89: /* var_list */ + case 90: /* var_list */ #line 284 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_var_vector_and_elements(parser->allocator, &((*yyvaluep).vars)); } -#line 1748 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1752 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 90: /* bind_var_opt */ + case 91: /* bind_var_opt */ #line 281 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).text)); } -#line 1754 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1758 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 91: /* bind_var */ + case 92: /* bind_var */ #line 281 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).text)); } -#line 1760 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1764 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 92: /* labeling_opt */ + case 93: /* labeling_opt */ #line 281 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).text)); } -#line 1766 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1770 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 95: /* instr */ + case 96: /* instr */ #line 270 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); } -#line 1772 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1776 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 96: /* plain_instr */ + case 97: /* plain_instr */ #line 269 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr(parser->allocator, ((*yyvaluep).expr)); } -#line 1778 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1782 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 97: /* block_instr */ + case 98: /* block_instr */ #line 269 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr(parser->allocator, ((*yyvaluep).expr)); } -#line 1784 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1788 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 98: /* block */ + case 99: /* block */ #line 260 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_block(parser->allocator, &((*yyvaluep).block)); } -#line 1790 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1794 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 99: /* expr */ + case 100: /* expr */ #line 270 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); } -#line 1796 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1800 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 100: /* expr1 */ + case 101: /* expr1 */ #line 270 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); } -#line 1802 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1806 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 101: /* if_ */ + case 102: /* if_ */ #line 270 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); } -#line 1808 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1812 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 102: /* instr_list */ + case 103: /* instr_list */ #line 270 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); } -#line 1814 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1818 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 103: /* expr_list */ + case 104: /* expr_list */ #line 270 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); } -#line 1820 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1824 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 104: /* const_expr */ + case 105: /* const_expr */ #line 270 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); } -#line 1826 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1830 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 105: /* func_fields */ + case 106: /* func_fields */ #line 271 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_func_fields(parser->allocator, ((*yyvaluep).func_fields)); } -#line 1832 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1836 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 106: /* func_body */ + case 107: /* func_body */ #line 271 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_func_fields(parser->allocator, ((*yyvaluep).func_fields)); } -#line 1838 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1842 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 107: /* func_info */ + case 108: /* func_info */ #line 272 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_func(parser->allocator, ((*yyvaluep).func)); wasm_free(parser->allocator, ((*yyvaluep).func)); } -#line 1844 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1848 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 108: /* func */ + case 109: /* func */ #line 266 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_exported_func(parser->allocator, &((*yyvaluep).exported_func)); } -#line 1850 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1854 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 109: /* offset */ + case 110: /* offset */ #line 270 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); } -#line 1856 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1860 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 110: /* elem */ + case 111: /* elem */ #line 264 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_elem_segment(parser->allocator, &((*yyvaluep).elem_segment)); } -#line 1862 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1866 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 111: /* table */ + case 112: /* table */ #line 268 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_exported_table(parser->allocator, &((*yyvaluep).exported_table)); } -#line 1868 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1872 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 112: /* data */ + case 113: /* data */ #line 276 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_data_segment(parser->allocator, &((*yyvaluep).data_segment)); } -#line 1874 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1878 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 113: /* memory */ + case 114: /* memory */ #line 267 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_exported_memory(parser->allocator, &((*yyvaluep).exported_memory)); } -#line 1880 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1884 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 115: /* import_kind */ + case 116: /* import_kind */ #line 275 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_import(parser->allocator, ((*yyvaluep).import)); wasm_free(parser->allocator, ((*yyvaluep).import)); } -#line 1886 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1890 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 116: /* import */ + case 117: /* import */ #line 275 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_import(parser->allocator, ((*yyvaluep).import)); wasm_free(parser->allocator, ((*yyvaluep).import)); } -#line 1892 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1896 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 117: /* inline_import */ + case 118: /* inline_import */ #line 275 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_import(parser->allocator, ((*yyvaluep).import)); wasm_free(parser->allocator, ((*yyvaluep).import)); } -#line 1898 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1902 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 118: /* export_kind */ + case 119: /* export_kind */ #line 265 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_export(parser->allocator, &((*yyvaluep).export_)); } -#line 1904 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1908 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 119: /* export */ + case 120: /* export */ #line 265 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_export(parser->allocator, &((*yyvaluep).export_)); } -#line 1910 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1914 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 122: /* type_def */ + case 123: /* type_def */ #line 274 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_func_type(parser->allocator, &((*yyvaluep).func_type)); } -#line 1916 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1920 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 123: /* start */ + case 124: /* start */ #line 285 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_var(parser->allocator, &((*yyvaluep).var)); } -#line 1922 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1926 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 124: /* module_fields */ + case 125: /* module_fields */ #line 277 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_module(parser->allocator, ((*yyvaluep).module)); wasm_free(parser->allocator, ((*yyvaluep).module)); } -#line 1928 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1932 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 125: /* raw_module */ + case 126: /* raw_module */ #line 278 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_raw_module(parser->allocator, &((*yyvaluep).raw_module)); } -#line 1934 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1938 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 126: /* module */ + case 127: /* module */ #line 277 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_module(parser->allocator, ((*yyvaluep).module)); wasm_free(parser->allocator, ((*yyvaluep).module)); } -#line 1940 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1944 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 127: /* script_var_opt */ + case 128: /* script_var_opt */ #line 285 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_var(parser->allocator, &((*yyvaluep).var)); } -#line 1946 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1950 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 129: /* assertion */ + case 130: /* assertion */ #line 261 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_command(parser->allocator, ((*yyvaluep).command)); wasm_free(parser->allocator, ((*yyvaluep).command)); } -#line 1952 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1956 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 130: /* cmd */ + case 131: /* cmd */ #line 261 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_command(parser->allocator, ((*yyvaluep).command)); wasm_free(parser->allocator, ((*yyvaluep).command)); } -#line 1958 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1962 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 131: /* cmd_list */ + case 132: /* cmd_list */ #line 262 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_command_vector_and_elements(parser->allocator, &((*yyvaluep).commands)); } -#line 1964 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1968 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 133: /* const_list */ + case 134: /* const_list */ #line 263 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_const_vector(parser->allocator, &((*yyvaluep).consts)); } -#line 1970 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1974 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; - case 134: /* script */ + case 135: /* script */ #line 280 "src/ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_script(&((*yyvaluep).script)); } -#line 1976 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ +#line 1980 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */ break; @@ -2271,7 +2275,7 @@ yyreduce: node->next = NULL; (yyval.text_list).first = (yyval.text_list).last = node; } -#line 2275 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2279 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 3: @@ -2284,13 +2288,13 @@ yyreduce: (yyval.text_list).last->next = node; (yyval.text_list).last = node; } -#line 2288 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2292 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 4: #line 314 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.text_list).first = (yyval.text_list).last = NULL; } -#line 2294 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2298 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 6: @@ -2308,13 +2312,13 @@ yyreduce: (yyval.text).start = data; (yyval.text).length = size; } -#line 2312 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2316 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 7: #line 337 "src/ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.types)); } -#line 2318 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2322 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 8: @@ -2323,13 +2327,13 @@ yyreduce: (yyval.types) = (yyvsp[-1].types); wasm_append_type_value(parser->allocator, &(yyval.types), &(yyvsp[0].type)); } -#line 2327 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2331 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 9: #line 344 "src/ast-parser.y" /* yacc.c:1646 */ {} -#line 2333 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2337 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 10: @@ -2339,7 +2343,7 @@ yyreduce: (yyval.global).type = (yyvsp[0].type); (yyval.global).mutable_ = WASM_FALSE; } -#line 2343 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2347 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 11: @@ -2349,19 +2353,19 @@ yyreduce: (yyval.global).type = (yyvsp[-1].type); (yyval.global).mutable_ = WASM_TRUE; } -#line 2353 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2357 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 12: #line 359 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = (yyvsp[-1].func_sig); } -#line 2359 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2363 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 13: #line 362 "src/ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.func_sig)); } -#line 2365 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2369 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 14: @@ -2370,7 +2374,7 @@ yyreduce: WASM_ZERO_MEMORY((yyval.func_sig)); (yyval.func_sig).param_types = (yyvsp[-1].types); } -#line 2374 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2378 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 15: @@ -2380,7 +2384,7 @@ yyreduce: (yyval.func_sig).param_types = (yyvsp[-5].types); (yyval.func_sig).result_types = (yyvsp[-1].types); } -#line 2384 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2388 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 16: @@ -2389,19 +2393,19 @@ yyreduce: WASM_ZERO_MEMORY((yyval.func_sig)); (yyval.func_sig).result_types = (yyvsp[-1].types); } -#line 2393 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2397 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 17: #line 379 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.table).elem_limits = (yyvsp[-1].limits); } -#line 2399 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2403 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 18: #line 382 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.memory).page_limits = (yyvsp[0].limits); } -#line 2405 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2409 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 19: @@ -2411,7 +2415,7 @@ yyreduce: (yyval.limits).initial = (yyvsp[0].u64); (yyval.limits).max = 0; } -#line 2415 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2419 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 20: @@ -2421,13 +2425,13 @@ yyreduce: (yyval.limits).initial = (yyvsp[-1].u64); (yyval.limits).max = (yyvsp[0].u64); } -#line 2425 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2429 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 21: #line 397 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.var) = (yyvsp[-1].var); } -#line 2431 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2435 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 22: @@ -2440,7 +2444,7 @@ yyreduce: WASM_PRINTF_STRING_SLICE_ARG((yyvsp[0].literal).text)); } } -#line 2444 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2448 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 23: @@ -2449,7 +2453,7 @@ yyreduce: (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 2453 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2457 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 24: @@ -2458,7 +2462,7 @@ yyreduce: (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 2462 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2466 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 25: @@ -2467,7 +2471,7 @@ yyreduce: (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 2471 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2475 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 26: @@ -2477,7 +2481,7 @@ yyreduce: (yyval.var).type = WASM_VAR_TYPE_INDEX; (yyval.var).index = (yyvsp[0].u64); } -#line 2481 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2485 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 27: @@ -2487,13 +2491,13 @@ yyreduce: (yyval.var).type = WASM_VAR_TYPE_NAME; DUPTEXT((yyval.var).name, (yyvsp[0].text)); } -#line 2491 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2495 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 28: #line 441 "src/ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.vars)); } -#line 2497 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2501 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 29: @@ -2502,31 +2506,31 @@ yyreduce: (yyval.vars) = (yyvsp[-1].vars); wasm_append_var_value(parser->allocator, &(yyval.vars), &(yyvsp[0].var)); } -#line 2506 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2510 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 30: #line 448 "src/ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.text)); } -#line 2512 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2516 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 32: #line 452 "src/ast-parser.y" /* yacc.c:1646 */ { DUPTEXT((yyval.text), (yyvsp[0].text)); } -#line 2518 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2522 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 33: #line 456 "src/ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.text)); } -#line 2524 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2528 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 35: #line 461 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.u64) = 0; } -#line 2530 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2534 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 36: @@ -2539,13 +2543,13 @@ yyreduce: WASM_PRINTF_STRING_SLICE_ARG((yyvsp[0].text))); } } -#line 2543 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2547 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 37: #line 472 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.u32) = USE_NATURAL_ALIGNMENT; } -#line 2549 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2553 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 38: @@ -2558,25 +2562,25 @@ yyreduce: WASM_PRINTF_STRING_SLICE_ARG((yyvsp[0].text))); } } -#line 2562 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2566 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 39: #line 484 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); } -#line 2568 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2572 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 40: #line 485 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); } -#line 2574 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2578 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 41: #line 486 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[0].expr_list); } -#line 2580 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2584 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 42: @@ -2584,7 +2588,7 @@ yyreduce: { (yyval.expr) = wasm_new_unreachable_expr(parser->allocator); } -#line 2588 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2592 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 43: @@ -2592,7 +2596,7 @@ yyreduce: { (yyval.expr) = wasm_new_nop_expr(parser->allocator); } -#line 2596 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2600 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 44: @@ -2600,7 +2604,7 @@ yyreduce: { (yyval.expr) = wasm_new_drop_expr(parser->allocator); } -#line 2604 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2608 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 45: @@ -2608,7 +2612,7 @@ yyreduce: { (yyval.expr) = wasm_new_select_expr(parser->allocator); } -#line 2612 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2616 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 46: @@ -2617,7 +2621,7 @@ yyreduce: (yyval.expr) = wasm_new_br_expr(parser->allocator); (yyval.expr)->br.var = (yyvsp[0].var); } -#line 2621 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2625 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 47: @@ -2626,7 +2630,7 @@ yyreduce: (yyval.expr) = wasm_new_br_if_expr(parser->allocator); (yyval.expr)->br_if.var = (yyvsp[0].var); } -#line 2630 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2634 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 48: @@ -2636,7 +2640,7 @@ yyreduce: (yyval.expr)->br_table.targets = (yyvsp[-1].vars); (yyval.expr)->br_table.default_target = (yyvsp[0].var); } -#line 2640 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2644 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 49: @@ -2644,7 +2648,7 @@ yyreduce: { (yyval.expr) = wasm_new_return_expr(parser->allocator); } -#line 2648 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2652 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 50: @@ -2653,7 +2657,7 @@ yyreduce: (yyval.expr) = wasm_new_call_expr(parser->allocator); (yyval.expr)->call.var = (yyvsp[0].var); } -#line 2657 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2661 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 51: @@ -2662,7 +2666,7 @@ yyreduce: (yyval.expr) = wasm_new_call_indirect_expr(parser->allocator); (yyval.expr)->call_indirect.var = (yyvsp[0].var); } -#line 2666 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2670 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 52: @@ -2671,7 +2675,7 @@ yyreduce: (yyval.expr) = wasm_new_get_local_expr(parser->allocator); (yyval.expr)->get_local.var = (yyvsp[0].var); } -#line 2675 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2679 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 53: @@ -2680,7 +2684,7 @@ yyreduce: (yyval.expr) = wasm_new_set_local_expr(parser->allocator); (yyval.expr)->set_local.var = (yyvsp[0].var); } -#line 2684 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2688 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 54: @@ -2689,7 +2693,7 @@ yyreduce: (yyval.expr) = wasm_new_tee_local_expr(parser->allocator); (yyval.expr)->tee_local.var = (yyvsp[0].var); } -#line 2693 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2697 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 55: @@ -2698,7 +2702,7 @@ yyreduce: (yyval.expr) = wasm_new_get_global_expr(parser->allocator); (yyval.expr)->get_global.var = (yyvsp[0].var); } -#line 2702 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2706 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 56: @@ -2707,7 +2711,7 @@ yyreduce: (yyval.expr) = wasm_new_set_global_expr(parser->allocator); (yyval.expr)->set_global.var = (yyvsp[0].var); } -#line 2711 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2715 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 57: @@ -2718,7 +2722,7 @@ yyreduce: (yyval.expr)->load.offset = (yyvsp[-1].u64); (yyval.expr)->load.align = (yyvsp[0].u32); } -#line 2722 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2726 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 58: @@ -2729,7 +2733,7 @@ yyreduce: (yyval.expr)->store.offset = (yyvsp[-1].u64); (yyval.expr)->store.align = (yyvsp[0].u32); } -#line 2733 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2737 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 59: @@ -2746,7 +2750,7 @@ yyreduce: } wasm_free(parser->allocator, (char*)(yyvsp[0].literal).text.start); } -#line 2750 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2754 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 60: @@ -2755,7 +2759,7 @@ yyreduce: (yyval.expr) = wasm_new_unary_expr(parser->allocator); (yyval.expr)->unary.opcode = (yyvsp[0].opcode); } -#line 2759 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2763 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 61: @@ -2764,7 +2768,7 @@ yyreduce: (yyval.expr) = wasm_new_binary_expr(parser->allocator); (yyval.expr)->binary.opcode = (yyvsp[0].opcode); } -#line 2768 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2772 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 62: @@ -2773,7 +2777,7 @@ yyreduce: (yyval.expr) = wasm_new_compare_expr(parser->allocator); (yyval.expr)->compare.opcode = (yyvsp[0].opcode); } -#line 2777 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2781 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 63: @@ -2782,7 +2786,7 @@ yyreduce: (yyval.expr) = wasm_new_convert_expr(parser->allocator); (yyval.expr)->convert.opcode = (yyvsp[0].opcode); } -#line 2786 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2790 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 64: @@ -2790,7 +2794,7 @@ yyreduce: { (yyval.expr) = wasm_new_current_memory_expr(parser->allocator); } -#line 2794 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2798 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 65: @@ -2798,7 +2802,7 @@ yyreduce: { (yyval.expr) = wasm_new_grow_memory_expr(parser->allocator); } -#line 2802 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2806 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 66: @@ -2809,7 +2813,7 @@ yyreduce: (yyval.expr)->block.label = (yyvsp[-3].text); CHECK_END_LABEL((yylsp[0]), (yyval.expr)->block.label, (yyvsp[0].text)); } -#line 2813 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2817 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 67: @@ -2820,7 +2824,7 @@ yyreduce: (yyval.expr)->loop.label = (yyvsp[-3].text); CHECK_END_LABEL((yylsp[0]), (yyval.expr)->block.label, (yyvsp[0].text)); } -#line 2824 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2828 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 68: @@ -2831,7 +2835,7 @@ yyreduce: (yyval.expr)->if_.true_.label = (yyvsp[-3].text); CHECK_END_LABEL((yylsp[0]), (yyval.expr)->block.label, (yyvsp[0].text)); } -#line 2835 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2839 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 69: @@ -2844,7 +2848,7 @@ yyreduce: CHECK_END_LABEL((yylsp[-3]), (yyval.expr)->block.label, (yyvsp[-3].text)); CHECK_END_LABEL((yylsp[0]), (yyval.expr)->block.label, (yyvsp[0].text)); } -#line 2848 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2852 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 70: @@ -2854,13 +2858,13 @@ yyreduce: (yyval.block).sig = (yyvsp[-1].types); (yyval.block).first = (yyvsp[0].expr_list).first; } -#line 2858 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2862 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 71: #line 629 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[-1].expr_list); } -#line 2864 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2868 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 72: @@ -2868,7 +2872,7 @@ yyreduce: { (yyval.expr_list) = join_exprs2(&(yylsp[-1]), &(yyvsp[0].expr_list), (yyvsp[-1].expr)); } -#line 2872 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2876 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 73: @@ -2879,7 +2883,7 @@ yyreduce: expr->block.label = (yyvsp[-1].text); (yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr); } -#line 2883 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2887 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 74: @@ -2890,7 +2894,7 @@ yyreduce: expr->loop.label = (yyvsp[-1].text); (yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr); } -#line 2894 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2898 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 75: @@ -2902,7 +2906,7 @@ yyreduce: if_->if_.true_.label = (yyvsp[-2].text); if_->if_.true_.sig = (yyvsp[-1].types); } -#line 2906 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2910 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 76: @@ -2913,7 +2917,7 @@ yyreduce: expr->if_.false_ = (yyvsp[-1].expr_list).first; (yyval.expr_list) = join_exprs1(&(yylsp[-7]), expr); } -#line 2917 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2921 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 77: @@ -2923,7 +2927,7 @@ yyreduce: expr->if_.true_.first = (yyvsp[-1].expr_list).first; (yyval.expr_list) = join_exprs1(&(yylsp[-3]), expr); } -#line 2927 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2931 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 78: @@ -2934,7 +2938,7 @@ yyreduce: expr->if_.false_ = (yyvsp[-1].expr_list).first; (yyval.expr_list) = join_exprs2(&(yylsp[-8]), &(yyvsp[-8].expr_list), expr); } -#line 2938 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2942 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 79: @@ -2944,7 +2948,7 @@ yyreduce: expr->if_.true_.first = (yyvsp[-1].expr_list).first; (yyval.expr_list) = join_exprs2(&(yylsp[-4]), &(yyvsp[-4].expr_list), expr); } -#line 2948 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2952 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 80: @@ -2955,7 +2959,7 @@ yyreduce: expr->if_.false_ = (yyvsp[0].expr_list).first; (yyval.expr_list) = join_exprs2(&(yylsp[-2]), &(yyvsp[-2].expr_list), expr); } -#line 2959 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2963 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 81: @@ -2965,13 +2969,13 @@ yyreduce: expr->if_.true_.first = (yyvsp[0].expr_list).first; (yyval.expr_list) = join_exprs2(&(yylsp[-1]), &(yyvsp[-1].expr_list), expr); } -#line 2969 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2973 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 82: #line 693 "src/ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.expr_list)); } -#line 2975 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2979 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 83: @@ -2982,13 +2986,13 @@ yyreduce: (yyval.expr_list).last = (yyvsp[0].expr_list).last ? (yyvsp[0].expr_list).last : (yyvsp[-1].expr_list).last; (yyval.expr_list).size = (yyvsp[-1].expr_list).size + (yyvsp[0].expr_list).size; } -#line 2986 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2990 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 84: #line 702 "src/ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.expr_list)); } -#line 2992 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 2996 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 85: @@ -2999,7 +3003,7 @@ yyreduce: (yyval.expr_list).last = (yyvsp[0].expr_list).last ? (yyvsp[0].expr_list).last : (yyvsp[-1].expr_list).last; (yyval.expr_list).size = (yyvsp[-1].expr_list).size + (yyvsp[0].expr_list).size; } -#line 3003 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3007 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 88: @@ -3010,7 +3014,7 @@ yyreduce: (yyval.func_fields)->types = (yyvsp[-2].types); (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 3014 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3018 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 89: @@ -3021,7 +3025,7 @@ yyreduce: (yyval.func_fields)->types = (yyvsp[-2].types); (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 3025 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3029 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 90: @@ -3034,7 +3038,7 @@ yyreduce: (yyval.func_fields)->bound_type.type = (yyvsp[-2].type); (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 3038 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3042 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 91: @@ -3045,7 +3049,7 @@ yyreduce: (yyval.func_fields)->first_expr = (yyvsp[0].expr_list).first; (yyval.func_fields)->next = NULL; } -#line 3049 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3053 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 92: @@ -3056,7 +3060,7 @@ yyreduce: (yyval.func_fields)->types = (yyvsp[-2].types); (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 3060 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3064 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 93: @@ -3069,7 +3073,7 @@ yyreduce: (yyval.func_fields)->bound_type.type = (yyvsp[-2].type); (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 3073 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3077 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 94: @@ -3127,7 +3131,7 @@ yyreduce: field = next; } } -#line 3131 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3135 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 95: @@ -3140,7 +3144,7 @@ yyreduce: (yyval.exported_func).func->name = (yyvsp[-4].text); (yyval.exported_func).export_ = (yyvsp[-3].optional_export); } -#line 3144 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3148 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 96: @@ -3152,7 +3156,7 @@ yyreduce: (yyval.exported_func).func->decl.type_var = (yyvsp[-2].var); (yyval.exported_func).func->name = (yyvsp[-3].text); } -#line 3156 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3160 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 97: @@ -3163,7 +3167,7 @@ yyreduce: (yyval.exported_func).func->name = (yyvsp[-3].text); (yyval.exported_func).export_ = (yyvsp[-2].optional_export); } -#line 3167 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3171 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 98: @@ -3173,7 +3177,7 @@ yyreduce: (yyval.exported_func).func = (yyvsp[-1].func); (yyval.exported_func).func->name = (yyvsp[-2].text); } -#line 3177 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3181 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 99: @@ -3181,7 +3185,7 @@ yyreduce: { (yyval.expr_list) = (yyvsp[-1].expr_list); } -#line 3185 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3189 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 101: @@ -3192,7 +3196,7 @@ yyreduce: (yyval.elem_segment).offset = (yyvsp[-2].expr_list).first; (yyval.elem_segment).vars = (yyvsp[-1].vars); } -#line 3196 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3200 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 102: @@ -3205,7 +3209,7 @@ yyreduce: (yyval.elem_segment).offset = (yyvsp[-2].expr_list).first; (yyval.elem_segment).vars = (yyvsp[-1].vars); } -#line 3209 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3213 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 103: @@ -3216,7 +3220,7 @@ yyreduce: (yyval.exported_table).has_elem_segment = WASM_FALSE; (yyval.exported_table).export_ = (yyvsp[-2].optional_export); } -#line 3220 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3224 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 104: @@ -3237,7 +3241,7 @@ yyreduce: (yyval.exported_table).elem_segment.vars = (yyvsp[-2].vars); (yyval.exported_table).export_ = (yyvsp[-6].optional_export); } -#line 3241 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3245 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 105: @@ -3249,7 +3253,7 @@ yyreduce: dup_text_list(parser->allocator, &(yyvsp[-1].text_list), &(yyval.data_segment).data, &(yyval.data_segment).size); wasm_destroy_text_list(parser->allocator, &(yyvsp[-1].text_list)); } -#line 3253 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3257 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 106: @@ -3263,7 +3267,7 @@ yyreduce: dup_text_list(parser->allocator, &(yyvsp[-1].text_list), &(yyval.data_segment).data, &(yyval.data_segment).size); wasm_destroy_text_list(parser->allocator, &(yyvsp[-1].text_list)); } -#line 3267 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3271 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 107: @@ -3275,7 +3279,7 @@ yyreduce: (yyval.exported_memory).has_data_segment = WASM_FALSE; (yyval.exported_memory).export_ = (yyvsp[-2].optional_export); } -#line 3279 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3283 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 108: @@ -3300,7 +3304,7 @@ yyreduce: (yyval.exported_memory).memory.page_limits.has_max = WASM_TRUE; (yyval.exported_memory).export_ = (yyvsp[-5].optional_export); } -#line 3304 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3308 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 109: @@ -3325,7 +3329,7 @@ yyreduce: (yyval.exported_memory).memory.page_limits.has_max = WASM_TRUE; (yyval.exported_memory).export_.has_export = WASM_FALSE; } -#line 3329 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3333 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 110: @@ -3337,7 +3341,7 @@ yyreduce: (yyval.exported_global).global.init_expr = (yyvsp[-1].expr_list).first; (yyval.exported_global).export_ = (yyvsp[-3].optional_export); } -#line 3341 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3345 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 111: @@ -3349,7 +3353,7 @@ yyreduce: (yyval.exported_global).global.init_expr = (yyvsp[-1].expr_list).first; (yyval.exported_global).export_.has_export = WASM_FALSE; } -#line 3353 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3357 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 112: @@ -3361,7 +3365,7 @@ yyreduce: (yyval.import)->func.decl.flags = WASM_FUNC_DECLARATION_FLAG_HAS_FUNC_TYPE; (yyval.import)->func.decl.type_var = (yyvsp[-1].var); } -#line 3365 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3369 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 113: @@ -3372,7 +3376,7 @@ yyreduce: (yyval.import)->func.name = (yyvsp[-2].text); (yyval.import)->func.decl.sig = (yyvsp[-1].func_sig); } -#line 3376 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3380 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 114: @@ -3383,7 +3387,7 @@ yyreduce: (yyval.import)->table = (yyvsp[-1].table); (yyval.import)->table.name = (yyvsp[-2].text); } -#line 3387 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3391 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 115: @@ -3394,7 +3398,7 @@ yyreduce: (yyval.import)->memory = (yyvsp[-1].memory); (yyval.import)->memory.name = (yyvsp[-2].text); } -#line 3398 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3402 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 116: @@ -3405,7 +3409,7 @@ yyreduce: (yyval.import)->global = (yyvsp[-1].global); (yyval.import)->global.name = (yyvsp[-2].text); } -#line 3409 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3413 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 117: @@ -3415,7 +3419,7 @@ yyreduce: (yyval.import)->module_name = (yyvsp[-3].text); (yyval.import)->field_name = (yyvsp[-2].text); } -#line 3419 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3423 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 118: @@ -3427,7 +3431,7 @@ yyreduce: (yyval.import)->func.decl.flags = WASM_FUNC_DECLARATION_FLAG_HAS_FUNC_TYPE; (yyval.import)->func.decl.type_var = (yyvsp[-1].var); } -#line 3431 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3435 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 119: @@ -3438,7 +3442,7 @@ yyreduce: (yyval.import)->func.name = (yyvsp[-3].text); (yyval.import)->func.decl.sig = (yyvsp[-1].func_sig); } -#line 3442 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3446 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 120: @@ -3449,7 +3453,7 @@ yyreduce: (yyval.import)->table = (yyvsp[-1].table); (yyval.import)->table.name = (yyvsp[-3].text); } -#line 3453 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3457 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 121: @@ -3460,7 +3464,7 @@ yyreduce: (yyval.import)->memory = (yyvsp[-1].memory); (yyval.import)->memory.name = (yyvsp[-3].text); } -#line 3464 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3468 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 122: @@ -3471,7 +3475,7 @@ yyreduce: (yyval.import)->global = (yyvsp[-1].global); (yyval.import)->global.name = (yyvsp[-3].text); } -#line 3475 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3479 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 123: @@ -3481,7 +3485,7 @@ yyreduce: (yyval.import)->module_name = (yyvsp[-2].text); (yyval.import)->field_name = (yyvsp[-1].text); } -#line 3485 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3489 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 124: @@ -3491,7 +3495,7 @@ yyreduce: (yyval.export_).kind = WASM_EXTERNAL_KIND_FUNC; (yyval.export_).var = (yyvsp[-1].var); } -#line 3495 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3499 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 125: @@ -3501,7 +3505,7 @@ yyreduce: (yyval.export_).kind = WASM_EXTERNAL_KIND_TABLE; (yyval.export_).var = (yyvsp[-1].var); } -#line 3505 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3509 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 126: @@ -3511,7 +3515,7 @@ yyreduce: (yyval.export_).kind = WASM_EXTERNAL_KIND_MEMORY; (yyval.export_).var = (yyvsp[-1].var); } -#line 3515 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3519 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 127: @@ -3521,7 +3525,7 @@ yyreduce: (yyval.export_).kind = WASM_EXTERNAL_KIND_GLOBAL; (yyval.export_).var = (yyvsp[-1].var); } -#line 3525 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3529 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 128: @@ -3530,16 +3534,16 @@ yyreduce: (yyval.export_) = (yyvsp[-1].export_); (yyval.export_).name = (yyvsp[-2].text); } -#line 3534 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3538 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 129: #line 1098 "src/ast-parser.y" /* yacc.c:1646 */ - { + { WASM_ZERO_MEMORY((yyval.optional_export)); (yyval.optional_export).has_export = WASM_FALSE; } -#line 3543 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3547 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 131: @@ -3549,7 +3553,7 @@ yyreduce: (yyval.optional_export).has_export = WASM_TRUE; (yyval.optional_export).export_.name = (yyvsp[-1].text); } -#line 3553 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3557 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 132: @@ -3558,7 +3562,7 @@ yyreduce: WASM_ZERO_MEMORY((yyval.func_type)); (yyval.func_type).sig = (yyvsp[-1].func_sig); } -#line 3562 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3566 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 133: @@ -3567,13 +3571,13 @@ yyreduce: (yyval.func_type).name = (yyvsp[-2].text); (yyval.func_type).sig = (yyvsp[-1].func_sig); } -#line 3571 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3575 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 134: #line 1127 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.var) = (yyvsp[-1].var); } -#line 3577 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3581 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 135: @@ -3581,7 +3585,7 @@ yyreduce: { (yyval.module) = new_module(parser->allocator); } -#line 3585 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3589 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 136: @@ -3594,7 +3598,7 @@ yyreduce: &field->func_type); INSERT_BINDING((yyval.module), func_type, func_types, (yylsp[0]), (yyvsp[0].func_type).name); } -#line 3598 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3602 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 137: @@ -3607,7 +3611,7 @@ yyreduce: INSERT_BINDING((yyval.module), global, globals, (yylsp[0]), (yyvsp[0].exported_global).global.name); APPEND_INLINE_EXPORT((yyval.module), GLOBAL, (yylsp[0]), (yyvsp[0].exported_global), (yyval.module)->globals.size - 1); } -#line 3611 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3615 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 138: @@ -3629,7 +3633,7 @@ yyreduce: } } -#line 3633 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3637 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 139: @@ -3650,7 +3654,7 @@ yyreduce: &data_segment_field->data_segment); } } -#line 3654 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3658 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 140: @@ -3666,7 +3670,7 @@ yyreduce: APPEND_INLINE_EXPORT((yyval.module), FUNC, (yylsp[0]), (yyvsp[0].exported_func), (yyval.module)->funcs.size - 1); wasm_free(parser->allocator, (yyvsp[0].exported_func).func); } -#line 3670 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3674 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 141: @@ -3678,7 +3682,7 @@ yyreduce: APPEND_ITEM_TO_VECTOR((yyval.module), ElemSegment, elem_segment, elem_segments, &field->elem_segment); } -#line 3682 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3686 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 142: @@ -3690,7 +3694,7 @@ yyreduce: APPEND_ITEM_TO_VECTOR((yyval.module), DataSegment, data_segment, data_segments, &field->data_segment); } -#line 3694 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3698 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 143: @@ -3701,7 +3705,7 @@ yyreduce: APPEND_FIELD_TO_LIST((yyval.module), field, START, start, (yylsp[0]), (yyvsp[0].var)); (yyval.module)->start = &field->start; } -#line 3705 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3709 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 144: @@ -3746,7 +3750,7 @@ yyreduce: wasm_free(parser->allocator, (yyvsp[0].import)); APPEND_ITEM_TO_VECTOR((yyval.module), Import, import, imports, &field->import); } -#line 3750 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3754 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 145: @@ -3758,7 +3762,7 @@ yyreduce: APPEND_ITEM_TO_VECTOR((yyval.module), Export, export, exports, &field->export_); INSERT_BINDING((yyval.module), export, exports, (yylsp[0]), (yyvsp[0].export_).name); } -#line 3762 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3766 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 146: @@ -3785,7 +3789,7 @@ yyreduce: } } } -#line 3789 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3793 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 147: @@ -3797,7 +3801,7 @@ yyreduce: dup_text_list(parser->allocator, &(yyvsp[-1].text_list), &(yyval.raw_module).binary.data, &(yyval.raw_module).binary.size); wasm_destroy_text_list(parser->allocator, &(yyvsp[-1].text_list)); } -#line 3801 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3805 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 148: @@ -3823,7 +3827,7 @@ yyreduce: (yyval.module)->loc = (yyvsp[0].raw_module).binary.loc; } } -#line 3827 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3831 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 149: @@ -3833,7 +3837,7 @@ yyreduce: (yyval.var).type = WASM_VAR_TYPE_INDEX; (yyval.var).index = INVALID_VAR_INDEX; } -#line 3837 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3841 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 150: @@ -3843,7 +3847,7 @@ yyreduce: (yyval.var).type = WASM_VAR_TYPE_NAME; DUPTEXT((yyval.var).name, (yyvsp[0].text)); } -#line 3847 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3851 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 151: @@ -3856,7 +3860,7 @@ yyreduce: (yyval.action).invoke.name = (yyvsp[-2].text); (yyval.action).invoke.args = (yyvsp[-1].consts); } -#line 3860 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3864 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 152: @@ -3868,7 +3872,7 @@ yyreduce: (yyval.action).type = WASM_ACTION_TYPE_GET; (yyval.action).invoke.name = (yyvsp[-1].text); } -#line 3872 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3876 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 153: @@ -3879,7 +3883,7 @@ yyreduce: (yyval.command)->assert_malformed.module = (yyvsp[-2].raw_module); (yyval.command)->assert_malformed.text = (yyvsp[-1].text); } -#line 3883 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3887 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 154: @@ -3890,7 +3894,7 @@ yyreduce: (yyval.command)->assert_invalid.module = (yyvsp[-2].raw_module); (yyval.command)->assert_invalid.text = (yyvsp[-1].text); } -#line 3894 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3898 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 155: @@ -3901,7 +3905,7 @@ yyreduce: (yyval.command)->assert_unlinkable.module = (yyvsp[-2].raw_module); (yyval.command)->assert_unlinkable.text = (yyvsp[-1].text); } -#line 3905 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3909 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 156: @@ -3912,7 +3916,7 @@ yyreduce: (yyval.command)->assert_uninstantiable.module = (yyvsp[-2].raw_module); (yyval.command)->assert_uninstantiable.text = (yyvsp[-1].text); } -#line 3916 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3920 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 157: @@ -3923,7 +3927,7 @@ yyreduce: (yyval.command)->assert_return.action = (yyvsp[-2].action); (yyval.command)->assert_return.expected = (yyvsp[-1].consts); } -#line 3927 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3931 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 158: @@ -3933,7 +3937,7 @@ yyreduce: (yyval.command)->type = WASM_COMMAND_TYPE_ASSERT_RETURN_NAN; (yyval.command)->assert_return_nan.action = (yyvsp[-1].action); } -#line 3937 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3941 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 159: @@ -3944,32 +3948,43 @@ yyreduce: (yyval.command)->assert_trap.action = (yyvsp[-2].action); (yyval.command)->assert_trap.text = (yyvsp[-1].text); } -#line 3948 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3952 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; case 160: -#line 1397 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1394 "src/ast-parser.y" /* yacc.c:1646 */ + { + (yyval.command) = new_command(parser->allocator); + (yyval.command)->type = WASM_COMMAND_TYPE_ASSERT_EXHAUSTION; + (yyval.command)->assert_trap.action = (yyvsp[-2].action); + (yyval.command)->assert_trap.text = (yyvsp[-1].text); + } +#line 3963 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ + break; + + case 161: +#line 1403 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new_command(parser->allocator); (yyval.command)->type = WASM_COMMAND_TYPE_ACTION; (yyval.command)->action = (yyvsp[0].action); } -#line 3958 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3973 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; - case 162: -#line 1403 "src/ast-parser.y" /* yacc.c:1646 */ + case 163: +#line 1409 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new_command(parser->allocator); (yyval.command)->type = WASM_COMMAND_TYPE_MODULE; (yyval.command)->module = *(yyvsp[0].module); wasm_free(parser->allocator, (yyvsp[0].module)); } -#line 3969 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3984 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; - case 163: -#line 1409 "src/ast-parser.y" /* yacc.c:1646 */ + case 164: +#line 1415 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new_command(parser->allocator); (yyval.command)->type = WASM_COMMAND_TYPE_REGISTER; @@ -3977,27 +3992,27 @@ yyreduce: (yyval.command)->register_.var = (yyvsp[-1].var); (yyval.command)->register_.var.loc = (yylsp[-1]); } -#line 3981 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 3996 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; - case 164: -#line 1418 "src/ast-parser.y" /* yacc.c:1646 */ + case 165: +#line 1424 "src/ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.commands)); } -#line 3987 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 4002 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; - case 165: -#line 1419 "src/ast-parser.y" /* yacc.c:1646 */ + case 166: +#line 1425 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.commands) = (yyvsp[-1].commands); wasm_append_command_value(parser->allocator, &(yyval.commands), (yyvsp[0].command)); wasm_free(parser->allocator, (yyvsp[0].command)); } -#line 3997 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 4012 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; - case 166: -#line 1427 "src/ast-parser.y" /* yacc.c:1646 */ + case 167: +#line 1433 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.const_).loc = (yylsp[-2]); if (WASM_FAILED(parse_const((yyvsp[-2].type), (yyvsp[-1].literal).type, (yyvsp[-1].literal).text.start, @@ -4008,26 +4023,26 @@ yyreduce: } wasm_free(parser->allocator, (char*)(yyvsp[-1].literal).text.start); } -#line 4012 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 4027 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; - case 167: -#line 1439 "src/ast-parser.y" /* yacc.c:1646 */ + case 168: +#line 1445 "src/ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.consts)); } -#line 4018 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 4033 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; - case 168: -#line 1440 "src/ast-parser.y" /* yacc.c:1646 */ + case 169: +#line 1446 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.consts) = (yyvsp[-1].consts); wasm_append_const_value(parser->allocator, &(yyval.consts), &(yyvsp[0].const_)); } -#line 4027 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 4042 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; - case 169: -#line 1447 "src/ast-parser.y" /* yacc.c:1646 */ + case 170: +#line 1453 "src/ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.script)); (yyval.script).allocator = parser->allocator; @@ -4063,6 +4078,7 @@ yyreduce: module_var = &command->assert_return_nan.action.module_var; goto has_module_var; case WASM_COMMAND_TYPE_ASSERT_TRAP: + case WASM_COMMAND_TYPE_ASSERT_EXHAUSTION: module_var = &command->assert_trap.action.module_var; goto has_module_var; case WASM_COMMAND_TYPE_ACTION: @@ -4088,11 +4104,11 @@ yyreduce: } parser->script = (yyval.script); } -#line 4092 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 4108 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ break; -#line 4096 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ +#line 4112 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4327,7 +4343,7 @@ yyreturn: #endif return yyresult; } -#line 1515 "src/ast-parser.y" /* yacc.c:1906 */ +#line 1522 "src/ast-parser.y" /* yacc.c:1906 */ static void append_expr_list(WasmExprList* expr_list, WasmExprList* expr) { diff --git a/src/prebuilt/ast-parser-gen.h b/src/prebuilt/ast-parser-gen.h index b1fdaf0b..7661d3de 100644 --- a/src/prebuilt/ast-parser-gen.h +++ b/src/prebuilt/ast-parser-gen.h @@ -121,9 +121,10 @@ extern int wasm_ast_parser_debug; WASM_TOKEN_TYPE_ASSERT_RETURN = 322, WASM_TOKEN_TYPE_ASSERT_RETURN_NAN = 323, WASM_TOKEN_TYPE_ASSERT_TRAP = 324, - WASM_TOKEN_TYPE_INPUT = 325, - WASM_TOKEN_TYPE_OUTPUT = 326, - WASM_TOKEN_TYPE_LOW = 327 + WASM_TOKEN_TYPE_ASSERT_EXHAUSTION = 325, + WASM_TOKEN_TYPE_INPUT = 326, + WASM_TOKEN_TYPE_OUTPUT = 327, + WASM_TOKEN_TYPE_LOW = 328 }; #endif diff --git a/src/resolve-names.c b/src/resolve-names.c index ea73ed2a..4b28964c 100644 --- a/src/resolve-names.c +++ b/src/resolve-names.c @@ -356,6 +356,7 @@ static void visit_command(Context* ctx, WasmCommand* command) { case WASM_COMMAND_TYPE_ASSERT_RETURN: case WASM_COMMAND_TYPE_ASSERT_RETURN_NAN: case WASM_COMMAND_TYPE_ASSERT_TRAP: + case WASM_COMMAND_TYPE_ASSERT_EXHAUSTION: case WASM_COMMAND_TYPE_REGISTER: /* Don't resolve a module_var, since it doesn't really behave like other * vars. You can't reference a module by index. */ diff --git a/src/tools/wasm-interp.c b/src/tools/wasm-interp.c index 844c20a5..433979c3 100644 --- a/src/tools/wasm-interp.c +++ b/src/tools/wasm-interp.c @@ -1476,6 +1476,26 @@ static WasmResult on_assert_trap_command(Context* ctx, return result; } +static WasmResult on_assert_exhaustion_command(Context* ctx, + Action* action) { + WasmInterpreterTypedValueVector results; + WasmInterpreterResult iresult; + + ctx->total++; + WasmResult result = run_action(ctx, action, &iresult, &results, RUN_QUIET); + if (WASM_SUCCEEDED(result)) { + if (iresult == WASM_INTERPRETER_TRAP_CALL_STACK_EXHAUSTED) { + ctx->passed++; + } else { + print_command_error(ctx, "expected call stack exhaustion"); + result = WASM_ERROR; + } + } + + wasm_destroy_interpreter_typed_value_vector(ctx->allocator, &results); + return result; +} + static void destroy_action(WasmAllocator* allocator, Action* action) { wasm_destroy_interpreter_typed_value_vector(allocator, &action->args); } @@ -1612,6 +1632,18 @@ static WasmResult parse_command(Context* ctx) { PARSE_KEY_STRING_VALUE("text", &text); on_assert_trap_command(ctx, &action, text); destroy_action(ctx->allocator, &action); + } else if (match(ctx, "\"assert_exhaustion\"")) { + Action action; + WasmStringSlice text; + WASM_ZERO_MEMORY(action); + WASM_ZERO_MEMORY(text); + + EXPECT(","); + CHECK_RESULT(parse_line(ctx)); + EXPECT(","); + CHECK_RESULT(parse_action(ctx, &action)); + on_assert_exhaustion_command(ctx, &action); + destroy_action(ctx->allocator, &action); } else { print_command_error(ctx, "unknown command type"); return WASM_ERROR; diff --git a/src/validator.c b/src/validator.c index fd558f97..d56f09dc 100644 --- a/src/validator.c +++ b/src/validator.c @@ -1326,6 +1326,7 @@ static void check_command(Context* ctx, const WasmCommand* command) { } case WASM_COMMAND_TYPE_ASSERT_TRAP: + case WASM_COMMAND_TYPE_ASSERT_EXHAUSTION: /* ignore result type */ check_action(ctx, &command->assert_trap.action); break; |