diff options
48 files changed, 5864 insertions, 4353 deletions
diff --git a/src/prebuilt/wasm-ast-lexer-gen.c b/src/prebuilt/wasm-ast-lexer-gen.c index 3bd942cb..d42e5ac8 100644 --- a/src/prebuilt/wasm-ast-lexer-gen.c +++ b/src/prebuilt/wasm-ast-lexer-gen.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 */ +/* Generated by re2c 0.16 */ #line 1 "src/wasm-ast-lexer.c" /* * Copyright 2016 WebAssembly Community Group participants @@ -201,66 +201,64 @@ 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 yy4; + if (yych >= 0x01) goto yy5; } else { - if (yych <= '\n') goto yy6; - if (yych <= 0x1F) goto yy4; - goto yy8; + if (yych <= '\n') goto yy7; + if (yych <= 0x1F) goto yy5; + goto yy9; } } else { if (yych <= '\\') { - if (yych <= '"') goto yy10; - if (yych <= '[') goto yy8; - goto yy12; + if (yych <= '"') goto yy11; + if (yych <= '[') goto yy9; + goto yy13; } else { - if (yych == 0x7F) goto yy4; - goto yy8; + if (yych == 0x7F) goto yy5; + goto yy9; } } ++lexer->cursor; -#line 233 "src/wasm-ast-lexer.c" +#line 235 "src/wasm-ast-lexer.c" { ERROR("unexpected EOF"); RETURN(EOF); } -#line 229 "src/prebuilt/wasm-ast-lexer-gen.c" -yy4: - ++lexer->cursor; +#line 228 "src/prebuilt/wasm-ast-lexer-gen.c" yy5: -#line 234 "src/wasm-ast-lexer.c" - { ERROR("illegal character in string"); continue; } -#line 235 "src/prebuilt/wasm-ast-lexer-gen.c" + ++lexer->cursor; yy6: +#line 236 "src/wasm-ast-lexer.c" + { ERROR("illegal character in string"); continue; } +#line 234 "src/prebuilt/wasm-ast-lexer-gen.c" +yy7: ++lexer->cursor; BEGIN(YYCOND_i); -#line 229 "src/wasm-ast-lexer.c" +#line 231 "src/wasm-ast-lexer.c" { ERROR("newline in string"); NEWLINE; continue; } -#line 241 "src/prebuilt/wasm-ast-lexer-gen.c" -yy8: - ++lexer->cursor; +#line 240 "src/prebuilt/wasm-ast-lexer-gen.c" yy9: -#line 228 "src/wasm-ast-lexer.c" + ++lexer->cursor; +#line 230 "src/wasm-ast-lexer.c" { continue; } -#line 247 "src/prebuilt/wasm-ast-lexer-gen.c" -yy10: +#line 245 "src/prebuilt/wasm-ast-lexer-gen.c" +yy11: ++lexer->cursor; BEGIN(YYCOND_i); -#line 232 "src/wasm-ast-lexer.c" +#line 234 "src/wasm-ast-lexer.c" { TEXT; RETURN(TEXT); } -#line 253 "src/prebuilt/wasm-ast-lexer-gen.c" -yy12: +#line 251 "src/prebuilt/wasm-ast-lexer-gen.c" +yy13: yych = *++lexer->cursor; if (yych <= '@') { if (yych <= '"') { - if (yych == '\n') goto yy5; - if (yych >= '"') goto yy15; + if (yych == '\n') goto yy6; + if (yych >= '"') goto yy9; } else { if (yych <= '\'') { - if (yych >= '\'') goto yy15; + if (yych >= '\'') goto yy9; } else { - if (yych <= '/') goto yy13; + if (yych <= '/') goto yy14; if (yych <= '9') goto yy16; } } @@ -269,88 +267,85 @@ yy12: if (yych <= '[') { if (yych <= 'F') goto yy16; } else { - if (yych <= '\\') goto yy15; + if (yych <= '\\') goto yy9; if (yych >= 'a') goto yy16; } } else { if (yych <= 'n') { - if (yych >= 'n') goto yy15; + if (yych >= 'n') goto yy9; } else { - if (yych == 't') goto yy15; + if (yych == 't') goto yy9; } } } -yy13: - ++lexer->cursor; yy14: -#line 230 "src/wasm-ast-lexer.c" + ++lexer->cursor; +yy15: +#line 232 "src/wasm-ast-lexer.c" { ERROR("bad escape \"%.*s\"", (int)yyleng, yytext); continue; } -#line 290 "src/prebuilt/wasm-ast-lexer-gen.c" -yy15: - yych = *++lexer->cursor; - goto yy9; +#line 288 "src/prebuilt/wasm-ast-lexer-gen.c" yy16: - yych = *++lexer->cursor; - if (yych <= '@') { - if (yych <= '/') goto yy14; - if (yych >= ':') goto yy14; + ++lexer->cursor; + if ((yych = *lexer->cursor) <= '@') { + if (yych <= '/') goto yy15; + if (yych <= '9') goto yy9; + goto yy15; } else { - if (yych <= 'F') goto yy17; - if (yych <= '`') goto yy14; - if (yych >= 'g') goto yy14; + if (yych <= 'F') goto yy9; + if (yych <= '`') goto yy15; + if (yych <= 'f') goto yy9; + goto yy15; } -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 yy20; - if (yych == '\n') goto yy24; - goto yy22; + if (yych <= 0x00) goto yy19; + if (yych == '\n') goto yy23; + goto yy21; } else { - if (yych <= '(') goto yy26; - if (yych == ';') goto yy27; - goto yy22; + if (yych <= '(') goto yy25; + if (yych == ';') goto yy26; + goto yy21; } -yy20: +yy19: ++lexer->cursor; -#line 440 "src/wasm-ast-lexer.c" +#line 442 "src/wasm-ast-lexer.c" { ERROR("unexpected EOF"); RETURN(EOF); } -#line 325 "src/prebuilt/wasm-ast-lexer-gen.c" -yy22: +#line 318 "src/prebuilt/wasm-ast-lexer-gen.c" +yy21: ++lexer->cursor; -yy23: -#line 441 "src/wasm-ast-lexer.c" +yy22: +#line 443 "src/wasm-ast-lexer.c" { continue; } -#line 331 "src/prebuilt/wasm-ast-lexer-gen.c" -yy24: +#line 324 "src/prebuilt/wasm-ast-lexer-gen.c" +yy23: ++lexer->cursor; -#line 439 "src/wasm-ast-lexer.c" +#line 441 "src/wasm-ast-lexer.c" { NEWLINE; continue; } -#line 336 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 329 "src/prebuilt/wasm-ast-lexer-gen.c" +yy25: + yych = *++lexer->cursor; + if (yych == ';') goto yy27; + goto yy22; yy26: yych = *++lexer->cursor; - if (yych == ';') goto yy30; - goto yy23; + if (yych == ')') goto yy29; + goto yy22; yy27: - yych = *++lexer->cursor; - if (yych != ')') goto yy23; ++lexer->cursor; -#line 436 "src/wasm-ast-lexer.c" +#line 437 "src/wasm-ast-lexer.c" + { COMMENT_NESTING++; continue; } +#line 342 "src/prebuilt/wasm-ast-lexer-gen.c" +yy29: + ++lexer->cursor; +#line 438 "src/wasm-ast-lexer.c" { if (--COMMENT_NESTING == 0) BEGIN(YYCOND_INIT); continue; } #line 349 "src/prebuilt/wasm-ast-lexer-gen.c" -yy30: - ++lexer->cursor; -#line 435 "src/wasm-ast-lexer.c" - { COMMENT_NESTING++; continue; } -#line 354 "src/prebuilt/wasm-ast-lexer-gen.c" /* *********************************** */ YYCOND_LINE_COMMENT: { @@ -388,57 +383,51 @@ YYCOND_LINE_COMMENT: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - if ((lexer->limit - lexer->cursor) < 2) FILL(2); + if (lexer->limit <= lexer->cursor) FILL(1); yych = *lexer->cursor; - if (yych <= 0x00) goto yy35; - if (yych == '\n') goto yy37; + if (yybm[0+yych] & 128) { + goto yy34; + } goto yy36; -yy34: -#line 433 "src/wasm-ast-lexer.c" +yy33: +#line 435 "src/wasm-ast-lexer.c" { continue; } -#line 400 "src/prebuilt/wasm-ast-lexer-gen.c" -yy35: - yych = *++lexer->cursor; - goto yy40; -yy36: - yych = *++lexer->cursor; - goto yy40; -yy37: - ++lexer->cursor; - BEGIN(YYCOND_i); -#line 432 "src/wasm-ast-lexer.c" - { NEWLINE; continue; } -#line 412 "src/prebuilt/wasm-ast-lexer-gen.c" -yy39: +#line 396 "src/prebuilt/wasm-ast-lexer-gen.c" +yy34: ++lexer->cursor; if (lexer->limit <= lexer->cursor) FILL(1); yych = *lexer->cursor; -yy40: if (yybm[0+yych] & 128) { - goto yy39; + goto yy34; } - goto yy34; + goto yy33; +yy36: + ++lexer->cursor; + BEGIN(YYCOND_i); +#line 434 "src/wasm-ast-lexer.c" + { NEWLINE; continue; } +#line 410 "src/prebuilt/wasm-ast-lexer-gen.c" } /* *********************************** */ YYCOND_i: { static const unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 0, 128, 0, 0, + 0, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 72, 0, 72, 72, 72, 72, 64, - 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, + 72, 80, 0, 80, 80, 80, 80, 64, + 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, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, @@ -458,12 +447,14 @@ 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 yy43; + case 0x00: goto yy40; case '\t': - case '\r': - case ' ': goto yy47; - case '\n': goto yy49; + case '\n': goto yy47; + case ' ': case '!': case '#': case '%': @@ -518,14 +509,14 @@ YYCOND_i: case 'y': case 'z': case '|': - case '~': goto yy51; - case '"': goto yy53; - case '$': goto yy55; - case '(': goto yy56; - case ')': goto yy58; + case '~': goto yy49; + case '"': goto yy52; + case '$': goto yy54; + case '(': goto yy55; + case ')': goto yy57; case '+': - case '-': goto yy60; - case '0': goto yy61; + case '-': goto yy59; + case '0': goto yy60; case '1': case '2': case '3': @@ -534,7 +525,7 @@ YYCOND_i: case '6': case '7': case '8': - case '9': goto yy63; + case '9': goto yy62; case ';': goto yy64; case 'a': goto yy65; case 'b': goto yy66; @@ -552,4633 +543,5450 @@ YYCOND_i: case 's': goto yy78; case 't': goto yy79; case 'u': goto yy80; - default: goto yy45; + default: goto yy42; } -yy43: +yy40: ++lexer->cursor; -#line 447 "src/wasm-ast-lexer.c" +#line 449 "src/wasm-ast-lexer.c" { RETURN(EOF); } -#line 562 "src/prebuilt/wasm-ast-lexer-gen.c" -yy45: +#line 553 "src/prebuilt/wasm-ast-lexer-gen.c" +yy42: ++lexer->cursor; -yy46: -#line 448 "src/wasm-ast-lexer.c" +yy43: +#line 450 "src/wasm-ast-lexer.c" { ERROR("unexpected char"); continue; } -#line 568 "src/prebuilt/wasm-ast-lexer-gen.c" -yy47: +#line 559 "src/prebuilt/wasm-ast-lexer-gen.c" +yy44: ++lexer->cursor; + if (lexer->limit <= lexer->cursor) FILL(1); yych = *lexer->cursor; - goto yy1057; -yy48: -#line 443 "src/wasm-ast-lexer.c" + if (yybm[0+yych] & 8) { + goto yy44; + } +#line 445 "src/wasm-ast-lexer.c" { continue; } -#line 576 "src/prebuilt/wasm-ast-lexer-gen.c" -yy49: +#line 569 "src/prebuilt/wasm-ast-lexer-gen.c" +yy47: ++lexer->cursor; -#line 442 "src/wasm-ast-lexer.c" +#line 444 "src/wasm-ast-lexer.c" { NEWLINE; continue; } -#line 581 "src/prebuilt/wasm-ast-lexer-gen.c" -yy51: +#line 574 "src/prebuilt/wasm-ast-lexer-gen.c" +yy49: ++lexer->cursor; + if (lexer->limit <= lexer->cursor) FILL(1); yych = *lexer->cursor; - goto yy82; -yy52: -#line 444 "src/wasm-ast-lexer.c" +yy50: + if (yybm[0+yych] & 16) { + goto yy49; + } +yy51: +#line 446 "src/wasm-ast-lexer.c" { ERROR("unexpected token \"%.*s\"", (int)yyleng, yytext); continue; } -#line 591 "src/prebuilt/wasm-ast-lexer-gen.c" -yy53: +#line 588 "src/prebuilt/wasm-ast-lexer-gen.c" +yy52: yych = *(lexer->marker = ++lexer->cursor); - if (yych <= 0x1F) goto yy54; - if (yych != 0x7F) goto yy1050; -yy54: + if (yych <= 0x1F) goto yy53; + if (yych != 0x7F) goto yy82; +yy53: BEGIN(YYCOND_BAD_TEXT); -#line 227 "src/wasm-ast-lexer.c" +#line 229 "src/wasm-ast-lexer.c" { continue; } -#line 600 "src/prebuilt/wasm-ast-lexer-gen.c" -yy55: +#line 597 "src/prebuilt/wasm-ast-lexer-gen.c" +yy54: yych = *++lexer->cursor; if (yych <= ';') { if (yych <= '&') { - if (yych == '!') goto yy1046; - if (yych <= '"') goto yy52; - goto yy1046; + if (yych == '!') goto yy87; + if (yych <= '"') goto yy51; + goto yy87; } else { if (yych <= '+') { - if (yych <= ')') goto yy52; - goto yy1046; + if (yych <= ')') goto yy51; + goto yy87; } else { - if (yych <= ',') goto yy52; - if (yych <= ':') goto yy1046; - goto yy52; + if (yych <= ',') goto yy51; + if (yych <= ':') goto yy87; + goto yy51; } } } else { if (yych <= 'z') { if (yych <= '[') { - if (yych <= 'Z') goto yy1046; - goto yy52; + if (yych <= 'Z') goto yy87; + goto yy51; } else { - if (yych == ']') goto yy52; - goto yy1046; + if (yych == ']') goto yy51; + goto yy87; } } else { if (yych <= '|') { - if (yych <= '{') goto yy52; - goto yy1046; + if (yych <= '{') goto yy51; + goto yy87; } else { - if (yych == '~') goto yy1046; - goto yy52; + if (yych == '~') goto yy87; + goto yy51; } } } -yy56: +yy55: ++lexer->cursor; - if ((yych = *lexer->cursor) == ';') goto yy1044; -#line 219 "src/wasm-ast-lexer.c" + if ((yych = *lexer->cursor) == ';') goto yy90; +#line 220 "src/wasm-ast-lexer.c" { RETURN(LPAR); } -#line 642 "src/prebuilt/wasm-ast-lexer-gen.c" -yy58: +#line 639 "src/prebuilt/wasm-ast-lexer-gen.c" +yy57: ++lexer->cursor; -#line 220 "src/wasm-ast-lexer.c" +#line 221 "src/wasm-ast-lexer.c" { RETURN(RPAR); } -#line 647 "src/prebuilt/wasm-ast-lexer-gen.c" -yy60: +#line 644 "src/prebuilt/wasm-ast-lexer-gen.c" +yy59: yych = *++lexer->cursor; if (yych <= 'h') { - if (yych <= '/') goto yy82; - if (yych <= '0') goto yy1040; - if (yych <= '9') goto yy1024; - goto yy82; + if (yych <= '/') goto yy50; + if (yych <= '0') goto yy92; + if (yych <= '9') goto yy94; + goto yy50; } else { - if (yych <= 'i') goto yy1041; - if (yych == 'n') goto yy1042; - goto yy82; + if (yych <= 'i') goto yy96; + if (yych == 'n') goto yy97; + goto yy50; } -yy61: +yy60: ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'D') { - if (yych <= ',') { + if (yybm[0+(yych = *lexer->cursor)] & 32) { + goto yy62; + } + if (yych <= 'E') { + if (yych <= '+') { if (yych <= '"') { - if (yych == '!') goto yy81; + if (yych == '!') goto yy49; } else { - if (yych <= '&') goto yy81; - if (yych <= ')') goto yy62; - if (yych <= '+') goto yy81; + if (yych <= '&') goto yy49; + if (yych >= '*') goto yy49; } } else { - if (yych <= '/') { - if (yych == '.') goto yy1021; - goto yy81; + if (yych <= '.') { + if (yych <= ',') goto yy61; + if (yych <= '-') goto yy49; + goto yy98; } else { - if (yych <= '9') goto yy1024; - if (yych != ';') goto yy81; + if (yych == ';') goto yy61; + if (yych <= 'D') goto yy49; + goto yy101; } } } else { - if (yych <= 'e') { - if (yych <= '[') { - if (yych <= 'E') goto yy1026; - if (yych <= 'Z') goto yy81; + if (yych <= 'w') { + if (yych <= '\\') { + if (yych != '[') goto yy49; } else { - if (yych == ']') goto yy62; - if (yych <= 'd') goto yy81; - goto yy1026; + if (yych <= ']') goto yy61; + if (yych == 'e') goto yy101; + goto yy49; } } else { if (yych <= '{') { - if (yych == 'x') goto yy1030; - if (yych <= 'z') goto yy81; + if (yych <= 'x') goto yy102; + if (yych <= 'z') goto yy49; } else { - if (yych == '}') goto yy62; - if (yych <= '~') goto yy81; + if (yych == '}') goto yy61; + if (yych <= '~') goto yy49; } } } -yy62: -#line 221 "src/wasm-ast-lexer.c" - { LITERAL(INT); RETURN(INT); } +yy61: +#line 222 "src/wasm-ast-lexer.c" + { LITERAL(INT); RETURN(NAT); } #line 703 "src/prebuilt/wasm-ast-lexer-gen.c" -yy63: - yych = *++lexer->cursor; - if (yych <= ';') { +yy62: + ++lexer->cursor; + if ((lexer->limit - lexer->cursor) < 3) FILL(3); + yych = *lexer->cursor; + if (yybm[0+yych] & 32) { + goto yy62; + } + if (yych <= 'D') { if (yych <= '+') { if (yych <= '"') { - if (yych == '!') goto yy81; - goto yy62; + if (yych == '!') goto yy49; + goto yy61; } else { - if (yych <= '&') goto yy81; - if (yych <= ')') goto yy62; - goto yy81; + if (yych <= '&') goto yy49; + if (yych <= ')') goto yy61; + goto yy49; } } else { if (yych <= '.') { - if (yych <= ',') goto yy62; - if (yych <= '-') goto yy81; - goto yy1021; + if (yych <= ',') goto yy61; + if (yych <= '-') goto yy49; + goto yy98; } else { - if (yych <= '/') goto yy81; - if (yych <= '9') goto yy1024; - if (yych <= ':') goto yy81; - goto yy62; + if (yych == ';') goto yy61; + goto yy49; } } } else { if (yych <= 'd') { - if (yych <= 'Z') { - if (yych == 'E') goto yy1026; - goto yy81; + if (yych <= '[') { + if (yych <= 'E') goto yy101; + if (yych <= 'Z') goto yy49; + goto yy61; } else { - if (yych == '\\') goto yy81; - if (yych <= ']') goto yy62; - goto yy81; + if (yych == ']') goto yy61; + goto yy49; } } else { if (yych <= '{') { - if (yych <= 'e') goto yy1026; - if (yych <= 'z') goto yy81; - goto yy62; + if (yych <= 'e') goto yy101; + if (yych <= 'z') goto yy49; + goto yy61; } else { - if (yych == '}') goto yy62; - if (yych <= '~') goto yy81; - goto yy62; + if (yych == '}') goto yy61; + if (yych <= '~') goto yy49; + goto yy61; } } } yy64: yych = *++lexer->cursor; - if (yych == ';') goto yy1019; - goto yy46; + if (yych == ';') goto yy103; + goto yy43; yy65: yych = *++lexer->cursor; - if (yych == 'l') goto yy980; - if (yych == 's') goto yy981; - goto yy82; + if (yych == 'l') goto yy105; + if (yych == 's') goto yy106; + goto yy50; yy66: yych = *++lexer->cursor; - if (yych == 'l') goto yy963; - if (yych == 'r') goto yy964; - goto yy82; + if (yych == 'l') goto yy107; + if (yych == 'r') goto yy108; + goto yy50; yy67: yych = *++lexer->cursor; - if (yych == 'a') goto yy926; - if (yych == 'u') goto yy927; - goto yy82; + if (yych == 'a') goto yy110; + if (yych == 'u') goto yy111; + goto yy50; yy68: yych = *++lexer->cursor; - if (yych == 'l') goto yy916; - if (yych == 'x') goto yy917; - goto yy82; + if (yych == 'l') goto yy112; + if (yych == 'x') goto yy113; + goto yy50; yy69: yych = *++lexer->cursor; if (yych <= '5') { - if (yych == '3') goto yy622; - goto yy82; + if (yych == '3') goto yy114; + goto yy50; } else { - if (yych <= '6') goto yy623; - if (yych == 'u') goto yy624; - goto yy82; + if (yych <= '6') goto yy115; + if (yych == 'u') goto yy116; + goto yy50; } yy70: yych = *++lexer->cursor; - if (yych == 'e') goto yy602; - if (yych == 'r') goto yy603; - goto yy82; + if (yych == 'e') goto yy117; + if (yych == 'r') goto yy118; + goto yy50; yy71: yych = *++lexer->cursor; if (yych <= 'e') { if (yych <= '3') { - if (yych <= '2') goto yy82; - goto yy188; + if (yych <= '2') goto yy50; + goto yy119; } else { - if (yych == '6') goto yy189; - goto yy82; + if (yych == '6') goto yy120; + goto yy50; } } else { if (yych <= 'l') { - if (yych <= 'f') goto yy190; - goto yy82; + if (yych <= 'f') goto yy121; + goto yy50; } else { - if (yych <= 'm') goto yy192; - if (yych <= 'n') goto yy193; - goto yy82; + if (yych <= 'm') goto yy123; + if (yych <= 'n') goto yy124; + goto yy50; } } yy72: yych = *++lexer->cursor; - if (yych == 'o') goto yy180; - goto yy82; + if (yych == 'o') goto yy125; + goto yy50; yy73: yych = *++lexer->cursor; - if (yych == 'e') goto yy168; - if (yych == 'o') goto yy169; - goto yy82; + if (yych == 'e') goto yy126; + if (yych == 'o') goto yy127; + goto yy50; yy74: yych = *++lexer->cursor; - if (yych == 'a') goto yy157; - if (yych == 'o') goto yy158; - goto yy82; + if (yych == 'a') goto yy128; + if (yych == 'o') goto yy129; + goto yy50; yy75: yych = *++lexer->cursor; - if (yych == 'f') goto yy148; - goto yy82; + if (yych == 'f') goto yy130; + goto yy50; yy76: yych = *++lexer->cursor; - if (yych == 'a') goto yy143; - goto yy82; + if (yych == 'a') goto yy131; + goto yy50; yy77: yych = *++lexer->cursor; if (yych == 'e') goto yy132; - goto yy82; + goto yy50; yy78: yych = *++lexer->cursor; - if (yych == 'e') goto yy107; - if (yych == 't') goto yy108; - goto yy82; + if (yych == 'e') goto yy133; + if (yych == 't') goto yy134; + goto yy50; yy79: yych = *++lexer->cursor; if (yych <= 'g') { - if (yych == 'a') goto yy94; - goto yy82; + if (yych == 'a') goto yy135; + goto yy50; } else { - if (yych <= 'h') goto yy95; - if (yych == 'y') goto yy96; - goto yy82; + if (yych <= 'h') goto yy136; + if (yych == 'y') goto yy137; + goto yy50; } yy80: yych = *++lexer->cursor; - if (yych == 'n') goto yy83; - goto yy82; + if (yych == 'n') goto yy138; + goto yy50; yy81: ++lexer->cursor; if (lexer->limit <= lexer->cursor) FILL(1); yych = *lexer->cursor; yy82: - if (yybm[0+yych] & 8) { + if (yybm[0+yych] & 64) { goto yy81; } - goto yy52; + if (yych <= 0x1F) goto yy83; + if (yych <= '"') goto yy84; + if (yych <= '\\') goto yy86; yy83: - yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - yych = *++lexer->cursor; - if (yych != 'a') goto yy82; - yych = *++lexer->cursor; - if (yych != 'c') goto yy82; - yych = *++lexer->cursor; - if (yych != 'h') goto yy82; - yych = *++lexer->cursor; - if (yych != 'a') goto yy82; - yych = *++lexer->cursor; - if (yych != 'b') goto yy82; - yych = *++lexer->cursor; - if (yych != 'l') goto yy82; - yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + lexer->cursor = lexer->marker; + goto yy53; +yy84: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; +#line 228 "src/wasm-ast-lexer.c" + { TEXT; RETURN(TEXT); } +#line 875 "src/prebuilt/wasm-ast-lexer-gen.c" +yy86: + ++lexer->cursor; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= 'F') { + if (yych <= '\'') { + if (yych == '"') goto yy81; + if (yych <= '&') goto yy83; + goto yy81; + } else { + if (yych <= '/') goto yy83; + if (yych <= '9') goto yy139; + if (yych <= '@') goto yy83; + goto yy139; + } + } else { + if (yych <= 'f') { + if (yych == '\\') goto yy81; + if (yych <= '`') goto yy83; + goto yy139; + } else { + if (yych <= 'n') { + if (yych <= 'm') goto yy83; + goto yy81; + } else { + if (yych == 't') goto yy81; + goto yy83; + } + } } -#line 409 "src/wasm-ast-lexer.c" - { RETURN(UNREACHABLE); } -#line 888 "src/prebuilt/wasm-ast-lexer-gen.c" +yy87: + ++lexer->cursor; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= ';') { + if (yych <= '&') { + if (yych == '!') goto yy87; + if (yych >= '#') goto yy87; + } else { + if (yych <= '+') { + if (yych >= '*') goto yy87; + } else { + if (yych <= ',') goto yy89; + if (yych <= ':') goto yy87; + } + } + } else { + if (yych <= 'z') { + if (yych <= '[') { + if (yych <= 'Z') goto yy87; + } else { + if (yych != ']') goto yy87; + } + } else { + if (yych <= '|') { + if (yych >= '|') goto yy87; + } else { + if (yych == '~') goto yy87; + } + } + } +yy89: +#line 431 "src/wasm-ast-lexer.c" + { TEXT; RETURN(VAR); } +#line 940 "src/prebuilt/wasm-ast-lexer-gen.c" +yy90: + ++lexer->cursor; + BEGIN(YYCOND_BLOCK_COMMENT); +#line 436 "src/wasm-ast-lexer.c" + { COMMENT_NESTING = 1; continue; } +#line 946 "src/prebuilt/wasm-ast-lexer-gen.c" +yy92: + ++lexer->cursor; + if ((yych = *lexer->cursor) <= 'D') { + if (yych <= ',') { + if (yych <= '"') { + if (yych == '!') goto yy49; + } else { + if (yych <= '&') goto yy49; + if (yych <= ')') goto yy93; + if (yych <= '+') goto yy49; + } + } else { + if (yych <= '/') { + if (yych == '.') goto yy98; + goto yy49; + } else { + if (yych <= '9') goto yy94; + if (yych != ';') goto yy49; + } + } + } else { + if (yych <= 'e') { + if (yych <= '[') { + if (yych <= 'E') goto yy101; + if (yych <= 'Z') goto yy49; + } else { + if (yych == ']') goto yy93; + if (yych <= 'd') goto yy49; + goto yy101; + } + } else { + if (yych <= '{') { + if (yych == 'x') goto yy140; + if (yych <= 'z') goto yy49; + } else { + if (yych == '}') goto yy93; + if (yych <= '~') goto yy49; + } + } + } +yy93: +#line 223 "src/wasm-ast-lexer.c" + { LITERAL(INT); RETURN(INT); } +#line 990 "src/prebuilt/wasm-ast-lexer-gen.c" yy94: - yych = *++lexer->cursor; - if (yych == 'b') goto yy103; - goto yy82; -yy95: - yych = *++lexer->cursor; - if (yych == 'e') goto yy100; - goto yy82; + ++lexer->cursor; + if ((lexer->limit - lexer->cursor) < 3) FILL(3); + yych = *lexer->cursor; + if (yych <= ';') { + if (yych <= '+') { + if (yych <= '"') { + if (yych == '!') goto yy49; + goto yy93; + } else { + if (yych <= '&') goto yy49; + if (yych <= ')') goto yy93; + goto yy49; + } + } else { + if (yych <= '.') { + if (yych <= ',') goto yy93; + if (yych <= '-') goto yy49; + goto yy98; + } else { + if (yych <= '/') goto yy49; + if (yych <= '9') goto yy94; + if (yych <= ':') goto yy49; + goto yy93; + } + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') { + if (yych == 'E') goto yy101; + goto yy49; + } else { + if (yych == '\\') goto yy49; + if (yych <= ']') goto yy93; + goto yy49; + } + } else { + if (yych <= '{') { + if (yych <= 'e') goto yy101; + if (yych <= 'z') goto yy49; + goto yy93; + } else { + if (yych == '}') goto yy93; + if (yych <= '~') goto yy49; + goto yy93; + } + } + } yy96: yych = *++lexer->cursor; - if (yych != 'p') goto yy82; + if (yych == 'n') goto yy141; + goto yy50; +yy97: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'a') goto yy128; + goto yy50; +yy98: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + 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 yy100; + if (yych <= '/') goto yy49; + goto yy98; + } else { + if (yych != ';') goto yy49; + } + } + } else { + if (yych <= 'd') { + if (yych <= '[') { + if (yych <= 'E') goto yy101; + if (yych <= 'Z') goto yy49; + } else { + if (yych != ']') goto yy49; + } + } else { + if (yych <= '{') { + if (yych <= 'e') goto yy101; + if (yych <= 'z') goto yy49; + } else { + if (yych == '}') goto yy100; + if (yych <= '~') goto yy49; + } + } } -#line 412 "src/wasm-ast-lexer.c" - { RETURN(TYPE); } -#line 908 "src/prebuilt/wasm-ast-lexer-gen.c" yy100: +#line 224 "src/wasm-ast-lexer.c" + { LITERAL(FLOAT); RETURN(FLOAT); } +#line 1089 "src/prebuilt/wasm-ast-lexer-gen.c" +yy101: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yych <= ',') { + if (yych == '+') goto yy142; + goto yy50; + } else { + if (yych <= '-') goto yy142; + if (yych <= '/') goto yy50; + if (yych <= '9') goto yy143; + goto yy50; } -#line 243 "src/wasm-ast-lexer.c" - { RETURN(THEN); } -#line 918 "src/prebuilt/wasm-ast-lexer-gen.c" +yy102: + yych = *++lexer->cursor; + if (yybm[0+yych] & 128) { + goto yy145; + } + goto yy50; yy103: + ++lexer->cursor; + BEGIN(YYCOND_LINE_COMMENT); +#line 433 "src/wasm-ast-lexer.c" + { continue; } +#line 1112 "src/prebuilt/wasm-ast-lexer-gen.c" +yy105: yych = *++lexer->cursor; - if (yych != 'l') goto yy82; + if (yych == 'i') goto yy147; + goto yy50; +yy106: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 423 "src/wasm-ast-lexer.c" - { RETURN(TABLE); } -#line 930 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 's') goto yy148; + goto yy50; yy107: yych = *++lexer->cursor; - if (yych <= 'k') { - if (yych == 'g') goto yy115; - goto yy82; + if (yych == 'o') goto yy149; + goto yy50; +yy108: + ++lexer->cursor; + if ((yych = *lexer->cursor) <= 'Z') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy49; + } else { + if (yych <= '"') goto yy109; + if (yych <= '&') goto yy49; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy49; + } else { + if (yych != ';') goto yy49; + } + } } else { - if (yych <= 'l') goto yy114; - if (yych == 't') goto yy113; - goto yy82; + if (yych <= '_') { + if (yych <= '\\') { + if (yych >= '\\') goto yy49; + } else { + if (yych <= ']') goto yy109; + if (yych <= '^') goto yy49; + goto yy150; + } + } else { + if (yych <= '|') { + if (yych != '{') goto yy49; + } else { + if (yych == '~') goto yy49; + } + } } -yy108: +yy109: +#line 248 "src/wasm-ast-lexer.c" + { RETURN(BR); } +#line 1162 "src/prebuilt/wasm-ast-lexer-gen.c" +yy110: yych = *++lexer->cursor; - if (yych != 'a') goto yy82; + if (yych == 'l') goto yy151; + if (yych == 's') goto yy152; + goto yy50; +yy111: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'r') goto yy153; + goto yy50; +yy112: yych = *++lexer->cursor; - if (yych != 't') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 420 "src/wasm-ast-lexer.c" - { RETURN(START); } -#line 954 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 's') goto yy154; + goto yy50; yy113: yych = *++lexer->cursor; - if (yych == '_') goto yy125; - goto yy82; + if (yych == 'p') goto yy155; + goto yy50; yy114: yych = *++lexer->cursor; - if (yych == 'e') goto yy121; - goto yy82; + if (yych == '2') goto yy156; + goto yy50; yy115: yych = *++lexer->cursor; - if (yych != 'm') goto yy82; + if (yych == '4') goto yy158; + goto yy50; +yy116: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'n') goto yy160; + goto yy50; +yy117: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == 't') goto yy161; + goto yy50; +yy118: yych = *++lexer->cursor; - if (yych != 't') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 419 "src/wasm-ast-lexer.c" - { RETURN(SEGMENT); } -#line 978 "src/prebuilt/wasm-ast-lexer-gen.c" -yy121: + if (yych == 'o') goto yy162; + goto yy50; +yy119: yych = *++lexer->cursor; - if (yych != 'c') goto yy82; + if (yych == '2') goto yy163; + goto yy50; +yy120: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == '4') goto yy165; + goto yy50; +yy121: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if ((yych = *lexer->cursor) <= 'Z') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy49; + } else { + if (yych <= '"') goto yy122; + 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 yy122; + if (yych <= '^') goto yy49; + goto yy167; + } + } else { + if (yych <= '|') { + if (yych != '{') goto yy49; + } else { + if (yych == '~') goto yy49; + } + } } -#line 408 "src/wasm-ast-lexer.c" - { RETURN(SELECT); } -#line 990 "src/prebuilt/wasm-ast-lexer-gen.c" +yy122: +#line 243 "src/wasm-ast-lexer.c" + { RETURN(IF); } +#line 1245 "src/prebuilt/wasm-ast-lexer-gen.c" +yy123: + yych = *++lexer->cursor; + if (yych == 'p') goto yy168; + goto yy50; +yy124: + yych = *++lexer->cursor; + if (yych == 'f') goto yy169; + if (yych == 'v') goto yy171; + goto yy50; yy125: yych = *++lexer->cursor; - if (yych != 'l') goto yy82; + if (yych == 'c') goto yy172; + if (yych == 'o') goto yy173; + goto yy50; +yy126: yych = *++lexer->cursor; - if (yych != 'o') goto yy82; + if (yych == 'm') goto yy174; + goto yy50; +yy127: yych = *++lexer->cursor; - if (yych != 'c') goto yy82; + if (yych == 'd') goto yy175; + goto yy50; +yy128: yych = *++lexer->cursor; - if (yych != 'a') goto yy82; + if (yych == 'n') goto yy176; + goto yy50; +yy129: yych = *++lexer->cursor; - if (yych != 'l') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 255 "src/wasm-ast-lexer.c" - { RETURN(SET_LOCAL); } -#line 1008 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 'p') goto yy178; + goto yy50; +yy130: + yych = *++lexer->cursor; + if (yych == 'f') goto yy180; + goto yy50; +yy131: + yych = *++lexer->cursor; + if (yych == 'r') goto yy181; + goto yy50; yy132: yych = *++lexer->cursor; - if (yych <= 'r') goto yy82; - if (yych <= 's') goto yy134; - if (yych >= 'u') goto yy82; + if (yych <= 'r') goto yy50; + if (yych <= 's') goto yy182; + if (yych <= 't') goto yy183; + goto yy50; +yy133: yych = *++lexer->cursor; - if (yych == 'u') goto yy139; - goto yy82; + if (yych <= 'k') { + if (yych == 'g') goto yy184; + goto yy50; + } else { + if (yych <= 'l') goto yy185; + if (yych == 't') goto yy186; + goto yy50; + } yy134: yych = *++lexer->cursor; - if (yych != 'u') goto yy82; + if (yych == 'a') goto yy187; + goto yy50; +yy135: yych = *++lexer->cursor; - if (yych != 'l') goto yy82; + if (yych == 'b') goto yy188; + goto yy50; +yy136: yych = *++lexer->cursor; - if (yych != 't') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 415 "src/wasm-ast-lexer.c" - { RETURN(RESULT); } -#line 1030 "src/prebuilt/wasm-ast-lexer-gen.c" -yy139: + if (yych == 'e') goto yy189; + goto yy50; +yy137: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'p') goto yy190; + goto yy50; +yy138: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == 'r') goto yy191; + goto yy50; +yy139: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= '@') { + if (yych <= '/') goto yy83; + if (yych <= '9') goto yy81; + goto yy83; + } else { + if (yych <= 'F') goto yy81; + if (yych <= '`') goto yy83; + if (yych <= 'f') goto yy81; + goto yy83; } -#line 253 "src/wasm-ast-lexer.c" - { RETURN(RETURN); } -#line 1042 "src/prebuilt/wasm-ast-lexer-gen.c" -yy143: +yy140: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych <= '@') { + if (yych <= '/') goto yy50; + if (yych <= '9') goto yy192; + goto yy50; + } else { + if (yych <= 'F') goto yy192; + if (yych <= '`') goto yy50; + if (yych <= 'f') goto yy192; + goto yy50; + } +yy141: yych = *++lexer->cursor; - if (yych != 'a') goto yy82; + if (yych == 'f') goto yy169; + goto yy50; +yy142: yych = *++lexer->cursor; - if (yych != 'm') goto yy82; + if (yych <= '/') goto yy50; + if (yych >= ':') goto yy50; +yy143: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= ':') { + if (yych <= ')') { + if (yych <= '!') { + if (yych <= ' ') goto yy100; + goto yy49; + } else { + if (yych <= '"') goto yy100; + if (yych <= '&') goto yy49; + goto yy100; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy49; + goto yy100; + } else { + if (yych <= '/') goto yy49; + if (yych <= '9') goto yy143; + goto yy49; + } + } + } else { + if (yych <= ']') { + if (yych <= 'Z') { + if (yych <= ';') goto yy100; + goto yy49; + } else { + if (yych == '\\') goto yy49; + goto yy100; + } + } else { + if (yych <= '|') { + if (yych == '{') goto yy100; + goto yy49; + } else { + if (yych == '~') goto yy49; + goto yy100; + } + } } -#line 414 "src/wasm-ast-lexer.c" - { RETURN(PARAM); } -#line 1056 "src/prebuilt/wasm-ast-lexer-gen.c" +yy145: + ++lexer->cursor; + if ((lexer->limit - lexer->cursor) < 3) FILL(3); + yych = *lexer->cursor; + if (yybm[0+yych] & 128) { + goto yy145; + } + 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 yy194; + 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 yy196; + } + } else { + if (yych <= '|') { + if (yych == '{') goto yy61; + goto yy49; + } else { + if (yych == '~') goto yy49; + goto yy61; + } + } + } +yy147: + yych = *++lexer->cursor; + if (yych == 'g') goto yy197; + goto yy50; yy148: yych = *++lexer->cursor; - if (yych != 'f') goto yy82; + if (yych == 'e') goto yy198; + goto yy50; +yy149: yych = *++lexer->cursor; - if (yych != 's') goto yy82; + if (yych == 'c') goto yy199; + goto yy50; +yy150: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'i') goto yy200; + if (yych == 't') goto yy201; + goto yy50; +yy151: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'l') goto yy202; + goto yy50; +yy152: yych = *++lexer->cursor; - if (yych != '=') goto yy82; + if (yych == 'e') goto yy204; + goto yy50; +yy153: yych = *++lexer->cursor; - if (yybm[0+yych] & 16) { - goto yy154; - } - goto yy82; + if (yych == 'r') goto yy206; + goto yy50; yy154: + yych = *++lexer->cursor; + if (yych == 'e') goto yy207; + goto yy50; +yy155: + yych = *++lexer->cursor; + if (yych == 'o') goto yy209; + goto yy50; +yy156: ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yybm[0+yych] & 16) { - goto yy154; - } - if (yych <= ';') { - if (yych <= '&') { - if (yych == '!') goto yy81; - if (yych >= '#') goto yy81; + if ((yych = *lexer->cursor) <= ':') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy49; + } else { + if (yych <= '"') goto yy157; + if (yych <= '&') goto yy49; + } } else { - if (yych <= '+') { - if (yych >= '*') goto yy81; + if (yych <= ',') { + if (yych <= '+') goto yy49; } else { - if (yych <= ',') goto yy156; - if (yych <= ':') goto yy81; + if (yych == '.') goto yy210; + goto yy49; } } } else { - if (yych <= 'z') { - if (yych <= '[') { - if (yych <= 'Z') goto yy81; + if (yych <= ']') { + if (yych <= 'Z') { + if (yych >= '<') goto yy49; } else { - if (yych != ']') goto yy81; + if (yych == '\\') goto yy49; } } else { if (yych <= '|') { - if (yych >= '|') goto yy81; + if (yych != '{') goto yy49; } else { - if (yych == '~') goto yy81; + if (yych == '~') goto yy49; } } } -yy156: -#line 279 "src/wasm-ast-lexer.c" - { TEXT_AT(7); RETURN(OFFSET); } -#line 1110 "src/prebuilt/wasm-ast-lexer-gen.c" yy157: - yych = *++lexer->cursor; - if (yych == 'n') goto yy161; - goto yy82; -yy158: - yych = *++lexer->cursor; - if (yych != 'p') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } #line 239 "src/wasm-ast-lexer.c" - { RETURN(NOP); } -#line 1124 "src/prebuilt/wasm-ast-lexer-gen.c" -yy161: + { TYPE(F32); RETURN(VALUE_TYPE); } +#line 1517 "src/prebuilt/wasm-ast-lexer-gen.c" +yy158: ++lexer->cursor; - if ((yych = *lexer->cursor) <= ';') { + if ((yych = *lexer->cursor) <= ':') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy81; + if (yych >= '!') goto yy49; } else { - if (yych <= '"') goto yy162; - if (yych <= '&') goto yy81; + if (yych <= '"') goto yy159; + if (yych <= '&') goto yy49; } } else { if (yych <= ',') { - if (yych <= '+') goto yy81; + if (yych <= '+') goto yy49; } else { - if (yych <= '9') goto yy81; - if (yych <= ':') goto yy163; + if (yych == '.') goto yy211; + goto yy49; } } } else { - if (yych <= 'z') { - if (yych <= '[') { - if (yych <= 'Z') goto yy81; + if (yych <= ']') { + if (yych <= 'Z') { + if (yych >= '<') goto yy49; } else { - if (yych != ']') goto yy81; + if (yych == '\\') goto yy49; } } else { if (yych <= '|') { - if (yych >= '|') goto yy81; + if (yych != '{') goto yy49; } else { - if (yych == '~') goto yy81; + if (yych == '~') goto yy49; } } } -yy162: -#line 225 "src/wasm-ast-lexer.c" - { LITERAL(NAN); RETURN(FLOAT); } -#line 1161 "src/prebuilt/wasm-ast-lexer-gen.c" -yy163: +yy159: +#line 240 "src/wasm-ast-lexer.c" + { TYPE(F64); RETURN(VALUE_TYPE); } +#line 1554 "src/prebuilt/wasm-ast-lexer-gen.c" +yy160: yych = *++lexer->cursor; - if (yych != '0') goto yy82; + if (yych == 'c') goto yy212; + goto yy50; +yy161: yych = *++lexer->cursor; - if (yych != 'x') goto yy82; + if (yych == '_') goto yy214; + goto yy50; +yy162: yych = *++lexer->cursor; - if (yybm[0+yych] & 32) { - goto yy166; - } - goto yy82; -yy166: + if (yych == 'w') goto yy215; + goto yy50; +yy163: ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yybm[0+yych] & 32) { - goto yy166; - } - if (yych <= ';') { - if (yych <= '&') { - if (yych == '!') goto yy81; - if (yych <= '"') goto yy162; - goto yy81; + if ((yych = *lexer->cursor) <= ':') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy49; + } else { + if (yych <= '"') goto yy164; + if (yych <= '&') goto yy49; + } } else { - if (yych <= '+') { - if (yych <= ')') goto yy162; - goto yy81; + if (yych <= ',') { + if (yych <= '+') goto yy49; } else { - if (yych <= ',') goto yy162; - if (yych <= ':') goto yy81; - goto yy162; + if (yych == '.') goto yy216; + goto yy49; } } } else { - if (yych <= 'z') { - if (yych <= '[') { - if (yych <= 'Z') goto yy81; - goto yy162; + if (yych <= ']') { + if (yych <= 'Z') { + if (yych >= '<') goto yy49; } else { - if (yych == ']') goto yy162; - goto yy81; + if (yych == '\\') goto yy49; } } else { if (yych <= '|') { - if (yych <= '{') goto yy162; - goto yy81; + if (yych != '{') goto yy49; } else { - if (yych == '~') goto yy81; - goto yy162; + if (yych == '~') goto yy49; } } } -yy168: - yych = *++lexer->cursor; - if (yych == 'm') goto yy175; - goto yy82; -yy169: - yych = *++lexer->cursor; - if (yych != 'd') goto yy82; - yych = *++lexer->cursor; - if (yych != 'u') goto yy82; - yych = *++lexer->cursor; - if (yych != 'l') goto yy82; - yych = *++lexer->cursor; - if (yych != 'e') goto yy82; +yy164: +#line 237 "src/wasm-ast-lexer.c" + { TYPE(I32); RETURN(VALUE_TYPE); } +#line 1603 "src/prebuilt/wasm-ast-lexer-gen.c" +yy165: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if ((yych = *lexer->cursor) <= ':') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy49; + } else { + if (yych <= '"') goto yy166; + if (yych <= '&') goto yy49; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy49; + } else { + if (yych == '.') goto yy217; + 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; + } + } } -#line 417 "src/wasm-ast-lexer.c" - { RETURN(MODULE); } -#line 1232 "src/prebuilt/wasm-ast-lexer-gen.c" -yy175: - yych = *++lexer->cursor; - if (yych != 'o') goto yy82; +yy166: +#line 238 "src/wasm-ast-lexer.c" + { TYPE(I64); RETURN(VALUE_TYPE); } +#line 1640 "src/prebuilt/wasm-ast-lexer-gen.c" +yy167: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'e') goto yy218; + goto yy50; +yy168: yych = *++lexer->cursor; - if (yych != 'y') goto yy82; + if (yych == 'o') goto yy219; + goto yy50; +yy169: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if ((yych = *lexer->cursor) <= 'Z') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy49; + } else { + if (yych <= '"') goto yy170; + if (yych <= '&') goto yy49; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy49; + } else { + if (yych != ';') goto yy49; + } + } + } else { + if (yych <= 'i') { + if (yych <= '\\') { + if (yych >= '\\') goto yy49; + } else { + if (yych <= ']') goto yy170; + if (yych <= 'h') goto yy49; + goto yy220; + } + } else { + if (yych <= '|') { + if (yych != '{') goto yy49; + } else { + if (yych == '~') goto yy49; + } + } } -#line 418 "src/wasm-ast-lexer.c" - { RETURN(MEMORY); } -#line 1246 "src/prebuilt/wasm-ast-lexer-gen.c" -yy180: - yych = *++lexer->cursor; - if (yych == 'c') goto yy182; - if (yych != 'o') goto yy82; +yy170: +#line 226 "src/wasm-ast-lexer.c" + { LITERAL(INFINITY); RETURN(FLOAT); } +#line 1686 "src/prebuilt/wasm-ast-lexer-gen.c" +yy171: yych = *++lexer->cursor; - if (yych == 'p') goto yy186; - goto yy82; -yy182: + if (yych == 'o') goto yy221; + goto yy50; +yy172: yych = *++lexer->cursor; - if (yych != 'a') goto yy82; + if (yych == 'a') goto yy222; + goto yy50; +yy173: yych = *++lexer->cursor; - if (yych != 'l') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 416 "src/wasm-ast-lexer.c" - { RETURN(LOCAL); } -#line 1265 "src/prebuilt/wasm-ast-lexer-gen.c" -yy186: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 245 "src/wasm-ast-lexer.c" - { RETURN(LOOP); } -#line 1273 "src/prebuilt/wasm-ast-lexer-gen.c" -yy188: + if (yych == 'p') goto yy223; + goto yy50; +yy174: yych = *++lexer->cursor; - if (yych == '2') goto yy419; - goto yy82; -yy189: + if (yych == 'o') goto yy225; + goto yy50; +yy175: yych = *++lexer->cursor; - if (yych == '4') goto yy217; - goto yy82; -yy190: + if (yych == 'u') goto yy226; + goto yy50; +yy176: ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'Z') { + if ((yych = *lexer->cursor) <= ';') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy81; + if (yych >= '!') goto yy49; } else { - if (yych <= '"') goto yy191; - if (yych <= '&') goto yy81; + if (yych <= '"') goto yy177; + if (yych <= '&') goto yy49; } } else { if (yych <= ',') { - if (yych <= '+') goto yy81; + if (yych <= '+') goto yy49; } else { - if (yych != ';') goto yy81; + if (yych <= '9') goto yy49; + if (yych <= ':') goto yy227; } } } else { - if (yych <= '_') { - if (yych <= '\\') { - if (yych >= '\\') goto yy81; + if (yych <= 'z') { + if (yych <= '[') { + if (yych <= 'Z') goto yy49; } else { - if (yych <= ']') goto yy191; - if (yych <= '^') goto yy81; - goto yy211; + if (yych != ']') goto yy49; } } else { if (yych <= '|') { - if (yych != '{') goto yy81; + if (yych >= '|') goto yy49; } else { - if (yych == '~') goto yy81; + if (yych == '~') goto yy49; } } } -yy191: +yy177: +#line 227 "src/wasm-ast-lexer.c" + { LITERAL(NAN); RETURN(FLOAT); } +#line 1743 "src/prebuilt/wasm-ast-lexer-gen.c" +yy178: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } #line 241 "src/wasm-ast-lexer.c" - { RETURN(IF); } -#line 1319 "src/prebuilt/wasm-ast-lexer-gen.c" -yy192: - yych = *++lexer->cursor; - if (yych == 'p') goto yy206; - goto yy82; -yy193: + { RETURN(NOP); } +#line 1751 "src/prebuilt/wasm-ast-lexer-gen.c" +yy180: yych = *++lexer->cursor; - if (yych == 'f') goto yy194; - if (yych == 'v') goto yy195; - goto yy82; -yy194: + if (yych == 's') goto yy228; + goto yy50; +yy181: yych = *++lexer->cursor; - if (yych == 'i') goto yy200; - goto yy82; -yy195: + if (yych == 'a') goto yy229; + goto yy50; +yy182: yych = *++lexer->cursor; - if (yych != 'o') goto yy82; + if (yych == 'u') goto yy230; + goto yy50; +yy183: yych = *++lexer->cursor; - if (yych != 'k') goto yy82; + if (yych == 'u') goto yy231; + goto yy50; +yy184: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 428 "src/wasm-ast-lexer.c" - { RETURN(INVOKE); } -#line 1346 "src/prebuilt/wasm-ast-lexer-gen.c" -yy200: + if (yych == 'm') goto yy232; + goto yy50; +yy185: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == 'e') goto yy233; + goto yy50; +yy186: yych = *++lexer->cursor; - if (yych != 'i') goto yy82; + if (yych == '_') goto yy234; + goto yy50; +yy187: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'r') goto yy235; + goto yy50; +yy188: yych = *++lexer->cursor; - if (yych != 'y') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 224 "src/wasm-ast-lexer.c" - { LITERAL(INFINITY); RETURN(FLOAT); } -#line 1362 "src/prebuilt/wasm-ast-lexer-gen.c" -yy206: + if (yych == 'l') goto yy236; + goto yy50; +yy189: yych = *++lexer->cursor; - if (yych != 'o') goto yy82; + if (yych == 'n') goto yy237; + goto yy50; +yy190: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'e') goto yy239; + goto yy50; +yy191: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'e') goto yy241; + goto yy50; +yy192: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if ((lexer->limit - lexer->cursor) < 3) FILL(3); + yych = *lexer->cursor; + if (yych <= '@') { + if (yych <= ',') { + if (yych <= '"') { + if (yych == '!') goto yy49; + goto yy93; + } else { + if (yych <= '&') goto yy49; + if (yych <= ')') goto yy93; + if (yych <= '+') goto yy49; + goto yy93; + } + } else { + if (yych <= '/') { + if (yych != '.') goto yy49; + } else { + if (yych <= '9') goto yy192; + if (yych == ';') goto yy93; + goto yy49; + } + } + } else { + if (yych <= 'f') { + if (yych <= '[') { + if (yych <= 'F') goto yy192; + if (yych <= 'Z') goto yy49; + goto yy93; + } else { + if (yych == ']') goto yy93; + if (yych <= '`') goto yy49; + goto yy192; + } + } else { + if (yych <= '{') { + if (yych == 'p') goto yy196; + if (yych <= 'z') goto yy49; + goto yy93; + } else { + if (yych == '}') goto yy93; + if (yych <= '~') goto yy49; + goto yy93; + } + } } -#line 421 "src/wasm-ast-lexer.c" - { RETURN(IMPORT); } -#line 1376 "src/prebuilt/wasm-ast-lexer-gen.c" -yy211: +yy194: + ++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; + } else { + if (yych <= '&') goto yy49; + if (yych <= ')') goto yy51; + goto yy49; + } + } else { + if (yych <= '9') { + if (yych <= ',') goto yy51; + if (yych <= '/') goto yy49; + goto yy194; + } else { + if (yych == ';') goto yy51; + if (yych <= '@') goto yy49; + goto yy194; + } + } + } else { + if (yych <= 'o') { + if (yych <= '\\') { + if (yych == '[') goto yy51; + goto yy49; + } else { + if (yych <= ']') goto yy51; + if (yych <= '`') goto yy49; + if (yych <= 'f') goto yy194; + goto yy49; + } + } else { + if (yych <= '{') { + if (yych <= 'p') goto yy196; + if (yych <= 'z') goto yy49; + goto yy51; + } else { + if (yych == '}') goto yy51; + if (yych <= '~') goto yy49; + goto yy51; + } + } + } +yy196: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych <= ',') { + if (yych == '+') goto yy242; + goto yy50; + } else { + if (yych <= '-') goto yy242; + if (yych <= '/') goto yy50; + if (yych <= '9') goto yy243; + goto yy50; + } +yy197: yych = *++lexer->cursor; - if (yych != 'l') goto yy82; + if (yych == 'n') goto yy246; + goto yy50; +yy198: yych = *++lexer->cursor; - if (yych != 's') goto yy82; + if (yych == 'r') goto yy247; + goto yy50; +yy199: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 242 "src/wasm-ast-lexer.c" - { RETURN(IF); } -#line 1392 "src/prebuilt/wasm-ast-lexer-gen.c" -yy217: + if (yych == 'k') goto yy248; + goto yy50; +yy200: + yych = *++lexer->cursor; + if (yych == 'f') goto yy250; + goto yy50; +yy201: + yych = *++lexer->cursor; + if (yych == 'a') goto yy252; + goto yy50; +yy202: ++lexer->cursor; - if ((yych = *lexer->cursor) <= ':') { + if ((yych = *lexer->cursor) <= 'Z') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy81; + if (yych >= '!') goto yy49; } else { - if (yych <= '"') goto yy218; - if (yych <= '&') goto yy81; + if (yych <= '"') goto yy203; + if (yych <= '&') goto yy49; } } else { if (yych <= ',') { - if (yych <= '+') goto yy81; + if (yych <= '+') goto yy49; } else { - if (yych == '.') goto yy219; - goto yy81; + if (yych != ';') goto yy49; } } } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych >= '<') goto yy81; + if (yych <= '_') { + if (yych <= '\\') { + if (yych >= '\\') goto yy49; } else { - if (yych == '\\') goto yy81; + if (yych <= ']') goto yy203; + if (yych <= '^') goto yy49; + goto yy253; } } else { if (yych <= '|') { - if (yych != '{') goto yy81; + if (yych != '{') goto yy49; } else { - if (yych == '~') goto yy81; + if (yych == '~') goto yy49; } } } -yy218: -#line 236 "src/wasm-ast-lexer.c" - { TYPE(I64); RETURN(VALUE_TYPE); } -#line 1429 "src/prebuilt/wasm-ast-lexer-gen.c" -yy219: +yy203: +#line 252 "src/wasm-ast-lexer.c" + { RETURN(CALL); } +#line 1963 "src/prebuilt/wasm-ast-lexer-gen.c" +yy204: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 251 "src/wasm-ast-lexer.c" + { RETURN(CASE); } +#line 1971 "src/prebuilt/wasm-ast-lexer-gen.c" +yy206: + yych = *++lexer->cursor; + if (yych == 'e') goto yy254; + goto yy50; +yy207: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 246 "src/wasm-ast-lexer.c" + { RETURN(ELSE); } +#line 1983 "src/prebuilt/wasm-ast-lexer-gen.c" +yy209: + yych = *++lexer->cursor; + if (yych == 'r') goto yy255; + goto yy50; +yy210: yych = *++lexer->cursor; switch (yych) { - case 'a': goto yy225; - case 'c': goto yy222; - case 'd': goto yy227; - case 'e': goto yy223; - case 'g': goto yy232; - case 'l': goto yy220; - case 'm': goto yy226; - case 'n': goto yy231; - case 'o': goto yy229; - case 'p': goto yy224; - case 'r': goto yy228; - case 's': goto yy221; - case 't': goto yy233; - case 'x': goto yy230; - default: goto yy82; + case 'a': goto yy256; + case 'c': goto yy257; + case 'd': goto yy258; + case 'e': goto yy259; + case 'f': goto yy260; + case 'g': goto yy261; + case 'l': goto yy262; + case 'm': goto yy263; + case 'n': goto yy264; + case 'r': goto yy265; + case 's': goto yy266; + case 't': goto yy267; + default: goto yy50; } -yy220: +yy211: yych = *++lexer->cursor; - if (yych <= 'n') { - if (yych == 'e') goto yy383; - goto yy82; - } else { - if (yych <= 'o') goto yy384; - if (yych == 't') goto yy385; - goto yy82; + switch (yych) { + case 'a': goto yy268; + case 'c': goto yy269; + case 'd': goto yy270; + case 'e': goto yy271; + case 'f': goto yy272; + case 'g': goto yy273; + case 'l': goto yy274; + case 'm': goto yy275; + case 'n': goto yy276; + case 'p': goto yy277; + case 'r': goto yy278; + case 's': goto yy279; + case 't': goto yy280; + default: goto yy50; + } +yy212: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -yy221: +#line 415 "src/wasm-ast-lexer.c" + { RETURN(FUNC); } +#line 2030 "src/prebuilt/wasm-ast-lexer-gen.c" +yy214: yych = *++lexer->cursor; - if (yych <= 's') { - if (yych == 'h') goto yy358; - goto yy82; - } else { - if (yych <= 't') goto yy359; - if (yych <= 'u') goto yy360; - goto yy82; + if (yych == 'l') goto yy281; + goto yy50; +yy215: + yych = *++lexer->cursor; + if (yych == '_') goto yy282; + goto yy50; +yy216: + yych = *++lexer->cursor; + switch (yych) { + case 'a': goto yy283; + case 'c': goto yy284; + case 'd': goto yy285; + case 'e': goto yy286; + case 'g': goto yy287; + case 'l': goto yy288; + case 'm': goto yy289; + case 'n': goto yy290; + case 'o': goto yy291; + case 'p': goto yy292; + case 'r': goto yy293; + case 's': goto yy294; + case 't': goto yy295; + case 'w': goto yy296; + case 'x': goto yy297; + default: goto yy50; } -yy222: +yy217: yych = *++lexer->cursor; - if (yych <= 'n') { - if (yych == 'l') goto yy347; - goto yy82; - } else { - if (yych <= 'o') goto yy348; - if (yych == 't') goto yy349; - goto yy82; + switch (yych) { + case 'a': goto yy298; + case 'c': goto yy299; + case 'd': goto yy300; + case 'e': goto yy301; + case 'g': goto yy302; + case 'l': goto yy303; + case 'm': goto yy304; + case 'n': goto yy305; + case 'o': goto yy306; + case 'p': goto yy307; + case 'r': goto yy308; + case 's': goto yy309; + case 't': goto yy310; + case 'x': goto yy311; + default: goto yy50; } -yy223: +yy218: yych = *++lexer->cursor; - if (yych == 'q') goto yy325; - if (yych == 'x') goto yy327; - goto yy82; -yy224: + if (yych == 'l') goto yy312; + goto yy50; +yy219: yych = *++lexer->cursor; - if (yych == 'o') goto yy319; - goto yy82; -yy225: + if (yych == 'r') goto yy313; + goto yy50; +yy220: yych = *++lexer->cursor; - if (yych == 'd') goto yy313; if (yych == 'n') goto yy314; - goto yy82; + goto yy50; +yy221: + yych = *++lexer->cursor; + if (yych == 'k') goto yy315; + goto yy50; +yy222: + yych = *++lexer->cursor; + if (yych == 'l') goto yy316; + goto yy50; +yy223: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 247 "src/wasm-ast-lexer.c" + { RETURN(LOOP); } +#line 2105 "src/prebuilt/wasm-ast-lexer-gen.c" +yy225: + yych = *++lexer->cursor; + if (yych == 'r') goto yy318; + goto yy50; yy226: yych = *++lexer->cursor; - if (yych == 'u') goto yy310; - goto yy82; + if (yych == 'l') goto yy319; + goto yy50; yy227: yych = *++lexer->cursor; - if (yych == 'i') goto yy303; - goto yy82; + if (yych == '0') goto yy320; + goto yy50; yy228: yych = *++lexer->cursor; - if (yych == 'e') goto yy276; - if (yych == 'o') goto yy277; - goto yy82; + if (yych == 'e') goto yy321; + goto yy50; yy229: yych = *++lexer->cursor; - if (yych == 'r') goto yy274; - goto yy82; + if (yych == 'm') goto yy322; + goto yy50; yy230: yych = *++lexer->cursor; - if (yych == 'o') goto yy271; - goto yy82; + if (yych == 'l') goto yy324; + goto yy50; yy231: yych = *++lexer->cursor; - if (yych == 'e') goto yy269; - goto yy82; + if (yych == 'r') goto yy325; + goto yy50; yy232: yych = *++lexer->cursor; - if (yych == 'e') goto yy257; - if (yych == 't') goto yy258; - goto yy82; + if (yych == 'e') goto yy326; + goto yy50; yy233: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'c') goto yy327; + goto yy50; +yy234: yych = *++lexer->cursor; - if (yych != 'u') goto yy82; + if (yych == 'l') goto yy328; + goto yy50; +yy235: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == 't') goto yy329; + goto yy50; +yy236: yych = *++lexer->cursor; - if (yych != 'c') goto yy82; - yych = *++lexer->cursor; - if (yych != '_') goto yy82; - yych = *++lexer->cursor; - if (yych == 's') goto yy239; - if (yych == 'u') goto yy240; - goto yy82; + if (yych == 'e') goto yy331; + goto yy50; +yy237: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 245 "src/wasm-ast-lexer.c" + { RETURN(THEN); } +#line 2161 "src/prebuilt/wasm-ast-lexer-gen.c" yy239: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 414 "src/wasm-ast-lexer.c" + { RETURN(TYPE); } +#line 2169 "src/prebuilt/wasm-ast-lexer-gen.c" +yy241: yych = *++lexer->cursor; - if (yych == '/') goto yy249; - goto yy82; -yy240: - yych = *++lexer->cursor; - if (yych != '/') goto yy82; - yych = *++lexer->cursor; - if (yych != 'f') goto yy82; + if (yych == 'a') goto yy333; + goto yy50; +yy242: yych = *++lexer->cursor; - if (yych == '3') goto yy243; - if (yych == '6') goto yy244; - goto yy82; + if (yych <= '/') goto yy50; + if (yych >= ':') goto yy50; yy243: + ++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 yy245; + if (yych <= '&') goto yy49; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy49; + } else { + if (yych <= '/') goto yy49; + if (yych <= '9') goto yy243; + 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; + } + } + } +yy245: +#line 225 "src/wasm-ast-lexer.c" + { LITERAL(HEXFLOAT); RETURN(FLOAT); } +#line 2217 "src/prebuilt/wasm-ast-lexer-gen.c" +yy246: yych = *++lexer->cursor; - if (yych == '2') goto yy247; - goto yy82; -yy244: + if (yych == '=') goto yy334; + goto yy50; +yy247: yych = *++lexer->cursor; - if (yych != '4') goto yy82; + if (yych == 't') goto yy335; + goto yy50; +yy248: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 393 "src/wasm-ast-lexer.c" - { OPCODE(I64_TRUNC_U_F64); RETURN(CONVERT); } -#line 1564 "src/prebuilt/wasm-ast-lexer-gen.c" -yy247: +#line 242 "src/wasm-ast-lexer.c" + { RETURN(BLOCK); } +#line 2233 "src/prebuilt/wasm-ast-lexer-gen.c" +yy250: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 391 "src/wasm-ast-lexer.c" - { OPCODE(I64_TRUNC_U_F32); RETURN(CONVERT); } -#line 1572 "src/prebuilt/wasm-ast-lexer-gen.c" -yy249: - yych = *++lexer->cursor; - if (yych != 'f') goto yy82; +#line 249 "src/wasm-ast-lexer.c" + { RETURN(BR_IF); } +#line 2241 "src/prebuilt/wasm-ast-lexer-gen.c" +yy252: yych = *++lexer->cursor; - if (yych == '3') goto yy251; - if (yych == '6') goto yy252; - goto yy82; -yy251: + if (yych == 'b') goto yy336; + goto yy50; +yy253: yych = *++lexer->cursor; - if (yych == '2') goto yy255; - goto yy82; -yy252: + if (yych == 'i') goto yy337; + goto yy50; +yy254: yych = *++lexer->cursor; - if (yych != '4') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 389 "src/wasm-ast-lexer.c" - { OPCODE(I64_TRUNC_S_F64); RETURN(CONVERT); } -#line 1593 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 'n') goto yy338; + goto yy50; yy255: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 387 "src/wasm-ast-lexer.c" - { OPCODE(I64_TRUNC_S_F32); RETURN(CONVERT); } -#line 1601 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 't') goto yy339; + goto yy50; +yy256: + yych = *++lexer->cursor; + if (yych == 'b') goto yy341; + if (yych == 'd') goto yy342; + goto yy50; yy257: yych = *++lexer->cursor; - if (yych == '_') goto yy264; - goto yy82; + if (yych == 'e') goto yy343; + if (yych == 'o') goto yy344; + goto yy50; yy258: yych = *++lexer->cursor; - if (yych != '_') goto yy82; + if (yych == 'e') goto yy345; + if (yych == 'i') goto yy346; + goto yy50; +yy259: yych = *++lexer->cursor; - if (yych == 's') goto yy260; - if (yych == 'u') goto yy262; - goto yy82; + if (yych == 'q') goto yy347; + goto yy50; yy260: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 364 "src/wasm-ast-lexer.c" - { OPCODE(I64_GT_S); RETURN(COMPARE); } -#line 1620 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'l') goto yy349; + goto yy50; +yy261: + yych = *++lexer->cursor; + if (yych == 'e') goto yy350; + if (yych == 't') goto yy352; + goto yy50; yy262: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + yych = *++lexer->cursor; + if (yych <= 'n') { + if (yych == 'e') goto yy354; + goto yy50; + } else { + if (yych <= 'o') goto yy356; + if (yych == 't') goto yy357; + goto yy50; + } +yy263: + yych = *++lexer->cursor; + if (yych <= 'h') { + if (yych == 'a') goto yy359; + goto yy50; + } else { + if (yych <= 'i') goto yy360; + if (yych == 'u') goto yy361; + goto yy50; } -#line 366 "src/wasm-ast-lexer.c" - { OPCODE(I64_GT_U); RETURN(COMPARE); } -#line 1628 "src/prebuilt/wasm-ast-lexer-gen.c" yy264: yych = *++lexer->cursor; - if (yych == 's') goto yy265; - if (yych == 'u') goto yy267; - goto yy82; + if (yych == 'e') goto yy362; + goto yy50; yy265: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + yych = *++lexer->cursor; + if (yych == 'e') goto yy364; + goto yy50; +yy266: + yych = *++lexer->cursor; + if (yych <= 's') { + if (yych == 'q') goto yy365; + goto yy50; + } else { + if (yych <= 't') goto yy366; + if (yych <= 'u') goto yy367; + goto yy50; } -#line 368 "src/wasm-ast-lexer.c" - { OPCODE(I64_GE_S); RETURN(COMPARE); } -#line 1641 "src/prebuilt/wasm-ast-lexer-gen.c" yy267: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 370 "src/wasm-ast-lexer.c" - { OPCODE(I64_GE_U); RETURN(COMPARE); } -#line 1649 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'r') goto yy368; + goto yy50; +yy268: + yych = *++lexer->cursor; + if (yych == 'b') goto yy369; + if (yych == 'd') goto yy370; + goto yy50; yy269: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 354 "src/wasm-ast-lexer.c" - { OPCODE(I64_NE); RETURN(COMPARE); } -#line 1657 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'e') goto yy371; + if (yych == 'o') goto yy372; + goto yy50; +yy270: + yych = *++lexer->cursor; + if (yych == 'i') goto yy373; + goto yy50; yy271: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 326 "src/wasm-ast-lexer.c" - { OPCODE(I64_XOR); RETURN(BINARY); } -#line 1667 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 'q') goto yy374; + goto yy50; +yy272: + yych = *++lexer->cursor; + if (yych == 'l') goto yy376; + goto yy50; +yy273: + yych = *++lexer->cursor; + if (yych == 'e') goto yy377; + if (yych == 't') goto yy379; + goto yy50; yy274: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + yych = *++lexer->cursor; + if (yych <= 'n') { + if (yych == 'e') goto yy381; + goto yy50; + } else { + if (yych <= 'o') goto yy383; + if (yych == 't') goto yy384; + goto yy50; + } +yy275: + yych = *++lexer->cursor; + if (yych <= 'h') { + if (yych == 'a') goto yy386; + goto yy50; + } else { + if (yych <= 'i') goto yy387; + if (yych == 'u') goto yy388; + goto yy50; } -#line 324 "src/wasm-ast-lexer.c" - { OPCODE(I64_OR); RETURN(BINARY); } -#line 1675 "src/prebuilt/wasm-ast-lexer-gen.c" yy276: yych = *++lexer->cursor; - if (yych == 'i') goto yy284; - if (yych == 'm') goto yy283; - goto yy82; + if (yych == 'e') goto yy389; + goto yy50; yy277: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'r') goto yy391; + goto yy50; +yy278: yych = *++lexer->cursor; - if (yych == 'l') goto yy279; - if (yych == 'r') goto yy281; - goto yy82; + if (yych == 'e') goto yy392; + goto yy50; yy279: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + yych = *++lexer->cursor; + if (yych <= 's') { + if (yych == 'q') goto yy393; + goto yy50; + } else { + if (yych <= 't') goto yy394; + if (yych <= 'u') goto yy395; + goto yy50; } -#line 334 "src/wasm-ast-lexer.c" - { OPCODE(I64_ROTL); RETURN(BINARY); } -#line 1695 "src/prebuilt/wasm-ast-lexer-gen.c" +yy280: + yych = *++lexer->cursor; + if (yych == 'r') goto yy396; + goto yy50; yy281: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 336 "src/wasm-ast-lexer.c" - { OPCODE(I64_ROTR); RETURN(BINARY); } -#line 1703 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'o') goto yy397; + goto yy50; +yy282: + yych = *++lexer->cursor; + if (yych == 'm') goto yy398; + goto yy50; yy283: yych = *++lexer->cursor; - if (yych == '_') goto yy298; - goto yy82; + if (yych == 'd') goto yy399; + if (yych == 'n') goto yy400; + goto yy50; yy284: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; - yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych <= 'n') { + if (yych == 'l') goto yy401; + goto yy50; + } else { + if (yych <= 'o') goto yy402; + if (yych == 't') goto yy403; + goto yy50; + } +yy285: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'i') goto yy404; + goto yy50; +yy286: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'q') goto yy405; + goto yy50; +yy287: yych = *++lexer->cursor; - if (yych != 'p') goto yy82; + if (yych == 'e') goto yy407; + if (yych == 't') goto yy408; + goto yy50; +yy288: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych <= 'n') { + if (yych == 'e') goto yy409; + goto yy50; + } else { + if (yych <= 'o') goto yy410; + if (yych == 't') goto yy411; + goto yy50; + } +yy289: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'u') goto yy412; + goto yy50; +yy290: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'e') goto yy413; + goto yy50; +yy291: yych = *++lexer->cursor; - if (yych != '/') goto yy82; + if (yych == 'r') goto yy415; + goto yy50; +yy292: yych = *++lexer->cursor; - if (yych != 'f') goto yy82; + if (yych == 'o') goto yy417; + goto yy50; +yy293: yych = *++lexer->cursor; - if (yych != '6') goto yy82; + if (yych == 'e') goto yy418; + if (yych == 'o') goto yy419; + goto yy50; +yy294: yych = *++lexer->cursor; - if (yych != '4') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yych <= 's') { + if (yych == 'h') goto yy420; + goto yy50; + } else { + if (yych <= 't') goto yy421; + if (yych <= 'u') goto yy422; + goto yy50; } -#line 407 "src/wasm-ast-lexer.c" - { OPCODE(I64_REINTERPRET_F64); RETURN(CONVERT); } -#line 1739 "src/prebuilt/wasm-ast-lexer-gen.c" +yy295: + yych = *++lexer->cursor; + if (yych == 'r') goto yy423; + goto yy50; +yy296: + yych = *++lexer->cursor; + if (yych == 'r') goto yy424; + goto yy50; +yy297: + yych = *++lexer->cursor; + if (yych == 'o') goto yy425; + goto yy50; yy298: yych = *++lexer->cursor; - if (yych == 's') goto yy299; - if (yych == 'u') goto yy301; - goto yy82; + if (yych == 'd') goto yy426; + if (yych == 'n') goto yy427; + goto yy50; yy299: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + yych = *++lexer->cursor; + if (yych <= 'n') { + if (yych == 'l') goto yy428; + goto yy50; + } else { + if (yych <= 'o') goto yy429; + if (yych == 't') goto yy430; + goto yy50; } -#line 318 "src/wasm-ast-lexer.c" - { OPCODE(I64_REM_S); RETURN(BINARY); } -#line 1752 "src/prebuilt/wasm-ast-lexer-gen.c" +yy300: + yych = *++lexer->cursor; + if (yych == 'i') goto yy431; + goto yy50; yy301: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 320 "src/wasm-ast-lexer.c" - { OPCODE(I64_REM_U); RETURN(BINARY); } -#line 1760 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'q') goto yy432; + if (yych == 'x') goto yy434; + goto yy50; +yy302: + yych = *++lexer->cursor; + if (yych == 'e') goto yy435; + if (yych == 't') goto yy436; + goto yy50; yy303: yych = *++lexer->cursor; - if (yych != 'v') goto yy82; + if (yych <= 'n') { + if (yych == 'e') goto yy437; + goto yy50; + } else { + if (yych <= 'o') goto yy438; + if (yych == 't') goto yy439; + goto yy50; + } +yy304: yych = *++lexer->cursor; - if (yych != '_') goto yy82; + if (yych == 'u') goto yy440; + goto yy50; +yy305: yych = *++lexer->cursor; - if (yych == 's') goto yy306; - if (yych == 'u') goto yy308; - goto yy82; + if (yych == 'e') goto yy441; + goto yy50; yy306: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 314 "src/wasm-ast-lexer.c" - { OPCODE(I64_DIV_S); RETURN(BINARY); } -#line 1777 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'r') goto yy443; + goto yy50; +yy307: + yych = *++lexer->cursor; + if (yych == 'o') goto yy445; + goto yy50; yy308: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + yych = *++lexer->cursor; + if (yych == 'e') goto yy446; + if (yych == 'o') goto yy447; + goto yy50; +yy309: + yych = *++lexer->cursor; + if (yych <= 's') { + if (yych == 'h') goto yy448; + goto yy50; + } else { + if (yych <= 't') goto yy449; + if (yych <= 'u') goto yy450; + goto yy50; } -#line 316 "src/wasm-ast-lexer.c" - { OPCODE(I64_DIV_U); RETURN(BINARY); } -#line 1785 "src/prebuilt/wasm-ast-lexer-gen.c" yy310: yych = *++lexer->cursor; - if (yych != 'l') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 312 "src/wasm-ast-lexer.c" - { OPCODE(I64_MUL); RETURN(BINARY); } -#line 1795 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 'r') goto yy451; + goto yy50; +yy311: + yych = *++lexer->cursor; + if (yych == 'o') goto yy452; + goto yy50; +yy312: + yych = *++lexer->cursor; + if (yych == 's') goto yy453; + goto yy50; yy313: yych = *++lexer->cursor; - if (yych == 'd') goto yy317; - goto yy82; + if (yych == 't') goto yy454; + goto yy50; yy314: yych = *++lexer->cursor; - if (yych != 'd') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 322 "src/wasm-ast-lexer.c" - { OPCODE(I64_AND); RETURN(BINARY); } -#line 1809 "src/prebuilt/wasm-ast-lexer-gen.c" -yy317: + if (yych == 'i') goto yy456; + goto yy50; +yy315: + yych = *++lexer->cursor; + if (yych == 'e') goto yy457; + goto yy50; +yy316: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 308 "src/wasm-ast-lexer.c" - { OPCODE(I64_ADD); RETURN(BINARY); } -#line 1817 "src/prebuilt/wasm-ast-lexer-gen.c" -yy319: +#line 418 "src/wasm-ast-lexer.c" + { RETURN(LOCAL); } +#line 2591 "src/prebuilt/wasm-ast-lexer-gen.c" +yy318: yych = *++lexer->cursor; - if (yych != 'p') goto yy82; + if (yych == 'y') goto yy459; + goto yy50; +yy319: yych = *++lexer->cursor; - if (yych != 'c') goto yy82; + if (yych == 'e') goto yy461; + goto yy50; +yy320: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == 'x') goto yy463; + goto yy50; +yy321: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 't') goto yy464; + goto yy50; +yy322: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 292 "src/wasm-ast-lexer.c" - { OPCODE(I64_POPCNT); RETURN(UNARY); } -#line 1833 "src/prebuilt/wasm-ast-lexer-gen.c" -yy325: - ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'Z') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy81; - } else { - if (yych <= '"') goto yy326; - if (yych <= '&') goto yy81; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy81; - } else { - if (yych != ';') goto yy81; - } - } - } else { - if (yych <= 'z') { - if (yych <= '\\') { - if (yych >= '\\') goto yy81; - } else { - if (yych <= ']') goto yy326; - if (yych <= 'y') goto yy81; - goto yy345; - } - } else { - if (yych <= '|') { - if (yych >= '|') goto yy81; - } else { - if (yych == '~') goto yy81; - } - } - } -yy326: -#line 352 "src/wasm-ast-lexer.c" - { OPCODE(I64_EQ); RETURN(COMPARE); } -#line 1871 "src/prebuilt/wasm-ast-lexer-gen.c" -yy327: - yych = *++lexer->cursor; - if (yych != 't') goto yy82; +#line 416 "src/wasm-ast-lexer.c" + { RETURN(PARAM); } +#line 2615 "src/prebuilt/wasm-ast-lexer-gen.c" +yy324: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 't') goto yy465; + goto yy50; +yy325: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == 'n') goto yy467; + goto yy50; +yy326: yych = *++lexer->cursor; - if (yych != 'd') goto yy82; + if (yych == 'n') goto yy469; + goto yy50; +yy327: yych = *++lexer->cursor; - if (yych != '_') goto yy82; + if (yych == 't') goto yy470; + goto yy50; +yy328: yych = *++lexer->cursor; - if (yych == 's') goto yy333; - if (yych == 'u') goto yy334; - goto yy82; + if (yych == 'o') goto yy472; + goto yy50; +yy329: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 422 "src/wasm-ast-lexer.c" + { RETURN(START); } +#line 2643 "src/prebuilt/wasm-ast-lexer-gen.c" +yy331: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 425 "src/wasm-ast-lexer.c" + { RETURN(TABLE); } +#line 2651 "src/prebuilt/wasm-ast-lexer-gen.c" yy333: yych = *++lexer->cursor; - if (yych == '/') goto yy340; - goto yy82; + if (yych == 'c') goto yy473; + goto yy50; yy334: yych = *++lexer->cursor; - if (yych != '/') goto yy82; + if (yych <= '/') goto yy50; + if (yych <= '9') goto yy474; + goto yy50; +yy335: yych = *++lexer->cursor; - if (yych != 'i') goto yy82; + if (yych == '_') goto yy477; + goto yy50; +yy336: yych = *++lexer->cursor; - if (yych != '3') goto yy82; + if (yych == 'l') goto yy478; + goto yy50; +yy337: yych = *++lexer->cursor; - if (yych != '2') goto yy82; + if (yych <= 'l') goto yy50; + if (yych <= 'm') goto yy479; + if (yych <= 'n') goto yy480; + goto yy50; +yy338: + yych = *++lexer->cursor; + if (yych == 't') goto yy481; + goto yy50; +yy339: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 384 "src/wasm-ast-lexer.c" - { OPCODE(I64_EXTEND_U_I32); RETURN(CONVERT); } -#line 1906 "src/prebuilt/wasm-ast-lexer-gen.c" -yy340: +#line 424 "src/wasm-ast-lexer.c" + { RETURN(EXPORT); } +#line 2686 "src/prebuilt/wasm-ast-lexer-gen.c" +yy341: yych = *++lexer->cursor; - if (yych != 'i') goto yy82; + if (yych == 's') goto yy482; + goto yy50; +yy342: yych = *++lexer->cursor; - if (yych != '3') goto yy82; + if (yych == 'd') goto yy484; + goto yy50; +yy343: yych = *++lexer->cursor; - if (yych != '2') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 383 "src/wasm-ast-lexer.c" - { OPCODE(I64_EXTEND_S_I32); RETURN(CONVERT); } -#line 1920 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 'i') goto yy486; + goto yy50; +yy344: + yych = *++lexer->cursor; + if (yych == 'n') goto yy487; + if (yych == 'p') goto yy488; + goto yy50; yy345: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 286 "src/wasm-ast-lexer.c" - { OPCODE(I64_EQZ); RETURN(CONVERT); } -#line 1928 "src/prebuilt/wasm-ast-lexer-gen.c" -yy347: yych = *++lexer->cursor; - if (yych == 'z') goto yy356; - goto yy82; -yy348: + if (yych == 'm') goto yy489; + goto yy50; +yy346: yych = *++lexer->cursor; - if (yych == 'n') goto yy352; - goto yy82; + if (yych == 'v') goto yy490; + goto yy50; +yy347: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 373 "src/wasm-ast-lexer.c" + { OPCODE(F32_EQ); RETURN(COMPARE); } +#line 2719 "src/prebuilt/wasm-ast-lexer-gen.c" yy349: yych = *++lexer->cursor; - if (yych != 'z') goto yy82; + if (yych == 'o') goto yy492; + goto yy50; +yy350: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 290 "src/wasm-ast-lexer.c" - { OPCODE(I64_CTZ); RETURN(UNARY); } -#line 1946 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 383 "src/wasm-ast-lexer.c" + { OPCODE(F32_GE); RETURN(COMPARE); } +#line 2731 "src/prebuilt/wasm-ast-lexer-gen.c" yy352: - yych = *++lexer->cursor; - if (yych != 's') goto yy82; - yych = *++lexer->cursor; - if (yych != 't') goto yy82; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 282 "src/wasm-ast-lexer.c" - { TYPE(I64); RETURN(CONST); } -#line 1958 "src/prebuilt/wasm-ast-lexer-gen.c" -yy356: +#line 381 "src/wasm-ast-lexer.c" + { OPCODE(F32_GT); RETURN(COMPARE); } +#line 2739 "src/prebuilt/wasm-ast-lexer-gen.c" +yy354: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 288 "src/wasm-ast-lexer.c" - { OPCODE(I64_CLZ); RETURN(UNARY); } -#line 1966 "src/prebuilt/wasm-ast-lexer-gen.c" -yy358: +#line 379 "src/wasm-ast-lexer.c" + { OPCODE(F32_LE); RETURN(COMPARE); } +#line 2747 "src/prebuilt/wasm-ast-lexer-gen.c" +yy356: yych = *++lexer->cursor; - if (yych == 'l') goto yy375; - if (yych == 'r') goto yy377; - goto yy82; + if (yych == 'a') goto yy493; + goto yy50; +yy357: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 377 "src/wasm-ast-lexer.c" + { OPCODE(F32_LT); RETURN(COMPARE); } +#line 2759 "src/prebuilt/wasm-ast-lexer-gen.c" yy359: yych = *++lexer->cursor; - if (yych == 'o') goto yy363; - goto yy82; + if (yych == 'x') goto yy494; + goto yy50; yy360: yych = *++lexer->cursor; - if (yych != 'b') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 310 "src/wasm-ast-lexer.c" - { OPCODE(I64_SUB); RETURN(BINARY); } -#line 1985 "src/prebuilt/wasm-ast-lexer-gen.c" -yy363: - yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'n') goto yy496; + goto yy50; +yy361: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'l') goto yy498; + goto yy50; +yy362: ++lexer->cursor; - if ((yych = *lexer->cursor) <= '7') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy81; + if ((yych = *lexer->cursor) <= '[') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy49; } else { - if (yych <= '&') goto yy81; - if (yych >= '*') goto yy81; + if (yych <= '"') goto yy363; + if (yych <= '&') goto yy49; } } else { - if (yych <= '1') { - if (yych <= ',') goto yy366; - if (yych <= '0') goto yy81; - goto yy367; + if (yych <= ':') { + if (yych != ',') goto yy49; } else { - if (yych == '3') goto yy368; - goto yy81; + if (yych <= ';') goto yy363; + if (yych <= 'Z') goto yy49; } } } else { - if (yych <= '\\') { - if (yych <= ';') { - if (yych <= '8') goto yy369; - if (yych <= ':') goto yy81; + if (yych <= 'g') { + if (yych <= '`') { + if (yych != ']') goto yy49; } else { - if (yych != '[') goto yy81; + if (yych <= 'a') goto yy500; + if (yych <= 'f') goto yy49; + goto yy501; } } else { - if (yych <= '{') { - if (yych <= ']') goto yy366; - if (yych <= 'z') goto yy81; + if (yych <= '|') { + if (yych != '{') goto yy49; } else { - if (yych == '}') goto yy366; - if (yych <= '~') goto yy81; + if (yych == '~') goto yy49; } } } +yy363: +#line 375 "src/wasm-ast-lexer.c" + { OPCODE(F32_NE); RETURN(COMPARE); } +#line 2810 "src/prebuilt/wasm-ast-lexer-gen.c" +yy364: + yych = *++lexer->cursor; + if (yych == 'i') goto yy503; + goto yy50; +yy365: + yych = *++lexer->cursor; + if (yych == 'r') goto yy504; + goto yy50; yy366: -#line 261 "src/wasm-ast-lexer.c" - { OPCODE(I64_STORE); RETURN(STORE); } -#line 2031 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'o') goto yy505; + goto yy50; yy367: yych = *++lexer->cursor; - if (yych == '6') goto yy373; - goto yy82; + if (yych == 'b') goto yy506; + goto yy50; yy368: yych = *++lexer->cursor; - if (yych == '2') goto yy371; - goto yy82; + if (yych == 'u') goto yy508; + goto yy50; yy369: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 275 "src/wasm-ast-lexer.c" - { OPCODE(I64_STORE8); RETURN(STORE); } -#line 2047 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 's') goto yy509; + goto yy50; +yy370: + yych = *++lexer->cursor; + if (yych == 'd') goto yy511; + goto yy50; yy371: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 278 "src/wasm-ast-lexer.c" - { OPCODE(I64_STORE32); RETURN(STORE); } -#line 2055 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'i') goto yy513; + goto yy50; +yy372: + yych = *++lexer->cursor; + if (yych == 'n') goto yy514; + if (yych == 'p') goto yy515; + goto yy50; yy373: + yych = *++lexer->cursor; + if (yych == 'v') goto yy516; + goto yy50; +yy374: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 277 "src/wasm-ast-lexer.c" - { OPCODE(I64_STORE16); RETURN(STORE); } -#line 2063 "src/prebuilt/wasm-ast-lexer-gen.c" -yy375: +#line 374 "src/wasm-ast-lexer.c" + { OPCODE(F64_EQ); RETURN(COMPARE); } +#line 2859 "src/prebuilt/wasm-ast-lexer-gen.c" +yy376: + yych = *++lexer->cursor; + if (yych == 'o') goto yy518; + goto yy50; +yy377: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 328 "src/wasm-ast-lexer.c" - { OPCODE(I64_SHL); RETURN(BINARY); } -#line 2071 "src/prebuilt/wasm-ast-lexer-gen.c" -yy377: - yych = *++lexer->cursor; - if (yych != '_') goto yy82; - yych = *++lexer->cursor; - if (yych == 's') goto yy379; - if (yych == 'u') goto yy381; - goto yy82; +#line 384 "src/wasm-ast-lexer.c" + { OPCODE(F64_GE); RETURN(COMPARE); } +#line 2871 "src/prebuilt/wasm-ast-lexer-gen.c" yy379: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 330 "src/wasm-ast-lexer.c" - { OPCODE(I64_SHR_S); RETURN(BINARY); } -#line 2086 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 382 "src/wasm-ast-lexer.c" + { OPCODE(F64_GT); RETURN(COMPARE); } +#line 2879 "src/prebuilt/wasm-ast-lexer-gen.c" yy381: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 332 "src/wasm-ast-lexer.c" - { OPCODE(I64_SHR_U); RETURN(BINARY); } -#line 2094 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 380 "src/wasm-ast-lexer.c" + { OPCODE(F64_LE); RETURN(COMPARE); } +#line 2887 "src/prebuilt/wasm-ast-lexer-gen.c" yy383: yych = *++lexer->cursor; - if (yych == '_') goto yy414; - goto yy82; + if (yych == 'a') goto yy519; + goto yy50; yy384: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 378 "src/wasm-ast-lexer.c" + { OPCODE(F64_LT); RETURN(COMPARE); } +#line 2899 "src/prebuilt/wasm-ast-lexer-gen.c" +yy386: yych = *++lexer->cursor; - if (yych == 'a') goto yy391; - goto yy82; -yy385: + if (yych == 'x') goto yy520; + goto yy50; +yy387: yych = *++lexer->cursor; - if (yych != '_') goto yy82; + if (yych == 'n') goto yy522; + goto yy50; +yy388: yych = *++lexer->cursor; - if (yych == 's') goto yy387; - if (yych == 'u') goto yy389; - goto yy82; -yy387: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 356 "src/wasm-ast-lexer.c" - { OPCODE(I64_LT_S); RETURN(COMPARE); } -#line 2117 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 'l') goto yy524; + goto yy50; yy389: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 358 "src/wasm-ast-lexer.c" - { OPCODE(I64_LT_U); RETURN(COMPARE); } -#line 2125 "src/prebuilt/wasm-ast-lexer-gen.c" -yy391: - yych = *++lexer->cursor; - if (yych != 'd') goto yy82; - ++lexer->cursor; - if ((yych = *lexer->cursor) <= '7') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy81; + if ((yych = *lexer->cursor) <= '[') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy49; } else { - if (yych <= '&') goto yy81; - if (yych >= '*') goto yy81; + if (yych <= '"') goto yy390; + if (yych <= '&') goto yy49; } } else { - if (yych <= '1') { - if (yych <= ',') goto yy393; - if (yych <= '0') goto yy81; - goto yy395; + if (yych <= ':') { + if (yych != ',') goto yy49; } else { - if (yych == '3') goto yy396; - goto yy81; + if (yych <= ';') goto yy390; + if (yych <= 'Z') goto yy49; } } } else { - if (yych <= '\\') { - if (yych <= ';') { - if (yych <= '8') goto yy394; - if (yych <= ':') goto yy81; + if (yych <= 'g') { + if (yych <= '`') { + if (yych != ']') goto yy49; } else { - if (yych != '[') goto yy81; + if (yych <= 'a') goto yy526; + if (yych <= 'f') goto yy49; + goto yy527; } } else { - if (yych <= '{') { - if (yych <= ']') goto yy393; - if (yych <= 'z') goto yy81; + if (yych <= '|') { + if (yych != '{') goto yy49; } else { - if (yych == '}') goto yy393; - if (yych <= '~') goto yy81; + if (yych == '~') goto yy49; } } } +yy390: +#line 376 "src/wasm-ast-lexer.c" + { OPCODE(F64_NE); RETURN(COMPARE); } +#line 2950 "src/prebuilt/wasm-ast-lexer-gen.c" +yy391: + yych = *++lexer->cursor; + if (yych == 'o') goto yy529; + goto yy50; +yy392: + yych = *++lexer->cursor; + if (yych == 'i') goto yy530; + goto yy50; yy393: -#line 257 "src/wasm-ast-lexer.c" - { OPCODE(I64_LOAD); RETURN(LOAD); } -#line 2169 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'r') goto yy531; + goto yy50; yy394: yych = *++lexer->cursor; - if (yych == '_') goto yy409; - goto yy82; + if (yych == 'o') goto yy532; + goto yy50; yy395: yych = *++lexer->cursor; - if (yych == '6') goto yy403; - goto yy82; + if (yych == 'b') goto yy533; + goto yy50; yy396: yych = *++lexer->cursor; - if (yych != '2') goto yy82; + if (yych == 'u') goto yy535; + goto yy50; +yy397: yych = *++lexer->cursor; - if (yych != '_') goto yy82; + if (yych == 'c') goto yy536; + goto yy50; +yy398: yych = *++lexer->cursor; - if (yych == 's') goto yy399; - if (yych == 'u') goto yy401; - goto yy82; + if (yych == 'e') goto yy537; + goto yy50; yy399: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 272 "src/wasm-ast-lexer.c" - { OPCODE(I64_LOAD32_S); RETURN(LOAD); } -#line 2194 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'd') goto yy538; + goto yy50; +yy400: + yych = *++lexer->cursor; + if (yych == 'd') goto yy540; + goto yy50; yy401: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 273 "src/wasm-ast-lexer.c" - { OPCODE(I64_LOAD32_U); RETURN(LOAD); } -#line 2202 "src/prebuilt/wasm-ast-lexer-gen.c" -yy403: yych = *++lexer->cursor; - if (yych != '_') goto yy82; + if (yych == 'z') goto yy542; + goto yy50; +yy402: yych = *++lexer->cursor; - if (yych == 's') goto yy405; - if (yych == 'u') goto yy407; - goto yy82; -yy405: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 269 "src/wasm-ast-lexer.c" - { OPCODE(I64_LOAD16_S); RETURN(LOAD); } -#line 2217 "src/prebuilt/wasm-ast-lexer-gen.c" -yy407: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 271 "src/wasm-ast-lexer.c" - { OPCODE(I64_LOAD16_U); RETURN(LOAD); } -#line 2225 "src/prebuilt/wasm-ast-lexer-gen.c" -yy409: + if (yych == 'n') goto yy544; + goto yy50; +yy403: yych = *++lexer->cursor; - if (yych == 's') goto yy410; - if (yych == 'u') goto yy412; - goto yy82; -yy410: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 265 "src/wasm-ast-lexer.c" - { OPCODE(I64_LOAD8_S); RETURN(LOAD); } -#line 2238 "src/prebuilt/wasm-ast-lexer-gen.c" -yy412: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 267 "src/wasm-ast-lexer.c" - { OPCODE(I64_LOAD8_U); RETURN(LOAD); } -#line 2246 "src/prebuilt/wasm-ast-lexer-gen.c" -yy414: + if (yych == 'z') goto yy545; + goto yy50; +yy404: yych = *++lexer->cursor; - if (yych == 's') goto yy415; - if (yych == 'u') goto yy417; - goto yy82; -yy415: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 360 "src/wasm-ast-lexer.c" - { OPCODE(I64_LE_S); RETURN(COMPARE); } -#line 2259 "src/prebuilt/wasm-ast-lexer-gen.c" -yy417: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 362 "src/wasm-ast-lexer.c" - { OPCODE(I64_LE_U); RETURN(COMPARE); } -#line 2267 "src/prebuilt/wasm-ast-lexer-gen.c" -yy419: + if (yych == 'v') goto yy547; + goto yy50; +yy405: ++lexer->cursor; - if ((yych = *lexer->cursor) <= ':') { + if ((yych = *lexer->cursor) <= 'Z') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy81; + if (yych >= '!') goto yy49; } else { - if (yych <= '"') goto yy420; - if (yych <= '&') goto yy81; + if (yych <= '"') goto yy406; + if (yych <= '&') goto yy49; } } else { if (yych <= ',') { - if (yych <= '+') goto yy81; + if (yych <= '+') goto yy49; } else { - if (yych == '.') goto yy421; - goto yy81; + if (yych != ';') goto yy49; } } } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych >= '<') goto yy81; + if (yych <= 'z') { + if (yych <= '\\') { + if (yych >= '\\') goto yy49; } else { - if (yych == '\\') goto yy81; + if (yych <= ']') goto yy406; + if (yych <= 'y') goto yy49; + goto yy548; } } else { if (yych <= '|') { - if (yych != '{') goto yy81; + if (yych >= '|') goto yy49; } else { - if (yych == '~') goto yy81; + if (yych == '~') goto yy49; } } } +yy406: +#line 353 "src/wasm-ast-lexer.c" + { OPCODE(I32_EQ); RETURN(COMPARE); } +#line 3044 "src/prebuilt/wasm-ast-lexer-gen.c" +yy407: + yych = *++lexer->cursor; + if (yych == '_') goto yy550; + goto yy50; +yy408: + yych = *++lexer->cursor; + if (yych == '_') goto yy551; + goto yy50; +yy409: + yych = *++lexer->cursor; + if (yych == '_') goto yy552; + goto yy50; +yy410: + yych = *++lexer->cursor; + if (yych == 'a') goto yy553; + goto yy50; +yy411: + yych = *++lexer->cursor; + if (yych == '_') goto yy554; + goto yy50; +yy412: + yych = *++lexer->cursor; + if (yych == 'l') goto yy555; + goto yy50; +yy413: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 355 "src/wasm-ast-lexer.c" + { OPCODE(I32_NE); RETURN(COMPARE); } +#line 3076 "src/prebuilt/wasm-ast-lexer-gen.c" +yy415: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 325 "src/wasm-ast-lexer.c" + { OPCODE(I32_OR); RETURN(BINARY); } +#line 3084 "src/prebuilt/wasm-ast-lexer-gen.c" +yy417: + yych = *++lexer->cursor; + if (yych == 'p') goto yy557; + goto yy50; +yy418: + yych = *++lexer->cursor; + if (yych == 'i') goto yy558; + if (yych == 'm') goto yy559; + goto yy50; +yy419: + yych = *++lexer->cursor; + if (yych == 't') goto yy560; + goto yy50; yy420: -#line 235 "src/wasm-ast-lexer.c" - { TYPE(I32); RETURN(VALUE_TYPE); } -#line 2304 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'l') goto yy561; + if (yych == 'r') goto yy563; + goto yy50; yy421: yych = *++lexer->cursor; - switch (yych) { - case 'a': goto yy427; - case 'c': goto yy424; - case 'd': goto yy429; - case 'e': goto yy425; - case 'g': goto yy434; - case 'l': goto yy422; - case 'm': goto yy428; - case 'n': goto yy433; - case 'o': goto yy431; - case 'p': goto yy426; - case 'r': goto yy430; - case 's': goto yy423; - case 't': goto yy436; - case 'w': goto yy435; - case 'x': goto yy432; - default: goto yy82; - } + if (yych == 'o') goto yy564; + goto yy50; yy422: yych = *++lexer->cursor; - if (yych <= 'n') { - if (yych == 'e') goto yy573; - goto yy82; - } else { - if (yych <= 'o') goto yy574; - if (yych == 't') goto yy575; - goto yy82; - } + if (yych == 'b') goto yy565; + goto yy50; yy423: yych = *++lexer->cursor; - if (yych <= 's') { - if (yych == 'h') goto yy551; - goto yy82; - } else { - if (yych <= 't') goto yy552; - if (yych <= 'u') goto yy553; - goto yy82; - } + if (yych == 'u') goto yy567; + goto yy50; yy424: yych = *++lexer->cursor; - if (yych <= 'n') { - if (yych == 'l') goto yy540; - goto yy82; - } else { - if (yych <= 'o') goto yy541; - if (yych == 't') goto yy542; - goto yy82; - } + if (yych == 'a') goto yy568; + goto yy50; yy425: yych = *++lexer->cursor; - if (yych == 'q') goto yy536; - goto yy82; + if (yych == 'r') goto yy569; + goto yy50; yy426: yych = *++lexer->cursor; - if (yych == 'o') goto yy530; - goto yy82; + if (yych == 'd') goto yy571; + goto yy50; yy427: yych = *++lexer->cursor; - if (yych == 'd') goto yy524; - if (yych == 'n') goto yy525; - goto yy82; + if (yych == 'd') goto yy573; + goto yy50; yy428: yych = *++lexer->cursor; - if (yych == 'u') goto yy521; - goto yy82; + if (yych == 'z') goto yy575; + goto yy50; yy429: yych = *++lexer->cursor; - if (yych == 'i') goto yy514; - goto yy82; + if (yych == 'n') goto yy577; + goto yy50; yy430: yych = *++lexer->cursor; - if (yych == 'e') goto yy487; - if (yych == 'o') goto yy488; - goto yy82; + if (yych == 'z') goto yy578; + goto yy50; yy431: yych = *++lexer->cursor; - if (yych == 'r') goto yy485; - goto yy82; + if (yych == 'v') goto yy580; + goto yy50; yy432: - yych = *++lexer->cursor; - if (yych == 'o') goto yy482; - goto yy82; + ++lexer->cursor; + if ((yych = *lexer->cursor) <= 'Z') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy49; + } else { + if (yych <= '"') goto yy433; + 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 yy433; + if (yych <= 'y') goto yy49; + goto yy581; + } + } else { + if (yych <= '|') { + if (yych >= '|') goto yy49; + } else { + if (yych == '~') goto yy49; + } + } + } yy433: - yych = *++lexer->cursor; - if (yych == 'e') goto yy480; - goto yy82; +#line 354 "src/wasm-ast-lexer.c" + { OPCODE(I64_EQ); RETURN(COMPARE); } +#line 3184 "src/prebuilt/wasm-ast-lexer-gen.c" yy434: yych = *++lexer->cursor; - if (yych == 'e') goto yy468; - if (yych == 't') goto yy469; - goto yy82; + if (yych == 't') goto yy583; + goto yy50; yy435: yych = *++lexer->cursor; - if (yych == 'r') goto yy460; - goto yy82; + if (yych == '_') goto yy584; + goto yy50; yy436: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - yych = *++lexer->cursor; - if (yych != 'u') goto yy82; - yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == '_') goto yy585; + goto yy50; +yy437: yych = *++lexer->cursor; - if (yych != 'c') goto yy82; + if (yych == '_') goto yy586; + goto yy50; +yy438: yych = *++lexer->cursor; - if (yych != '_') goto yy82; + if (yych == 'a') goto yy587; + goto yy50; +yy439: yych = *++lexer->cursor; - if (yych == 's') goto yy442; - if (yych == 'u') goto yy443; - goto yy82; -yy442: + if (yych == '_') goto yy588; + goto yy50; +yy440: yych = *++lexer->cursor; - if (yych == '/') goto yy452; - goto yy82; + if (yych == 'l') goto yy589; + goto yy50; +yy441: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 356 "src/wasm-ast-lexer.c" + { OPCODE(I64_NE); RETURN(COMPARE); } +#line 3220 "src/prebuilt/wasm-ast-lexer-gen.c" yy443: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 326 "src/wasm-ast-lexer.c" + { OPCODE(I64_OR); RETURN(BINARY); } +#line 3228 "src/prebuilt/wasm-ast-lexer-gen.c" +yy445: yych = *++lexer->cursor; - if (yych != '/') goto yy82; - yych = *++lexer->cursor; - if (yych != 'f') goto yy82; - yych = *++lexer->cursor; - if (yych == '3') goto yy446; - if (yych == '6') goto yy447; - goto yy82; + if (yych == 'p') goto yy591; + goto yy50; yy446: yych = *++lexer->cursor; - if (yych == '2') goto yy450; - goto yy82; + if (yych == 'i') goto yy592; + if (yych == 'm') goto yy593; + goto yy50; yy447: yych = *++lexer->cursor; - if (yych != '4') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 392 "src/wasm-ast-lexer.c" - { OPCODE(I32_TRUNC_U_F64); RETURN(CONVERT); } -#line 2443 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 't') goto yy594; + goto yy50; +yy448: + yych = *++lexer->cursor; + if (yych == 'l') goto yy595; + if (yych == 'r') goto yy597; + goto yy50; +yy449: + yych = *++lexer->cursor; + if (yych == 'o') goto yy598; + goto yy50; yy450: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 390 "src/wasm-ast-lexer.c" - { OPCODE(I32_TRUNC_U_F32); RETURN(CONVERT); } -#line 2451 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'b') goto yy599; + goto yy50; +yy451: + yych = *++lexer->cursor; + if (yych == 'u') goto yy601; + goto yy50; yy452: yych = *++lexer->cursor; - if (yych != 'f') goto yy82; + if (yych == 'r') goto yy602; + goto yy50; +yy453: yych = *++lexer->cursor; - if (yych == '3') goto yy454; - if (yych == '6') goto yy455; - goto yy82; + if (yych == 'e') goto yy604; + goto yy50; yy454: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 423 "src/wasm-ast-lexer.c" + { RETURN(IMPORT); } +#line 3274 "src/prebuilt/wasm-ast-lexer-gen.c" +yy456: yych = *++lexer->cursor; - if (yych == '2') goto yy458; - goto yy82; -yy455: - yych = *++lexer->cursor; - if (yych != '4') goto yy82; + if (yych == 't') goto yy606; + goto yy50; +yy457: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 388 "src/wasm-ast-lexer.c" - { OPCODE(I32_TRUNC_S_F64); RETURN(CONVERT); } -#line 2472 "src/prebuilt/wasm-ast-lexer-gen.c" -yy458: +#line 430 "src/wasm-ast-lexer.c" + { RETURN(INVOKE); } +#line 3286 "src/prebuilt/wasm-ast-lexer-gen.c" +yy459: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 386 "src/wasm-ast-lexer.c" - { OPCODE(I32_TRUNC_S_F32); RETURN(CONVERT); } -#line 2480 "src/prebuilt/wasm-ast-lexer-gen.c" -yy460: - yych = *++lexer->cursor; - if (yych != 'a') goto yy82; - yych = *++lexer->cursor; - if (yych != 'p') goto yy82; - yych = *++lexer->cursor; - if (yych != '/') goto yy82; - yych = *++lexer->cursor; - if (yych != 'i') goto yy82; +#line 420 "src/wasm-ast-lexer.c" + { RETURN(MEMORY); } +#line 3294 "src/prebuilt/wasm-ast-lexer-gen.c" +yy461: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 419 "src/wasm-ast-lexer.c" + { RETURN(MODULE); } +#line 3302 "src/prebuilt/wasm-ast-lexer-gen.c" +yy463: yych = *++lexer->cursor; - if (yych != '6') goto yy82; + if (yych <= '@') { + if (yych <= '/') goto yy50; + if (yych <= '9') goto yy607; + goto yy50; + } else { + if (yych <= 'F') goto yy607; + if (yych <= '`') goto yy50; + if (yych <= 'f') goto yy607; + goto yy50; + } +yy464: yych = *++lexer->cursor; - if (yych != '4') goto yy82; + if (yych == '=') goto yy609; + goto yy50; +yy465: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 385 "src/wasm-ast-lexer.c" - { OPCODE(I32_WRAP_I64); RETURN(CONVERT); } -#line 2500 "src/prebuilt/wasm-ast-lexer-gen.c" -yy468: - yych = *++lexer->cursor; - if (yych == '_') goto yy475; - goto yy82; +#line 417 "src/wasm-ast-lexer.c" + { RETURN(RESULT); } +#line 3326 "src/prebuilt/wasm-ast-lexer-gen.c" +yy467: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 255 "src/wasm-ast-lexer.c" + { RETURN(RETURN); } +#line 3334 "src/prebuilt/wasm-ast-lexer-gen.c" yy469: yych = *++lexer->cursor; - if (yych != '_') goto yy82; - yych = *++lexer->cursor; - if (yych == 's') goto yy471; - if (yych == 'u') goto yy473; - goto yy82; -yy471: + if (yych == 't') goto yy610; + goto yy50; +yy470: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 363 "src/wasm-ast-lexer.c" - { OPCODE(I32_GT_S); RETURN(COMPARE); } -#line 2519 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 410 "src/wasm-ast-lexer.c" + { RETURN(SELECT); } +#line 3346 "src/prebuilt/wasm-ast-lexer-gen.c" +yy472: + yych = *++lexer->cursor; + if (yych == 'c') goto yy612; + goto yy50; yy473: + yych = *++lexer->cursor; + if (yych == 'h') goto yy613; + goto yy50; +yy474: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= ':') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy49; + } else { + if (yych <= '"') goto yy476; + if (yych <= '&') goto yy49; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy49; + } else { + if (yych <= '/') goto yy49; + if (yych <= '9') goto yy474; + 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; + } + } } -#line 365 "src/wasm-ast-lexer.c" - { OPCODE(I32_GT_U); RETURN(COMPARE); } -#line 2527 "src/prebuilt/wasm-ast-lexer-gen.c" -yy475: - yych = *++lexer->cursor; - if (yych == 's') goto yy476; - if (yych == 'u') goto yy478; - goto yy82; yy476: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; +#line 282 "src/wasm-ast-lexer.c" + { TEXT_AT(6); RETURN(ALIGN); } +#line 3394 "src/prebuilt/wasm-ast-lexer-gen.c" +yy477: + yych = *++lexer->cursor; + if (yych <= 'q') { + if (yych == 'i') goto yy614; + goto yy50; + } else { + if (yych <= 'r') goto yy615; + if (yych == 't') goto yy616; + goto yy50; } -#line 367 "src/wasm-ast-lexer.c" - { OPCODE(I32_GE_S); RETURN(COMPARE); } -#line 2540 "src/prebuilt/wasm-ast-lexer-gen.c" yy478: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 369 "src/wasm-ast-lexer.c" - { OPCODE(I32_GE_U); RETURN(COMPARE); } -#line 2548 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'e') goto yy617; + goto yy50; +yy479: + yych = *++lexer->cursor; + if (yych == 'p') goto yy619; + goto yy50; yy480: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 353 "src/wasm-ast-lexer.c" - { OPCODE(I32_NE); RETURN(COMPARE); } -#line 2556 "src/prebuilt/wasm-ast-lexer-gen.c" -yy482: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'd') goto yy620; + goto yy50; +yy481: + yych = *++lexer->cursor; + if (yych == '_') goto yy621; + goto yy50; +yy482: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 325 "src/wasm-ast-lexer.c" - { OPCODE(I32_XOR); RETURN(BINARY); } -#line 2566 "src/prebuilt/wasm-ast-lexer-gen.c" -yy485: +#line 297 "src/wasm-ast-lexer.c" + { OPCODE(F32_ABS); RETURN(UNARY); } +#line 3428 "src/prebuilt/wasm-ast-lexer-gen.c" +yy484: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 323 "src/wasm-ast-lexer.c" - { OPCODE(I32_OR); RETURN(BINARY); } -#line 2574 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 339 "src/wasm-ast-lexer.c" + { OPCODE(F32_ADD); RETURN(BINARY); } +#line 3436 "src/prebuilt/wasm-ast-lexer-gen.c" +yy486: + yych = *++lexer->cursor; + if (yych == 'l') goto yy622; + goto yy50; yy487: yych = *++lexer->cursor; - if (yych == 'i') goto yy495; - if (yych == 'm') goto yy494; - goto yy82; + if (yych == 's') goto yy624; + if (yych == 'v') goto yy625; + goto yy50; yy488: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'y') goto yy626; + goto yy50; +yy489: yych = *++lexer->cursor; - if (yych == 'l') goto yy490; - if (yych == 'r') goto yy492; - goto yy82; + if (yych == 'o') goto yy627; + goto yy50; yy490: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 333 "src/wasm-ast-lexer.c" - { OPCODE(I32_ROTL); RETURN(BINARY); } -#line 2594 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 345 "src/wasm-ast-lexer.c" + { OPCODE(F32_DIV); RETURN(BINARY); } +#line 3461 "src/prebuilt/wasm-ast-lexer-gen.c" yy492: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 335 "src/wasm-ast-lexer.c" - { OPCODE(I32_ROTR); RETURN(BINARY); } -#line 2602 "src/prebuilt/wasm-ast-lexer-gen.c" -yy494: - yych = *++lexer->cursor; - if (yych == '_') goto yy509; - goto yy82; -yy495: - yych = *++lexer->cursor; - if (yych != 'n') goto yy82; - yych = *++lexer->cursor; - if (yych != 't') goto yy82; - yych = *++lexer->cursor; - if (yych != 'e') goto yy82; yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'o') goto yy628; + goto yy50; +yy493: yych = *++lexer->cursor; - if (yych != 'p') goto yy82; - yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'd') goto yy629; + goto yy50; +yy494: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 349 "src/wasm-ast-lexer.c" + { OPCODE(F32_MAX); RETURN(BINARY); } +#line 3477 "src/prebuilt/wasm-ast-lexer-gen.c" +yy496: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 347 "src/wasm-ast-lexer.c" + { OPCODE(F32_MIN); RETURN(BINARY); } +#line 3485 "src/prebuilt/wasm-ast-lexer-gen.c" +yy498: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 343 "src/wasm-ast-lexer.c" + { OPCODE(F32_MUL); RETURN(BINARY); } +#line 3493 "src/prebuilt/wasm-ast-lexer-gen.c" +yy500: yych = *++lexer->cursor; - if (yych != '/') goto yy82; + if (yych == 'r') goto yy631; + goto yy50; +yy501: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 295 "src/wasm-ast-lexer.c" + { OPCODE(F32_NEG); RETURN(UNARY); } +#line 3505 "src/prebuilt/wasm-ast-lexer-gen.c" +yy503: yych = *++lexer->cursor; - if (yych != 'f') goto yy82; + if (yych == 'n') goto yy632; + goto yy50; +yy504: yych = *++lexer->cursor; - if (yych != '3') goto yy82; + if (yych == 't') goto yy633; + goto yy50; +yy505: yych = *++lexer->cursor; - if (yych != '2') goto yy82; + if (yych == 'r') goto yy635; + goto yy50; +yy506: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 405 "src/wasm-ast-lexer.c" - { OPCODE(I32_REINTERPRET_F32); RETURN(CONVERT); } -#line 2638 "src/prebuilt/wasm-ast-lexer-gen.c" -yy509: +#line 341 "src/wasm-ast-lexer.c" + { OPCODE(F32_SUB); RETURN(BINARY); } +#line 3525 "src/prebuilt/wasm-ast-lexer-gen.c" +yy508: yych = *++lexer->cursor; - if (yych == 's') goto yy510; - if (yych == 'u') goto yy512; - goto yy82; -yy510: + if (yych == 'n') goto yy636; + goto yy50; +yy509: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 317 "src/wasm-ast-lexer.c" - { OPCODE(I32_REM_S); RETURN(BINARY); } -#line 2651 "src/prebuilt/wasm-ast-lexer-gen.c" -yy512: +#line 298 "src/wasm-ast-lexer.c" + { OPCODE(F64_ABS); RETURN(UNARY); } +#line 3537 "src/prebuilt/wasm-ast-lexer-gen.c" +yy511: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 319 "src/wasm-ast-lexer.c" - { OPCODE(I32_REM_U); RETURN(BINARY); } -#line 2659 "src/prebuilt/wasm-ast-lexer-gen.c" -yy514: +#line 340 "src/wasm-ast-lexer.c" + { OPCODE(F64_ADD); RETURN(BINARY); } +#line 3545 "src/prebuilt/wasm-ast-lexer-gen.c" +yy513: yych = *++lexer->cursor; - if (yych != 'v') goto yy82; + if (yych == 'l') goto yy637; + goto yy50; +yy514: yych = *++lexer->cursor; - if (yych != '_') goto yy82; + if (yych == 's') goto yy639; + if (yych == 'v') goto yy640; + goto yy50; +yy515: yych = *++lexer->cursor; - if (yych == 's') goto yy517; - if (yych == 'u') goto yy519; - goto yy82; -yy517: + if (yych == 'y') goto yy641; + goto yy50; +yy516: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 313 "src/wasm-ast-lexer.c" - { OPCODE(I32_DIV_S); RETURN(BINARY); } -#line 2676 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 346 "src/wasm-ast-lexer.c" + { OPCODE(F64_DIV); RETURN(BINARY); } +#line 3566 "src/prebuilt/wasm-ast-lexer-gen.c" +yy518: + yych = *++lexer->cursor; + if (yych == 'o') goto yy642; + goto yy50; yy519: + yych = *++lexer->cursor; + if (yych == 'd') goto yy643; + goto yy50; +yy520: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 315 "src/wasm-ast-lexer.c" - { OPCODE(I32_DIV_U); RETURN(BINARY); } -#line 2684 "src/prebuilt/wasm-ast-lexer-gen.c" -yy521: - yych = *++lexer->cursor; - if (yych != 'l') goto yy82; +#line 350 "src/wasm-ast-lexer.c" + { OPCODE(F64_MAX); RETURN(BINARY); } +#line 3582 "src/prebuilt/wasm-ast-lexer-gen.c" +yy522: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 311 "src/wasm-ast-lexer.c" - { OPCODE(I32_MUL); RETURN(BINARY); } -#line 2694 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 348 "src/wasm-ast-lexer.c" + { OPCODE(F64_MIN); RETURN(BINARY); } +#line 3590 "src/prebuilt/wasm-ast-lexer-gen.c" yy524: - yych = *++lexer->cursor; - if (yych == 'd') goto yy528; - goto yy82; -yy525: - yych = *++lexer->cursor; - if (yych != 'd') goto yy82; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 321 "src/wasm-ast-lexer.c" - { OPCODE(I32_AND); RETURN(BINARY); } -#line 2708 "src/prebuilt/wasm-ast-lexer-gen.c" -yy528: +#line 344 "src/wasm-ast-lexer.c" + { OPCODE(F64_MUL); RETURN(BINARY); } +#line 3598 "src/prebuilt/wasm-ast-lexer-gen.c" +yy526: + yych = *++lexer->cursor; + if (yych == 'r') goto yy645; + goto yy50; +yy527: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 307 "src/wasm-ast-lexer.c" - { OPCODE(I32_ADD); RETURN(BINARY); } -#line 2716 "src/prebuilt/wasm-ast-lexer-gen.c" -yy530: +#line 296 "src/wasm-ast-lexer.c" + { OPCODE(F64_NEG); RETURN(UNARY); } +#line 3610 "src/prebuilt/wasm-ast-lexer-gen.c" +yy529: yych = *++lexer->cursor; - if (yych != 'p') goto yy82; + if (yych == 'm') goto yy646; + goto yy50; +yy530: yych = *++lexer->cursor; - if (yych != 'c') goto yy82; + if (yych == 'n') goto yy647; + goto yy50; +yy531: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == 't') goto yy648; + goto yy50; +yy532: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'r') goto yy650; + goto yy50; +yy533: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 291 "src/wasm-ast-lexer.c" - { OPCODE(I32_POPCNT); RETURN(UNARY); } -#line 2732 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 342 "src/wasm-ast-lexer.c" + { OPCODE(F64_SUB); RETURN(BINARY); } +#line 3634 "src/prebuilt/wasm-ast-lexer-gen.c" +yy535: + yych = *++lexer->cursor; + if (yych == 'n') goto yy651; + goto yy50; yy536: - ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'Z') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy81; - } else { - if (yych <= '"') goto yy537; - if (yych <= '&') goto yy81; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy81; - } else { - if (yych != ';') goto yy81; - } - } - } else { - if (yych <= 'z') { - if (yych <= '\\') { - if (yych >= '\\') goto yy81; - } else { - if (yych <= ']') goto yy537; - if (yych <= 'y') goto yy81; - goto yy538; - } - } else { - if (yych <= '|') { - if (yych >= '|') goto yy81; - } else { - if (yych == '~') goto yy81; - } - } - } + yych = *++lexer->cursor; + if (yych == 'a') goto yy652; + goto yy50; yy537: -#line 351 "src/wasm-ast-lexer.c" - { OPCODE(I32_EQ); RETURN(COMPARE); } -#line 2770 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'm') goto yy653; + goto yy50; yy538: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 285 "src/wasm-ast-lexer.c" - { OPCODE(I32_EQZ); RETURN(CONVERT); } -#line 2778 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 309 "src/wasm-ast-lexer.c" + { OPCODE(I32_ADD); RETURN(BINARY); } +#line 3654 "src/prebuilt/wasm-ast-lexer-gen.c" yy540: - yych = *++lexer->cursor; - if (yych == 'z') goto yy549; - goto yy82; -yy541: - yych = *++lexer->cursor; - if (yych == 'n') goto yy545; - goto yy82; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 323 "src/wasm-ast-lexer.c" + { OPCODE(I32_AND); RETURN(BINARY); } +#line 3662 "src/prebuilt/wasm-ast-lexer-gen.c" yy542: - yych = *++lexer->cursor; - if (yych != 'z') goto yy82; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } #line 289 "src/wasm-ast-lexer.c" - { OPCODE(I32_CTZ); RETURN(UNARY); } -#line 2796 "src/prebuilt/wasm-ast-lexer-gen.c" -yy545: - yych = *++lexer->cursor; - if (yych != 's') goto yy82; + { OPCODE(I32_CLZ); RETURN(UNARY); } +#line 3670 "src/prebuilt/wasm-ast-lexer-gen.c" +yy544: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 's') goto yy654; + goto yy50; +yy545: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 281 "src/wasm-ast-lexer.c" - { TYPE(I32); RETURN(CONST); } -#line 2808 "src/prebuilt/wasm-ast-lexer-gen.c" -yy549: +#line 291 "src/wasm-ast-lexer.c" + { OPCODE(I32_CTZ); RETURN(UNARY); } +#line 3682 "src/prebuilt/wasm-ast-lexer-gen.c" +yy547: + yych = *++lexer->cursor; + if (yych == '_') goto yy655; + goto yy50; +yy548: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } #line 287 "src/wasm-ast-lexer.c" - { OPCODE(I32_CLZ); RETURN(UNARY); } -#line 2816 "src/prebuilt/wasm-ast-lexer-gen.c" + { OPCODE(I32_EQZ); RETURN(CONVERT); } +#line 3694 "src/prebuilt/wasm-ast-lexer-gen.c" +yy550: + yych = *++lexer->cursor; + if (yych == 's') goto yy656; + if (yych == 'u') goto yy658; + goto yy50; yy551: yych = *++lexer->cursor; - if (yych == 'l') goto yy565; - if (yych == 'r') goto yy567; - goto yy82; + if (yych == 's') goto yy660; + if (yych == 'u') goto yy662; + goto yy50; yy552: yych = *++lexer->cursor; - if (yych == 'o') goto yy556; - goto yy82; + if (yych == 's') goto yy664; + if (yych == 'u') goto yy666; + goto yy50; yy553: yych = *++lexer->cursor; - if (yych != 'b') goto yy82; + if (yych == 'd') goto yy668; + goto yy50; +yy554: + yych = *++lexer->cursor; + if (yych == 's') goto yy670; + if (yych == 'u') goto yy672; + goto yy50; +yy555: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 309 "src/wasm-ast-lexer.c" - { OPCODE(I32_SUB); RETURN(BINARY); } -#line 2835 "src/prebuilt/wasm-ast-lexer-gen.c" -yy556: +#line 313 "src/wasm-ast-lexer.c" + { OPCODE(I32_MUL); RETURN(BINARY); } +#line 3726 "src/prebuilt/wasm-ast-lexer-gen.c" +yy557: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'c') goto yy674; + goto yy50; +yy558: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - ++lexer->cursor; - if ((yych = *lexer->cursor) <= '8') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy81; - } else { - if (yych <= '"') goto yy559; - if (yych <= '&') goto yy81; - } - } else { - if (yych <= '0') { - if (yych != ',') goto yy81; - } else { - if (yych <= '1') goto yy560; - if (yych <= '7') goto yy81; - goto yy561; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych != ';') goto yy81; - } else { - if (yych == '\\') goto yy81; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy81; - } else { - if (yych == '~') goto yy81; - } - } - } + if (yych == 'n') goto yy675; + goto yy50; yy559: -#line 260 "src/wasm-ast-lexer.c" - { OPCODE(I32_STORE); RETURN(STORE); } -#line 2877 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == '_') goto yy676; + goto yy50; yy560: yych = *++lexer->cursor; - if (yych == '6') goto yy563; - goto yy82; + if (yych == 'l') goto yy677; + if (yych == 'r') goto yy679; + goto yy50; yy561: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 274 "src/wasm-ast-lexer.c" - { OPCODE(I32_STORE8); RETURN(STORE); } -#line 2889 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 329 "src/wasm-ast-lexer.c" + { OPCODE(I32_SHL); RETURN(BINARY); } +#line 3751 "src/prebuilt/wasm-ast-lexer-gen.c" yy563: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 276 "src/wasm-ast-lexer.c" - { OPCODE(I32_STORE16); RETURN(STORE); } -#line 2897 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == '_') goto yy681; + goto yy50; +yy564: + yych = *++lexer->cursor; + if (yych == 'r') goto yy682; + goto yy50; yy565: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 327 "src/wasm-ast-lexer.c" - { OPCODE(I32_SHL); RETURN(BINARY); } -#line 2905 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 311 "src/wasm-ast-lexer.c" + { OPCODE(I32_SUB); RETURN(BINARY); } +#line 3767 "src/prebuilt/wasm-ast-lexer-gen.c" yy567: yych = *++lexer->cursor; - if (yych != '_') goto yy82; + if (yych == 'n') goto yy683; + goto yy50; +yy568: yych = *++lexer->cursor; - if (yych == 's') goto yy569; - if (yych == 'u') goto yy571; - goto yy82; + if (yych == 'p') goto yy684; + goto yy50; yy569: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 329 "src/wasm-ast-lexer.c" - { OPCODE(I32_SHR_S); RETURN(BINARY); } -#line 2920 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 327 "src/wasm-ast-lexer.c" + { OPCODE(I32_XOR); RETURN(BINARY); } +#line 3783 "src/prebuilt/wasm-ast-lexer-gen.c" yy571: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 331 "src/wasm-ast-lexer.c" - { OPCODE(I32_SHR_U); RETURN(BINARY); } -#line 2928 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 310 "src/wasm-ast-lexer.c" + { OPCODE(I64_ADD); RETURN(BINARY); } +#line 3791 "src/prebuilt/wasm-ast-lexer-gen.c" yy573: - yych = *++lexer->cursor; - if (yych == '_') goto yy597; - goto yy82; -yy574: - yych = *++lexer->cursor; - if (yych == 'a') goto yy581; - goto yy82; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 324 "src/wasm-ast-lexer.c" + { OPCODE(I64_AND); RETURN(BINARY); } +#line 3799 "src/prebuilt/wasm-ast-lexer-gen.c" yy575: - yych = *++lexer->cursor; - if (yych != '_') goto yy82; - yych = *++lexer->cursor; - if (yych == 's') goto yy577; - if (yych == 'u') goto yy579; - goto yy82; -yy577: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 355 "src/wasm-ast-lexer.c" - { OPCODE(I32_LT_S); RETURN(COMPARE); } -#line 2951 "src/prebuilt/wasm-ast-lexer-gen.c" -yy579: +#line 290 "src/wasm-ast-lexer.c" + { OPCODE(I64_CLZ); RETURN(UNARY); } +#line 3807 "src/prebuilt/wasm-ast-lexer-gen.c" +yy577: + yych = *++lexer->cursor; + if (yych == 's') goto yy685; + goto yy50; +yy578: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 357 "src/wasm-ast-lexer.c" - { OPCODE(I32_LT_U); RETURN(COMPARE); } -#line 2959 "src/prebuilt/wasm-ast-lexer-gen.c" -yy581: +#line 292 "src/wasm-ast-lexer.c" + { OPCODE(I64_CTZ); RETURN(UNARY); } +#line 3819 "src/prebuilt/wasm-ast-lexer-gen.c" +yy580: yych = *++lexer->cursor; - if (yych != 'd') goto yy82; + if (yych == '_') goto yy686; + goto yy50; +yy581: ++lexer->cursor; - if ((yych = *lexer->cursor) <= '8') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy81; - } else { - if (yych <= '"') goto yy583; - if (yych <= '&') goto yy81; - } - } else { - if (yych <= '0') { - if (yych != ',') goto yy81; - } else { - if (yych <= '1') goto yy585; - if (yych <= '7') goto yy81; - goto yy584; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych != ';') goto yy81; - } else { - if (yych == '\\') goto yy81; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy81; - } else { - if (yych == '~') goto yy81; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } +#line 288 "src/wasm-ast-lexer.c" + { OPCODE(I64_EQZ); RETURN(CONVERT); } +#line 3831 "src/prebuilt/wasm-ast-lexer-gen.c" yy583: -#line 256 "src/wasm-ast-lexer.c" - { OPCODE(I32_LOAD); RETURN(LOAD); } -#line 2999 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'e') goto yy687; + goto yy50; yy584: yych = *++lexer->cursor; - if (yych == '_') goto yy592; - goto yy82; + if (yych == 's') goto yy688; + if (yych == 'u') goto yy690; + goto yy50; yy585: yych = *++lexer->cursor; - if (yych != '6') goto yy82; + if (yych == 's') goto yy692; + if (yych == 'u') goto yy694; + goto yy50; +yy586: yych = *++lexer->cursor; - if (yych != '_') goto yy82; + if (yych == 's') goto yy696; + if (yych == 'u') goto yy698; + goto yy50; +yy587: yych = *++lexer->cursor; - if (yych == 's') goto yy588; - if (yych == 'u') goto yy590; - goto yy82; + if (yych == 'd') goto yy700; + goto yy50; yy588: + yych = *++lexer->cursor; + if (yych == 's') goto yy702; + if (yych == 'u') goto yy704; + goto yy50; +yy589: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 268 "src/wasm-ast-lexer.c" - { OPCODE(I32_LOAD16_S); RETURN(LOAD); } -#line 3020 "src/prebuilt/wasm-ast-lexer-gen.c" -yy590: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 270 "src/wasm-ast-lexer.c" - { OPCODE(I32_LOAD16_U); RETURN(LOAD); } -#line 3028 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 314 "src/wasm-ast-lexer.c" + { OPCODE(I64_MUL); RETURN(BINARY); } +#line 3867 "src/prebuilt/wasm-ast-lexer-gen.c" +yy591: + yych = *++lexer->cursor; + if (yych == 'c') goto yy706; + goto yy50; yy592: yych = *++lexer->cursor; - if (yych == 's') goto yy593; - if (yych == 'u') goto yy595; - goto yy82; + if (yych == 'n') goto yy707; + goto yy50; yy593: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 264 "src/wasm-ast-lexer.c" - { OPCODE(I32_LOAD8_S); RETURN(LOAD); } -#line 3041 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == '_') goto yy708; + goto yy50; +yy594: + yych = *++lexer->cursor; + if (yych == 'l') goto yy709; + if (yych == 'r') goto yy711; + goto yy50; yy595: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 266 "src/wasm-ast-lexer.c" - { OPCODE(I32_LOAD8_U); RETURN(LOAD); } -#line 3049 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 330 "src/wasm-ast-lexer.c" + { OPCODE(I64_SHL); RETURN(BINARY); } +#line 3892 "src/prebuilt/wasm-ast-lexer-gen.c" yy597: yych = *++lexer->cursor; - if (yych == 's') goto yy598; - if (yych == 'u') goto yy600; - goto yy82; + if (yych == '_') goto yy713; + goto yy50; yy598: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 359 "src/wasm-ast-lexer.c" - { OPCODE(I32_LE_S); RETURN(COMPARE); } -#line 3062 "src/prebuilt/wasm-ast-lexer-gen.c" -yy600: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 361 "src/wasm-ast-lexer.c" - { OPCODE(I32_LE_U); RETURN(COMPARE); } -#line 3070 "src/prebuilt/wasm-ast-lexer-gen.c" -yy602: - yych = *++lexer->cursor; - if (yych == 't') goto yy614; - goto yy82; -yy603: - yych = *++lexer->cursor; - if (yych != 'o') goto yy82; - yych = *++lexer->cursor; - if (yych != 'w') goto yy82; - yych = *++lexer->cursor; - if (yych != '_') goto yy82; - yych = *++lexer->cursor; - if (yych != 'm') goto yy82; - yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - yych = *++lexer->cursor; - if (yych != 'm') goto yy82; - yych = *++lexer->cursor; - if (yych != 'o') goto yy82; yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - yych = *++lexer->cursor; - if (yych != 'y') goto yy82; + if (yych == 'r') goto yy714; + goto yy50; +yy599: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 411 "src/wasm-ast-lexer.c" - { RETURN(GROW_MEMORY); } -#line 3100 "src/prebuilt/wasm-ast-lexer-gen.c" -yy614: - yych = *++lexer->cursor; - if (yych != '_') goto yy82; - yych = *++lexer->cursor; - if (yych != 'l') goto yy82; - yych = *++lexer->cursor; - if (yych != 'o') goto yy82; - yych = *++lexer->cursor; - if (yych != 'c') goto yy82; - yych = *++lexer->cursor; - if (yych != 'a') goto yy82; +#line 312 "src/wasm-ast-lexer.c" + { OPCODE(I64_SUB); RETURN(BINARY); } +#line 3908 "src/prebuilt/wasm-ast-lexer-gen.c" +yy601: yych = *++lexer->cursor; - if (yych != 'l') goto yy82; + if (yych == 'n') goto yy715; + goto yy50; +yy602: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 254 "src/wasm-ast-lexer.c" - { RETURN(GET_LOCAL); } -#line 3120 "src/prebuilt/wasm-ast-lexer-gen.c" -yy622: - yych = *++lexer->cursor; - if (yych == '2') goto yy773; - goto yy82; -yy623: - yych = *++lexer->cursor; - if (yych == '4') goto yy628; - goto yy82; -yy624: - yych = *++lexer->cursor; - if (yych != 'n') goto yy82; - yych = *++lexer->cursor; - if (yych != 'c') goto yy82; +#line 328 "src/wasm-ast-lexer.c" + { OPCODE(I64_XOR); RETURN(BINARY); } +#line 3920 "src/prebuilt/wasm-ast-lexer-gen.c" +yy604: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 413 "src/wasm-ast-lexer.c" - { RETURN(FUNC); } -#line 3140 "src/prebuilt/wasm-ast-lexer-gen.c" -yy628: +#line 244 "src/wasm-ast-lexer.c" + { RETURN(IF); } +#line 3928 "src/prebuilt/wasm-ast-lexer-gen.c" +yy606: + yych = *++lexer->cursor; + if (yych == 'y') goto yy716; + goto yy50; +yy607: ++lexer->cursor; - if ((yych = *lexer->cursor) <= ':') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy81; + if (lexer->limit <= lexer->cursor) FILL(1); + yych = *lexer->cursor; + if (yych <= '@') { + if (yych <= '+') { + if (yych <= '"') { + if (yych == '!') goto yy49; + goto yy177; } else { - if (yych <= '"') goto yy629; - if (yych <= '&') goto yy81; + if (yych <= '&') goto yy49; + if (yych <= ')') goto yy177; + goto yy49; } } else { - if (yych <= ',') { - if (yych <= '+') goto yy81; + if (yych <= '9') { + if (yych <= ',') goto yy177; + if (yych <= '/') goto yy49; + goto yy607; } else { - if (yych == '.') goto yy630; - goto yy81; + if (yych == ';') goto yy177; + goto yy49; } } } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych >= '<') goto yy81; + if (yych <= '`') { + if (yych <= '[') { + if (yych <= 'F') goto yy607; + if (yych <= 'Z') goto yy49; + goto yy177; } else { - if (yych == '\\') goto yy81; + if (yych == ']') goto yy177; + goto yy49; } } else { - if (yych <= '|') { - if (yych != '{') goto yy81; + if (yych <= '{') { + if (yych <= 'f') goto yy607; + if (yych <= 'z') goto yy49; + goto yy177; } else { - if (yych == '~') goto yy81; + if (yych == '}') goto yy177; + if (yych <= '~') goto yy49; + goto yy177; } } } -yy629: -#line 238 "src/wasm-ast-lexer.c" - { TYPE(F64); RETURN(VALUE_TYPE); } -#line 3177 "src/prebuilt/wasm-ast-lexer-gen.c" -yy630: - yych = *++lexer->cursor; - switch (yych) { - case 'a': goto yy635; - case 'c': goto yy633; - case 'd': goto yy639; - case 'e': goto yy640; - case 'f': goto yy636; - case 'g': goto yy641; - case 'l': goto yy631; - case 'm': goto yy638; - case 'n': goto yy634; - case 'p': goto yy642; - case 'r': goto yy643; - case 's': goto yy632; - case 't': goto yy637; - default: goto yy82; - } -yy631: - yych = *++lexer->cursor; - if (yych <= 'n') { - if (yych == 'e') goto yy765; - goto yy82; - } else { - if (yych <= 'o') goto yy767; - if (yych == 't') goto yy768; - goto yy82; - } -yy632: +yy609: yych = *++lexer->cursor; - if (yych <= 's') { - if (yych == 'q') goto yy753; - goto yy82; - } else { - if (yych <= 't') goto yy754; - if (yych <= 'u') goto yy755; - goto yy82; + if (yych <= '/') goto yy50; + if (yych <= '9') goto yy717; + goto yy50; +yy610: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -yy633: - yych = *++lexer->cursor; - if (yych == 'e') goto yy714; - if (yych == 'o') goto yy715; - goto yy82; -yy634: +#line 421 "src/wasm-ast-lexer.c" + { RETURN(SEGMENT); } +#line 3991 "src/prebuilt/wasm-ast-lexer-gen.c" +yy612: yych = *++lexer->cursor; - if (yych == 'e') goto yy704; - goto yy82; -yy635: + if (yych == 'a') goto yy720; + goto yy50; +yy613: yych = *++lexer->cursor; - if (yych == 'b') goto yy698; - if (yych == 'd') goto yy699; - goto yy82; -yy636: + if (yych == 'a') goto yy721; + goto yy50; +yy614: yych = *++lexer->cursor; - if (yych == 'l') goto yy693; - goto yy82; -yy637: + if (yych == 'n') goto yy722; + goto yy50; +yy615: yych = *++lexer->cursor; - if (yych == 'r') goto yy688; - goto yy82; -yy638: + if (yych == 'e') goto yy723; + goto yy50; +yy616: yych = *++lexer->cursor; - if (yych <= 'h') { - if (yych == 'a') goto yy679; - goto yy82; - } else { - if (yych <= 'i') goto yy680; - if (yych == 'u') goto yy681; - goto yy82; + if (yych == 'r') goto yy724; + goto yy50; +yy617: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -yy639: - yych = *++lexer->cursor; - if (yych == 'i') goto yy676; - goto yy82; -yy640: - yych = *++lexer->cursor; - if (yych == 'q') goto yy674; - goto yy82; -yy641: +#line 250 "src/wasm-ast-lexer.c" + { RETURN(BR_TABLE); } +#line 4019 "src/prebuilt/wasm-ast-lexer-gen.c" +yy619: yych = *++lexer->cursor; - if (yych == 'e') goto yy670; - if (yych == 't') goto yy672; - goto yy82; -yy642: + if (yych == 'o') goto yy725; + goto yy50; +yy620: yych = *++lexer->cursor; - if (yych == 'r') goto yy659; - goto yy82; -yy643: + if (yych == 'i') goto yy726; + goto yy50; +yy621: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'm') goto yy727; + goto yy50; +yy622: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 301 "src/wasm-ast-lexer.c" + { OPCODE(F32_CEIL); RETURN(UNARY); } +#line 4039 "src/prebuilt/wasm-ast-lexer-gen.c" +yy624: yych = *++lexer->cursor; - if (yych != 'i') goto yy82; + if (yych == 't') goto yy728; + goto yy50; +yy625: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == 'e') goto yy730; + goto yy50; +yy626: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 's') goto yy731; + goto yy50; +yy627: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 't') goto yy732; + goto yy50; +yy628: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'r') goto yy733; + goto yy50; +yy629: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 260 "src/wasm-ast-lexer.c" + { OPCODE(F32_LOAD); RETURN(LOAD); } +#line 4067 "src/prebuilt/wasm-ast-lexer-gen.c" +yy631: yych = *++lexer->cursor; - if (yych != 'p') goto yy82; + if (yych == 'e') goto yy735; + goto yy50; +yy632: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 't') goto yy736; + goto yy50; +yy633: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 299 "src/wasm-ast-lexer.c" + { OPCODE(F32_SQRT); RETURN(UNARY); } +#line 4083 "src/prebuilt/wasm-ast-lexer-gen.c" +yy635: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'e') goto yy737; + goto yy50; +yy636: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'c') goto yy739; + goto yy50; +yy637: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 302 "src/wasm-ast-lexer.c" + { OPCODE(F64_CEIL); RETURN(UNARY); } +#line 4099 "src/prebuilt/wasm-ast-lexer-gen.c" +yy639: yych = *++lexer->cursor; - if (yych != '/') goto yy82; + if (yych == 't') goto yy741; + goto yy50; +yy640: yych = *++lexer->cursor; - if (yych != 'i') goto yy82; + if (yych == 'e') goto yy743; + goto yy50; +yy641: yych = *++lexer->cursor; - if (yych != '6') goto yy82; + if (yych == 's') goto yy744; + goto yy50; +yy642: yych = *++lexer->cursor; - if (yych != '4') goto yy82; + if (yych == 'r') goto yy745; + goto yy50; +yy643: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 406 "src/wasm-ast-lexer.c" - { OPCODE(F64_REINTERPRET_I64); RETURN(CONVERT); } -#line 3300 "src/prebuilt/wasm-ast-lexer-gen.c" -yy659: +#line 261 "src/wasm-ast-lexer.c" + { OPCODE(F64_LOAD); RETURN(LOAD); } +#line 4123 "src/prebuilt/wasm-ast-lexer-gen.c" +yy645: yych = *++lexer->cursor; - if (yych != 'o') goto yy82; + if (yych == 'e') goto yy747; + goto yy50; +yy646: yych = *++lexer->cursor; - if (yych != 'm') goto yy82; + if (yych == 'o') goto yy748; + goto yy50; +yy647: yych = *++lexer->cursor; - if (yych != 'o') goto yy82; + if (yych == 't') goto yy749; + goto yy50; +yy648: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 300 "src/wasm-ast-lexer.c" + { OPCODE(F64_SQRT); RETURN(UNARY); } +#line 4143 "src/prebuilt/wasm-ast-lexer-gen.c" +yy650: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'e') goto yy750; + goto yy50; +yy651: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'c') goto yy752; + goto yy50; +yy652: yych = *++lexer->cursor; - if (yych != '/') goto yy82; + if (yych == 'l') goto yy754; + goto yy50; +yy653: yych = *++lexer->cursor; - if (yych != 'f') goto yy82; + if (yych == 'o') goto yy756; + goto yy50; +yy654: yych = *++lexer->cursor; - if (yych != '3') goto yy82; + if (yych == 't') goto yy757; + goto yy50; +yy655: yych = *++lexer->cursor; - if (yych != '2') goto yy82; + if (yych == 's') goto yy759; + if (yych == 'u') goto yy761; + goto yy50; +yy656: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 402 "src/wasm-ast-lexer.c" - { OPCODE(F64_PROMOTE_F32); RETURN(CONVERT); } -#line 3326 "src/prebuilt/wasm-ast-lexer-gen.c" -yy670: +#line 369 "src/wasm-ast-lexer.c" + { OPCODE(I32_GE_S); RETURN(COMPARE); } +#line 4176 "src/prebuilt/wasm-ast-lexer-gen.c" +yy658: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 382 "src/wasm-ast-lexer.c" - { OPCODE(F64_GE); RETURN(COMPARE); } -#line 3334 "src/prebuilt/wasm-ast-lexer-gen.c" -yy672: +#line 371 "src/wasm-ast-lexer.c" + { OPCODE(I32_GE_U); RETURN(COMPARE); } +#line 4184 "src/prebuilt/wasm-ast-lexer-gen.c" +yy660: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 380 "src/wasm-ast-lexer.c" - { OPCODE(F64_GT); RETURN(COMPARE); } -#line 3342 "src/prebuilt/wasm-ast-lexer-gen.c" -yy674: +#line 365 "src/wasm-ast-lexer.c" + { OPCODE(I32_GT_S); RETURN(COMPARE); } +#line 4192 "src/prebuilt/wasm-ast-lexer-gen.c" +yy662: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 372 "src/wasm-ast-lexer.c" - { OPCODE(F64_EQ); RETURN(COMPARE); } -#line 3350 "src/prebuilt/wasm-ast-lexer-gen.c" -yy676: - yych = *++lexer->cursor; - if (yych != 'v') goto yy82; +#line 367 "src/wasm-ast-lexer.c" + { OPCODE(I32_GT_U); RETURN(COMPARE); } +#line 4200 "src/prebuilt/wasm-ast-lexer-gen.c" +yy664: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 344 "src/wasm-ast-lexer.c" - { OPCODE(F64_DIV); RETURN(BINARY); } -#line 3360 "src/prebuilt/wasm-ast-lexer-gen.c" -yy679: - yych = *++lexer->cursor; - if (yych == 'x') goto yy686; - goto yy82; -yy680: - yych = *++lexer->cursor; - if (yych == 'n') goto yy684; - goto yy82; -yy681: - yych = *++lexer->cursor; - if (yych != 'l') goto yy82; +#line 361 "src/wasm-ast-lexer.c" + { OPCODE(I32_LE_S); RETURN(COMPARE); } +#line 4208 "src/prebuilt/wasm-ast-lexer-gen.c" +yy666: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 342 "src/wasm-ast-lexer.c" - { OPCODE(F64_MUL); RETURN(BINARY); } -#line 3378 "src/prebuilt/wasm-ast-lexer-gen.c" -yy684: +#line 363 "src/wasm-ast-lexer.c" + { OPCODE(I32_LE_U); RETURN(COMPARE); } +#line 4216 "src/prebuilt/wasm-ast-lexer-gen.c" +yy668: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if ((yych = *lexer->cursor) <= '8') { + if (yych <= ')') { + if (yych <= '!') { + if (yych >= '!') goto yy49; + } else { + if (yych <= '"') goto yy669; + if (yych <= '&') goto yy49; + } + } else { + if (yych <= '0') { + if (yych != ',') goto yy49; + } else { + if (yych <= '1') goto yy763; + if (yych <= '7') goto yy49; + goto yy764; + } + } + } 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; + } + } } -#line 346 "src/wasm-ast-lexer.c" - { OPCODE(F64_MIN); RETURN(BINARY); } -#line 3386 "src/prebuilt/wasm-ast-lexer-gen.c" -yy686: +yy669: +#line 258 "src/wasm-ast-lexer.c" + { OPCODE(I32_LOAD); RETURN(LOAD); } +#line 4254 "src/prebuilt/wasm-ast-lexer-gen.c" +yy670: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 348 "src/wasm-ast-lexer.c" - { OPCODE(F64_MAX); RETURN(BINARY); } -#line 3394 "src/prebuilt/wasm-ast-lexer-gen.c" -yy688: +#line 357 "src/wasm-ast-lexer.c" + { OPCODE(I32_LT_S); RETURN(COMPARE); } +#line 4262 "src/prebuilt/wasm-ast-lexer-gen.c" +yy672: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 359 "src/wasm-ast-lexer.c" + { OPCODE(I32_LT_U); RETURN(COMPARE); } +#line 4270 "src/prebuilt/wasm-ast-lexer-gen.c" +yy674: yych = *++lexer->cursor; - if (yych != 'u') goto yy82; + if (yych == 'n') goto yy765; + goto yy50; +yy675: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == 't') goto yy766; + goto yy50; +yy676: yych = *++lexer->cursor; - if (yych != 'c') goto yy82; + if (yych == 's') goto yy767; + if (yych == 'u') goto yy769; + goto yy50; +yy677: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 304 "src/wasm-ast-lexer.c" - { OPCODE(F64_TRUNC); RETURN(UNARY); } -#line 3408 "src/prebuilt/wasm-ast-lexer-gen.c" -yy693: +#line 335 "src/wasm-ast-lexer.c" + { OPCODE(I32_ROTL); RETURN(BINARY); } +#line 4291 "src/prebuilt/wasm-ast-lexer-gen.c" +yy679: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 337 "src/wasm-ast-lexer.c" + { OPCODE(I32_ROTR); RETURN(BINARY); } +#line 4299 "src/prebuilt/wasm-ast-lexer-gen.c" +yy681: yych = *++lexer->cursor; - if (yych != 'o') goto yy82; + if (yych == 's') goto yy771; + if (yych == 'u') goto yy773; + goto yy50; +yy682: yych = *++lexer->cursor; - if (yych != 'o') goto yy82; + if (yych == 'e') goto yy775; + goto yy50; +yy683: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 302 "src/wasm-ast-lexer.c" - { OPCODE(F64_FLOOR); RETURN(UNARY); } -#line 3422 "src/prebuilt/wasm-ast-lexer-gen.c" -yy698: + if (yych == 'c') goto yy777; + goto yy50; +yy684: yych = *++lexer->cursor; - if (yych == 's') goto yy702; - goto yy82; -yy699: + if (yych == '/') goto yy778; + goto yy50; +yy685: yych = *++lexer->cursor; - if (yych != 'd') goto yy82; + if (yych == 't') goto yy779; + goto yy50; +yy686: + yych = *++lexer->cursor; + if (yych == 's') goto yy781; + if (yych == 'u') goto yy783; + goto yy50; +yy687: + yych = *++lexer->cursor; + if (yych == 'n') goto yy785; + goto yy50; +yy688: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 338 "src/wasm-ast-lexer.c" - { OPCODE(F64_ADD); RETURN(BINARY); } -#line 3436 "src/prebuilt/wasm-ast-lexer-gen.c" -yy702: +#line 370 "src/wasm-ast-lexer.c" + { OPCODE(I64_GE_S); RETURN(COMPARE); } +#line 4337 "src/prebuilt/wasm-ast-lexer-gen.c" +yy690: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 296 "src/wasm-ast-lexer.c" - { OPCODE(F64_ABS); RETURN(UNARY); } -#line 3444 "src/prebuilt/wasm-ast-lexer-gen.c" -yy704: +#line 372 "src/wasm-ast-lexer.c" + { OPCODE(I64_GE_U); RETURN(COMPARE); } +#line 4345 "src/prebuilt/wasm-ast-lexer-gen.c" +yy692: ++lexer->cursor; - if ((yych = *lexer->cursor) <= '[') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 366 "src/wasm-ast-lexer.c" + { OPCODE(I64_GT_S); RETURN(COMPARE); } +#line 4353 "src/prebuilt/wasm-ast-lexer-gen.c" +yy694: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 368 "src/wasm-ast-lexer.c" + { OPCODE(I64_GT_U); RETURN(COMPARE); } +#line 4361 "src/prebuilt/wasm-ast-lexer-gen.c" +yy696: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 362 "src/wasm-ast-lexer.c" + { OPCODE(I64_LE_S); RETURN(COMPARE); } +#line 4369 "src/prebuilt/wasm-ast-lexer-gen.c" +yy698: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 364 "src/wasm-ast-lexer.c" + { OPCODE(I64_LE_U); RETURN(COMPARE); } +#line 4377 "src/prebuilt/wasm-ast-lexer-gen.c" +yy700: + ++lexer->cursor; + if ((yych = *lexer->cursor) <= '7') { + if (yych <= '+') { + if (yych <= '"') { + if (yych == '!') goto yy49; } else { - if (yych <= '"') goto yy705; - if (yych <= '&') goto yy81; + if (yych <= '&') goto yy49; + if (yych >= '*') goto yy49; } } else { - if (yych <= ':') { - if (yych != ',') goto yy81; + if (yych <= '1') { + if (yych <= ',') goto yy701; + if (yych <= '0') goto yy49; + goto yy786; } else { - if (yych <= ';') goto yy705; - if (yych <= 'Z') goto yy81; + if (yych == '3') goto yy787; + goto yy49; } } } else { - if (yych <= 'g') { - if (yych <= '`') { - if (yych != ']') goto yy81; + if (yych <= '\\') { + if (yych <= ';') { + if (yych <= '8') goto yy788; + if (yych <= ':') goto yy49; } else { - if (yych <= 'a') goto yy708; - if (yych <= 'f') goto yy81; - goto yy706; + if (yych != '[') goto yy49; } } else { - if (yych <= '|') { - if (yych != '{') goto yy81; + if (yych <= '{') { + if (yych <= ']') goto yy701; + if (yych <= 'z') goto yy49; } else { - if (yych == '~') goto yy81; + if (yych == '}') goto yy701; + if (yych <= '~') goto yy49; } } } -yy705: -#line 374 "src/wasm-ast-lexer.c" - { OPCODE(F64_NE); RETURN(COMPARE); } -#line 3483 "src/prebuilt/wasm-ast-lexer-gen.c" -yy706: +yy701: +#line 259 "src/wasm-ast-lexer.c" + { OPCODE(I64_LOAD); RETURN(LOAD); } +#line 4419 "src/prebuilt/wasm-ast-lexer-gen.c" +yy702: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 294 "src/wasm-ast-lexer.c" - { OPCODE(F64_NEG); RETURN(UNARY); } -#line 3491 "src/prebuilt/wasm-ast-lexer-gen.c" -yy708: - yych = *++lexer->cursor; - if (yych != 'r') goto yy82; +#line 358 "src/wasm-ast-lexer.c" + { OPCODE(I64_LT_S); RETURN(COMPARE); } +#line 4427 "src/prebuilt/wasm-ast-lexer-gen.c" +yy704: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 360 "src/wasm-ast-lexer.c" + { OPCODE(I64_LT_U); RETURN(COMPARE); } +#line 4435 "src/prebuilt/wasm-ast-lexer-gen.c" +yy706: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'n') goto yy789; + goto yy50; +yy707: yych = *++lexer->cursor; - if (yych != 's') goto yy82; + if (yych == 't') goto yy790; + goto yy50; +yy708: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 's') goto yy791; + if (yych == 'u') goto yy793; + goto yy50; +yy709: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 306 "src/wasm-ast-lexer.c" - { OPCODE(F64_NEAREST); RETURN(UNARY); } -#line 3507 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 336 "src/wasm-ast-lexer.c" + { OPCODE(I64_ROTL); RETURN(BINARY); } +#line 4456 "src/prebuilt/wasm-ast-lexer-gen.c" +yy711: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 338 "src/wasm-ast-lexer.c" + { OPCODE(I64_ROTR); RETURN(BINARY); } +#line 4464 "src/prebuilt/wasm-ast-lexer-gen.c" +yy713: + yych = *++lexer->cursor; + if (yych == 's') goto yy795; + if (yych == 'u') goto yy797; + goto yy50; yy714: yych = *++lexer->cursor; - if (yych == 'i') goto yy750; - goto yy82; + if (yych == 'e') goto yy799; + goto yy50; yy715: yych = *++lexer->cursor; - if (yych == 'n') goto yy716; - if (yych == 'p') goto yy717; - goto yy82; + if (yych == 'c') goto yy801; + goto yy50; yy716: yych = *++lexer->cursor; - if (yych == 's') goto yy724; - if (yych == 'v') goto yy725; - goto yy82; + if (yybm[0+yych] & 16) { + goto yy49; + } + goto yy170; yy717: + ++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 yy719; + if (yych <= '&') goto yy49; + } + } else { + if (yych <= ',') { + if (yych <= '+') goto yy49; + } else { + if (yych <= '/') goto yy49; + if (yych <= '9') goto yy717; + 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; + } + } + } +yy719: +#line 281 "src/wasm-ast-lexer.c" + { TEXT_AT(7); RETURN(OFFSET); } +#line 4523 "src/prebuilt/wasm-ast-lexer-gen.c" +yy720: yych = *++lexer->cursor; - if (yych != 'y') goto yy82; - yych = *++lexer->cursor; - if (yych != 's') goto yy82; + if (yych == 'l') goto yy802; + goto yy50; +yy721: yych = *++lexer->cursor; - if (yych != 'i') goto yy82; + if (yych == 'b') goto yy804; + goto yy50; +yy722: yych = *++lexer->cursor; - if (yych != 'g') goto yy82; + if (yych == 'v') goto yy805; + goto yy50; +yy723: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 350 "src/wasm-ast-lexer.c" - { OPCODE(F64_COPYSIGN); RETURN(BINARY); } -#line 3539 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 't') goto yy806; + goto yy50; yy724: yych = *++lexer->cursor; - if (yych == 't') goto yy748; - goto yy82; + if (yych == 'a') goto yy807; + goto yy50; yy725: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'r') goto yy808; + goto yy50; +yy726: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'r') goto yy809; + goto yy50; +yy727: yych = *++lexer->cursor; - if (yych != 't') goto yy82; - yych = *++lexer->cursor; - if (yych != '_') goto yy82; - yych = *++lexer->cursor; - if (yych == 's') goto yy730; - if (yych == 'u') goto yy731; - goto yy82; + if (yych == 'e') goto yy810; + goto yy50; +yy728: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 285 "src/wasm-ast-lexer.c" + { TYPE(F32); RETURN(CONST); } +#line 4563 "src/prebuilt/wasm-ast-lexer-gen.c" yy730: yych = *++lexer->cursor; - if (yych == '/') goto yy740; - goto yy82; + if (yych == 'r') goto yy811; + goto yy50; yy731: yych = *++lexer->cursor; - if (yych != '/') goto yy82; + if (yych == 'i') goto yy812; + goto yy50; +yy732: yych = *++lexer->cursor; - if (yych != 'i') goto yy82; - yych = *++lexer->cursor; - if (yych == '3') goto yy734; - if (yych == '6') goto yy735; - goto yy82; -yy734: - yych = *++lexer->cursor; - if (yych == '2') goto yy738; - goto yy82; -yy735: - yych = *++lexer->cursor; - if (yych != '4') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 401 "src/wasm-ast-lexer.c" - { OPCODE(F64_CONVERT_U_I64); RETURN(CONVERT); } -#line 3583 "src/prebuilt/wasm-ast-lexer-gen.c" -yy738: + if (yych == 'e') goto yy813; + goto yy50; +yy733: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 399 "src/wasm-ast-lexer.c" - { OPCODE(F64_CONVERT_U_I32); RETURN(CONVERT); } -#line 3591 "src/prebuilt/wasm-ast-lexer-gen.c" -yy740: - yych = *++lexer->cursor; - if (yych != 'i') goto yy82; - yych = *++lexer->cursor; - if (yych == '3') goto yy742; - if (yych == '6') goto yy743; - goto yy82; -yy742: +#line 303 "src/wasm-ast-lexer.c" + { OPCODE(F32_FLOOR); RETURN(UNARY); } +#line 4583 "src/prebuilt/wasm-ast-lexer-gen.c" +yy735: yych = *++lexer->cursor; - if (yych == '2') goto yy746; - goto yy82; -yy743: + if (yych == 's') goto yy814; + goto yy50; +yy736: yych = *++lexer->cursor; - if (yych != '4') goto yy82; + if (yych == 'e') goto yy815; + goto yy50; +yy737: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 397 "src/wasm-ast-lexer.c" - { OPCODE(F64_CONVERT_S_I64); RETURN(CONVERT); } -#line 3612 "src/prebuilt/wasm-ast-lexer-gen.c" -yy746: +#line 264 "src/wasm-ast-lexer.c" + { OPCODE(F32_STORE); RETURN(STORE); } +#line 4599 "src/prebuilt/wasm-ast-lexer-gen.c" +yy739: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 395 "src/wasm-ast-lexer.c" - { OPCODE(F64_CONVERT_S_I32); RETURN(CONVERT); } -#line 3620 "src/prebuilt/wasm-ast-lexer-gen.c" -yy748: +#line 305 "src/wasm-ast-lexer.c" + { OPCODE(F32_TRUNC); RETURN(UNARY); } +#line 4607 "src/prebuilt/wasm-ast-lexer-gen.c" +yy741: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 284 "src/wasm-ast-lexer.c" +#line 286 "src/wasm-ast-lexer.c" { TYPE(F64); RETURN(CONST); } -#line 3628 "src/prebuilt/wasm-ast-lexer-gen.c" -yy750: +#line 4615 "src/prebuilt/wasm-ast-lexer-gen.c" +yy743: + yych = *++lexer->cursor; + if (yych == 'r') goto yy816; + goto yy50; +yy744: yych = *++lexer->cursor; - if (yych != 'l') goto yy82; + if (yych == 'i') goto yy817; + goto yy50; +yy745: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 300 "src/wasm-ast-lexer.c" - { OPCODE(F64_CEIL); RETURN(UNARY); } -#line 3638 "src/prebuilt/wasm-ast-lexer-gen.c" -yy753: +#line 304 "src/wasm-ast-lexer.c" + { OPCODE(F64_FLOOR); RETURN(UNARY); } +#line 4631 "src/prebuilt/wasm-ast-lexer-gen.c" +yy747: yych = *++lexer->cursor; - if (yych == 'r') goto yy762; - goto yy82; -yy754: + if (yych == 's') goto yy818; + goto yy50; +yy748: yych = *++lexer->cursor; - if (yych == 'o') goto yy758; - goto yy82; -yy755: + if (yych == 't') goto yy819; + goto yy50; +yy749: yych = *++lexer->cursor; - if (yych != 'b') goto yy82; + if (yych == 'e') goto yy820; + goto yy50; +yy750: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 340 "src/wasm-ast-lexer.c" - { OPCODE(F64_SUB); RETURN(BINARY); } -#line 3656 "src/prebuilt/wasm-ast-lexer-gen.c" -yy758: - yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - yych = *++lexer->cursor; - if (yych != 'e') goto yy82; +#line 265 "src/wasm-ast-lexer.c" + { OPCODE(F64_STORE); RETURN(STORE); } +#line 4651 "src/prebuilt/wasm-ast-lexer-gen.c" +yy752: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 263 "src/wasm-ast-lexer.c" - { OPCODE(F64_STORE); RETURN(STORE); } -#line 3668 "src/prebuilt/wasm-ast-lexer-gen.c" -yy762: +#line 306 "src/wasm-ast-lexer.c" + { OPCODE(F64_TRUNC); RETURN(UNARY); } +#line 4659 "src/prebuilt/wasm-ast-lexer-gen.c" +yy754: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 256 "src/wasm-ast-lexer.c" + { RETURN(GET_LOCAL); } +#line 4667 "src/prebuilt/wasm-ast-lexer-gen.c" +yy756: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'r') goto yy821; + goto yy50; +yy757: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 298 "src/wasm-ast-lexer.c" - { OPCODE(F64_SQRT); RETURN(UNARY); } -#line 3678 "src/prebuilt/wasm-ast-lexer-gen.c" -yy765: +#line 283 "src/wasm-ast-lexer.c" + { TYPE(I32); RETURN(CONST); } +#line 4679 "src/prebuilt/wasm-ast-lexer-gen.c" +yy759: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 378 "src/wasm-ast-lexer.c" - { OPCODE(F64_LE); RETURN(COMPARE); } -#line 3686 "src/prebuilt/wasm-ast-lexer-gen.c" -yy767: - yych = *++lexer->cursor; - if (yych == 'a') goto yy770; - goto yy82; -yy768: +#line 315 "src/wasm-ast-lexer.c" + { OPCODE(I32_DIV_S); RETURN(BINARY); } +#line 4687 "src/prebuilt/wasm-ast-lexer-gen.c" +yy761: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 376 "src/wasm-ast-lexer.c" - { OPCODE(F64_LT); RETURN(COMPARE); } -#line 3698 "src/prebuilt/wasm-ast-lexer-gen.c" -yy770: +#line 317 "src/wasm-ast-lexer.c" + { OPCODE(I32_DIV_U); RETURN(BINARY); } +#line 4695 "src/prebuilt/wasm-ast-lexer-gen.c" +yy763: + yych = *++lexer->cursor; + if (yych == '6') goto yy822; + goto yy50; +yy764: + yych = *++lexer->cursor; + if (yych == '_') goto yy823; + goto yy50; +yy765: + yych = *++lexer->cursor; + if (yych == 't') goto yy824; + goto yy50; +yy766: yych = *++lexer->cursor; - if (yych != 'd') goto yy82; + if (yych == 'e') goto yy826; + goto yy50; +yy767: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 259 "src/wasm-ast-lexer.c" - { OPCODE(F64_LOAD); RETURN(LOAD); } -#line 3708 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 319 "src/wasm-ast-lexer.c" + { OPCODE(I32_REM_S); RETURN(BINARY); } +#line 4719 "src/prebuilt/wasm-ast-lexer-gen.c" +yy769: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 321 "src/wasm-ast-lexer.c" + { OPCODE(I32_REM_U); RETURN(BINARY); } +#line 4727 "src/prebuilt/wasm-ast-lexer-gen.c" +yy771: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 331 "src/wasm-ast-lexer.c" + { OPCODE(I32_SHR_S); RETURN(BINARY); } +#line 4735 "src/prebuilt/wasm-ast-lexer-gen.c" yy773: ++lexer->cursor; - if ((yych = *lexer->cursor) <= ':') { + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 333 "src/wasm-ast-lexer.c" + { OPCODE(I32_SHR_U); RETURN(BINARY); } +#line 4743 "src/prebuilt/wasm-ast-lexer-gen.c" +yy775: + ++lexer->cursor; + if ((yych = *lexer->cursor) <= '8') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy81; + if (yych >= '!') goto yy49; } else { - if (yych <= '"') goto yy774; - if (yych <= '&') goto yy81; + if (yych <= '"') goto yy776; + if (yych <= '&') goto yy49; } } else { - if (yych <= ',') { - if (yych <= '+') goto yy81; + if (yych <= '0') { + if (yych != ',') goto yy49; } else { - if (yych == '.') goto yy775; - goto yy81; + if (yych <= '1') goto yy827; + if (yych <= '7') goto yy49; + goto yy828; } } } else { if (yych <= ']') { if (yych <= 'Z') { - if (yych >= '<') goto yy81; + if (yych != ';') goto yy49; } else { - if (yych == '\\') goto yy81; + if (yych == '\\') goto yy49; } } else { if (yych <= '|') { - if (yych != '{') goto yy81; + if (yych != '{') goto yy49; } else { - if (yych == '~') goto yy81; + if (yych == '~') goto yy49; } } } -yy774: -#line 237 "src/wasm-ast-lexer.c" - { TYPE(F32); RETURN(VALUE_TYPE); } -#line 3745 "src/prebuilt/wasm-ast-lexer-gen.c" -yy775: - yych = *++lexer->cursor; - switch (yych) { - case 'a': goto yy780; - case 'c': goto yy778; - case 'd': goto yy784; - case 'e': goto yy785; - case 'f': goto yy781; - case 'g': goto yy786; - case 'l': goto yy776; - case 'm': goto yy783; - case 'n': goto yy779; - case 'r': goto yy787; - case 's': goto yy777; - case 't': goto yy782; - default: goto yy82; - } yy776: - yych = *++lexer->cursor; - if (yych <= 'n') { - if (yych == 'e') goto yy908; - goto yy82; - } else { - if (yych <= 'o') goto yy910; - if (yych == 't') goto yy911; - goto yy82; - } +#line 262 "src/wasm-ast-lexer.c" + { OPCODE(I32_STORE); RETURN(STORE); } +#line 4781 "src/prebuilt/wasm-ast-lexer-gen.c" yy777: yych = *++lexer->cursor; - if (yych <= 's') { - if (yych == 'q') goto yy896; - goto yy82; - } else { - if (yych <= 't') goto yy897; - if (yych <= 'u') goto yy898; - goto yy82; - } + if (yych == '_') goto yy830; + goto yy50; yy778: yych = *++lexer->cursor; - if (yych == 'e') goto yy857; - if (yych == 'o') goto yy858; - goto yy82; + if (yych == 'i') goto yy831; + goto yy50; yy779: - yych = *++lexer->cursor; - if (yych == 'e') goto yy847; - goto yy82; -yy780: - yych = *++lexer->cursor; - if (yych == 'b') goto yy841; - if (yych == 'd') goto yy842; - goto yy82; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 284 "src/wasm-ast-lexer.c" + { TYPE(I64); RETURN(CONST); } +#line 4797 "src/prebuilt/wasm-ast-lexer-gen.c" yy781: - yych = *++lexer->cursor; - if (yych == 'l') goto yy836; - goto yy82; -yy782: - yych = *++lexer->cursor; - if (yych == 'r') goto yy831; - goto yy82; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 316 "src/wasm-ast-lexer.c" + { OPCODE(I64_DIV_S); RETURN(BINARY); } +#line 4805 "src/prebuilt/wasm-ast-lexer-gen.c" yy783: - yych = *++lexer->cursor; - if (yych <= 'h') { - if (yych == 'a') goto yy822; - goto yy82; - } else { - if (yych <= 'i') goto yy823; - if (yych == 'u') goto yy824; - goto yy82; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -yy784: - yych = *++lexer->cursor; - if (yych == 'e') goto yy809; - if (yych == 'i') goto yy810; - goto yy82; +#line 318 "src/wasm-ast-lexer.c" + { OPCODE(I64_DIV_U); RETURN(BINARY); } +#line 4813 "src/prebuilt/wasm-ast-lexer-gen.c" yy785: yych = *++lexer->cursor; - if (yych == 'q') goto yy807; - goto yy82; + if (yych == 'd') goto yy832; + goto yy50; yy786: yych = *++lexer->cursor; - if (yych == 'e') goto yy803; - if (yych == 't') goto yy805; - goto yy82; + if (yych == '6') goto yy833; + goto yy50; yy787: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - yych = *++lexer->cursor; - if (yych != 'i') goto yy82; - yych = *++lexer->cursor; - if (yych != 'n') goto yy82; - yych = *++lexer->cursor; - if (yych != 't') goto yy82; - yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - yych = *++lexer->cursor; - if (yych != 'p') goto yy82; + if (yych == '2') goto yy834; + goto yy50; +yy788: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == '_') goto yy835; + goto yy50; +yy789: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 't') goto yy836; + goto yy50; +yy790: yych = *++lexer->cursor; - if (yych != 't') goto yy82; - yych = *++lexer->cursor; - if (yych != '/') goto yy82; - yych = *++lexer->cursor; - if (yych != 'i') goto yy82; - yych = *++lexer->cursor; - if (yych != '3') goto yy82; - yych = *++lexer->cursor; - if (yych != '2') goto yy82; + if (yych == 'e') goto yy838; + goto yy50; +yy791: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 404 "src/wasm-ast-lexer.c" - { OPCODE(F32_REINTERPRET_I32); RETURN(CONVERT); } -#line 3864 "src/prebuilt/wasm-ast-lexer-gen.c" -yy803: +#line 320 "src/wasm-ast-lexer.c" + { OPCODE(I64_REM_S); RETURN(BINARY); } +#line 4845 "src/prebuilt/wasm-ast-lexer-gen.c" +yy793: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 381 "src/wasm-ast-lexer.c" - { OPCODE(F32_GE); RETURN(COMPARE); } -#line 3872 "src/prebuilt/wasm-ast-lexer-gen.c" -yy805: +#line 322 "src/wasm-ast-lexer.c" + { OPCODE(I64_REM_U); RETURN(BINARY); } +#line 4853 "src/prebuilt/wasm-ast-lexer-gen.c" +yy795: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 379 "src/wasm-ast-lexer.c" - { OPCODE(F32_GT); RETURN(COMPARE); } -#line 3880 "src/prebuilt/wasm-ast-lexer-gen.c" -yy807: +#line 332 "src/wasm-ast-lexer.c" + { OPCODE(I64_SHR_S); RETURN(BINARY); } +#line 4861 "src/prebuilt/wasm-ast-lexer-gen.c" +yy797: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 371 "src/wasm-ast-lexer.c" - { OPCODE(F32_EQ); RETURN(COMPARE); } -#line 3888 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 334 "src/wasm-ast-lexer.c" + { OPCODE(I64_SHR_U); RETURN(BINARY); } +#line 4869 "src/prebuilt/wasm-ast-lexer-gen.c" +yy799: + ++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 yy800; + if (yych <= '0') goto yy49; + goto yy839; + } else { + if (yych == '3') goto yy840; + goto yy49; + } + } + } else { + if (yych <= '\\') { + if (yych <= ';') { + if (yych <= '8') goto yy841; + if (yych <= ':') goto yy49; + } else { + if (yych != '[') goto yy49; + } + } else { + if (yych <= '{') { + if (yych <= ']') goto yy800; + if (yych <= 'z') goto yy49; + } else { + if (yych == '}') goto yy800; + if (yych <= '~') goto yy49; + } + } + } +yy800: +#line 263 "src/wasm-ast-lexer.c" + { OPCODE(I64_STORE); RETURN(STORE); } +#line 4911 "src/prebuilt/wasm-ast-lexer-gen.c" +yy801: + yych = *++lexer->cursor; + if (yych == '_') goto yy843; + goto yy50; +yy802: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 257 "src/wasm-ast-lexer.c" + { RETURN(SET_LOCAL); } +#line 4923 "src/prebuilt/wasm-ast-lexer-gen.c" +yy804: + yych = *++lexer->cursor; + if (yych == 'l') goto yy844; + goto yy50; +yy805: + yych = *++lexer->cursor; + if (yych == 'a') goto yy845; + goto yy50; +yy806: + yych = *++lexer->cursor; + if (yych == 'u') goto yy846; + goto yy50; +yy807: + yych = *++lexer->cursor; + if (yych == 'p') goto yy847; + goto yy50; +yy808: + yych = *++lexer->cursor; + if (yych == 't') goto yy849; + goto yy50; yy809: yych = *++lexer->cursor; - if (yych == 'm') goto yy813; - goto yy82; + if (yych == 'e') goto yy851; + goto yy50; yy810: yych = *++lexer->cursor; - if (yych != 'v') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 343 "src/wasm-ast-lexer.c" - { OPCODE(F32_DIV); RETURN(BINARY); } -#line 3902 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 'm') goto yy852; + goto yy50; +yy811: + yych = *++lexer->cursor; + if (yych == 't') goto yy853; + goto yy50; +yy812: + yych = *++lexer->cursor; + if (yych == 'g') goto yy854; + goto yy50; yy813: yych = *++lexer->cursor; - if (yych != 'o') goto yy82; + if (yych == '/') goto yy855; + goto yy50; +yy814: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 't') goto yy856; + goto yy50; +yy815: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'r') goto yy858; + goto yy50; +yy816: yych = *++lexer->cursor; - if (yych != '/') goto yy82; + if (yych == 't') goto yy859; + goto yy50; +yy817: yych = *++lexer->cursor; - if (yych != 'f') goto yy82; + if (yych == 'g') goto yy860; + goto yy50; +yy818: yych = *++lexer->cursor; - if (yych != '6') goto yy82; + if (yych == 't') goto yy861; + goto yy50; +yy819: yych = *++lexer->cursor; - if (yych != '4') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 403 "src/wasm-ast-lexer.c" - { OPCODE(F32_DEMOTE_F64); RETURN(CONVERT); } -#line 3924 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 'e') goto yy863; + goto yy50; +yy820: + yych = *++lexer->cursor; + if (yych == 'r') goto yy864; + goto yy50; +yy821: + yych = *++lexer->cursor; + if (yych == 'y') goto yy865; + goto yy50; yy822: yych = *++lexer->cursor; - if (yych == 'x') goto yy829; - goto yy82; + if (yych == '_') goto yy867; + goto yy50; yy823: yych = *++lexer->cursor; - if (yych == 'n') goto yy827; - goto yy82; + if (yych == 's') goto yy868; + if (yych == 'u') goto yy870; + goto yy50; yy824: - yych = *++lexer->cursor; - if (yych != 'l') goto yy82; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 341 "src/wasm-ast-lexer.c" - { OPCODE(F32_MUL); RETURN(BINARY); } -#line 3942 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 293 "src/wasm-ast-lexer.c" + { OPCODE(I32_POPCNT); RETURN(UNARY); } +#line 5012 "src/prebuilt/wasm-ast-lexer-gen.c" +yy826: + yych = *++lexer->cursor; + if (yych == 'r') goto yy872; + goto yy50; yy827: + yych = *++lexer->cursor; + if (yych == '6') goto yy873; + goto yy50; +yy828: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 345 "src/wasm-ast-lexer.c" - { OPCODE(F32_MIN); RETURN(BINARY); } -#line 3950 "src/prebuilt/wasm-ast-lexer-gen.c" -yy829: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 347 "src/wasm-ast-lexer.c" - { OPCODE(F32_MAX); RETURN(BINARY); } -#line 3958 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 276 "src/wasm-ast-lexer.c" + { OPCODE(I32_STORE8); RETURN(STORE); } +#line 5028 "src/prebuilt/wasm-ast-lexer-gen.c" +yy830: + yych = *++lexer->cursor; + if (yych == 's') goto yy875; + if (yych == 'u') goto yy876; + goto yy50; yy831: yych = *++lexer->cursor; - if (yych != 'u') goto yy82; + if (yych == '6') goto yy877; + goto yy50; +yy832: + yych = *++lexer->cursor; + if (yych == '_') goto yy878; + goto yy50; +yy833: + yych = *++lexer->cursor; + if (yych == '_') goto yy879; + goto yy50; +yy834: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == '_') goto yy880; + goto yy50; +yy835: yych = *++lexer->cursor; - if (yych != 'c') goto yy82; + if (yych == 's') goto yy881; + if (yych == 'u') goto yy883; + goto yy50; +yy836: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 303 "src/wasm-ast-lexer.c" - { OPCODE(F32_TRUNC); RETURN(UNARY); } -#line 3972 "src/prebuilt/wasm-ast-lexer-gen.c" -yy836: +#line 294 "src/wasm-ast-lexer.c" + { OPCODE(I64_POPCNT); RETURN(UNARY); } +#line 5062 "src/prebuilt/wasm-ast-lexer-gen.c" +yy838: yych = *++lexer->cursor; - if (yych != 'o') goto yy82; + if (yych == 'r') goto yy885; + goto yy50; +yy839: yych = *++lexer->cursor; - if (yych != 'o') goto yy82; + if (yych == '6') goto yy886; + goto yy50; +yy840: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == '2') goto yy888; + goto yy50; +yy841: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 301 "src/wasm-ast-lexer.c" - { OPCODE(F32_FLOOR); RETURN(UNARY); } -#line 3986 "src/prebuilt/wasm-ast-lexer-gen.c" -yy841: +#line 277 "src/wasm-ast-lexer.c" + { OPCODE(I64_STORE8); RETURN(STORE); } +#line 5082 "src/prebuilt/wasm-ast-lexer-gen.c" +yy843: yych = *++lexer->cursor; - if (yych == 's') goto yy845; - goto yy82; -yy842: + if (yych == 's') goto yy890; + if (yych == 'u') goto yy891; + goto yy50; +yy844: yych = *++lexer->cursor; - if (yych != 'd') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 337 "src/wasm-ast-lexer.c" - { OPCODE(F32_ADD); RETURN(BINARY); } -#line 4000 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 'e') goto yy892; + goto yy50; yy845: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 295 "src/wasm-ast-lexer.c" - { OPCODE(F32_ABS); RETURN(UNARY); } -#line 4008 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'l') goto yy894; + goto yy50; +yy846: + yych = *++lexer->cursor; + if (yych == 'r') goto yy895; + goto yy50; yy847: ++lexer->cursor; - if ((yych = *lexer->cursor) <= '[') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy81; - } else { - if (yych <= '"') goto yy848; - if (yych <= '&') goto yy81; - } - } else { - if (yych <= ':') { - if (yych != ',') goto yy81; - } else { - if (yych <= ';') goto yy848; - if (yych <= 'Z') goto yy81; - } - } - } else { - if (yych <= 'g') { - if (yych <= '`') { - if (yych != ']') goto yy81; - } else { - if (yych <= 'a') goto yy851; - if (yych <= 'f') goto yy81; - goto yy849; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy81; - } else { - if (yych == '~') goto yy81; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -yy848: -#line 373 "src/wasm-ast-lexer.c" - { OPCODE(F32_NE); RETURN(COMPARE); } -#line 4047 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 429 "src/wasm-ast-lexer.c" + { RETURN(ASSERT_TRAP); } +#line 5107 "src/prebuilt/wasm-ast-lexer-gen.c" yy849: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 293 "src/wasm-ast-lexer.c" - { OPCODE(F32_NEG); RETURN(UNARY); } -#line 4055 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 253 "src/wasm-ast-lexer.c" + { RETURN(CALL_IMPORT); } +#line 5115 "src/prebuilt/wasm-ast-lexer-gen.c" yy851: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'c') goto yy896; + goto yy50; +yy852: + yych = *++lexer->cursor; + if (yych == 'o') goto yy897; + goto yy50; +yy853: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == '_') goto yy898; + goto yy50; +yy854: yych = *++lexer->cursor; - if (yych != 's') goto yy82; + if (yych == 'n') goto yy899; + goto yy50; +yy855: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'f') goto yy901; + goto yy50; +yy856: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 305 "src/wasm-ast-lexer.c" +#line 307 "src/wasm-ast-lexer.c" { OPCODE(F32_NEAREST); RETURN(UNARY); } -#line 4071 "src/prebuilt/wasm-ast-lexer-gen.c" -yy857: - yych = *++lexer->cursor; - if (yych == 'i') goto yy893; - goto yy82; +#line 5143 "src/prebuilt/wasm-ast-lexer-gen.c" yy858: yych = *++lexer->cursor; - if (yych == 'n') goto yy859; - if (yych == 'p') goto yy860; - goto yy82; + if (yych == 'p') goto yy902; + goto yy50; yy859: yych = *++lexer->cursor; - if (yych == 's') goto yy867; - if (yych == 'v') goto yy868; - goto yy82; + if (yych == '_') goto yy903; + goto yy50; yy860: yych = *++lexer->cursor; - if (yych != 'y') goto yy82; - yych = *++lexer->cursor; - if (yych != 's') goto yy82; - yych = *++lexer->cursor; - if (yych != 'i') goto yy82; + if (yych == 'n') goto yy904; + goto yy50; +yy861: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 308 "src/wasm-ast-lexer.c" + { OPCODE(F64_NEAREST); RETURN(UNARY); } +#line 5163 "src/prebuilt/wasm-ast-lexer-gen.c" +yy863: yych = *++lexer->cursor; - if (yych != 'g') goto yy82; + if (yych == '/') goto yy906; + goto yy50; +yy864: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == 'p') goto yy907; + goto yy50; +yy865: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 349 "src/wasm-ast-lexer.c" - { OPCODE(F32_COPYSIGN); RETURN(BINARY); } -#line 4103 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 413 "src/wasm-ast-lexer.c" + { RETURN(GROW_MEMORY); } +#line 5179 "src/prebuilt/wasm-ast-lexer-gen.c" yy867: yych = *++lexer->cursor; - if (yych == 't') goto yy891; - goto yy82; + if (yych == 's') goto yy908; + if (yych == 'u') goto yy910; + goto yy50; yy868: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 266 "src/wasm-ast-lexer.c" + { OPCODE(I32_LOAD8_S); RETURN(LOAD); } +#line 5192 "src/prebuilt/wasm-ast-lexer-gen.c" +yy870: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 268 "src/wasm-ast-lexer.c" + { OPCODE(I32_LOAD8_U); RETURN(LOAD); } +#line 5200 "src/prebuilt/wasm-ast-lexer-gen.c" +yy872: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - yych = *++lexer->cursor; - if (yych != 't') goto yy82; - yych = *++lexer->cursor; - if (yych != '_') goto yy82; - yych = *++lexer->cursor; - if (yych == 's') goto yy873; - if (yych == 'u') goto yy874; - goto yy82; + if (yych == 'p') goto yy912; + goto yy50; yy873: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 278 "src/wasm-ast-lexer.c" + { OPCODE(I32_STORE16); RETURN(STORE); } +#line 5212 "src/prebuilt/wasm-ast-lexer-gen.c" +yy875: yych = *++lexer->cursor; - if (yych == '/') goto yy883; - goto yy82; -yy874: - yych = *++lexer->cursor; - if (yych != '/') goto yy82; - yych = *++lexer->cursor; - if (yych != 'i') goto yy82; + if (yych == '/') goto yy913; + goto yy50; +yy876: yych = *++lexer->cursor; - if (yych == '3') goto yy877; - if (yych == '6') goto yy878; - goto yy82; + if (yych == '/') goto yy914; + goto yy50; yy877: yych = *++lexer->cursor; - if (yych == '2') goto yy881; - goto yy82; + if (yych == '4') goto yy915; + goto yy50; yy878: yych = *++lexer->cursor; - if (yych != '4') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 400 "src/wasm-ast-lexer.c" - { OPCODE(F32_CONVERT_U_I64); RETURN(CONVERT); } -#line 4147 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == 's') goto yy917; + if (yych == 'u') goto yy918; + goto yy50; +yy879: + yych = *++lexer->cursor; + if (yych == 's') goto yy919; + if (yych == 'u') goto yy921; + goto yy50; +yy880: + yych = *++lexer->cursor; + if (yych == 's') goto yy923; + if (yych == 'u') goto yy925; + goto yy50; yy881: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 398 "src/wasm-ast-lexer.c" - { OPCODE(F32_CONVERT_U_I32); RETURN(CONVERT); } -#line 4155 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 267 "src/wasm-ast-lexer.c" + { OPCODE(I64_LOAD8_S); RETURN(LOAD); } +#line 5247 "src/prebuilt/wasm-ast-lexer-gen.c" yy883: - yych = *++lexer->cursor; - if (yych != 'i') goto yy82; - yych = *++lexer->cursor; - if (yych == '3') goto yy885; - if (yych == '6') goto yy886; - goto yy82; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 269 "src/wasm-ast-lexer.c" + { OPCODE(I64_LOAD8_U); RETURN(LOAD); } +#line 5255 "src/prebuilt/wasm-ast-lexer-gen.c" yy885: yych = *++lexer->cursor; - if (yych == '2') goto yy889; - goto yy82; + if (yych == 'p') goto yy927; + goto yy50; yy886: - yych = *++lexer->cursor; - if (yych != '4') goto yy82; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 396 "src/wasm-ast-lexer.c" - { OPCODE(F32_CONVERT_S_I64); RETURN(CONVERT); } -#line 4176 "src/prebuilt/wasm-ast-lexer-gen.c" -yy889: +#line 279 "src/wasm-ast-lexer.c" + { OPCODE(I64_STORE16); RETURN(STORE); } +#line 5267 "src/prebuilt/wasm-ast-lexer-gen.c" +yy888: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 394 "src/wasm-ast-lexer.c" - { OPCODE(F32_CONVERT_S_I32); RETURN(CONVERT); } -#line 4184 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 280 "src/wasm-ast-lexer.c" + { OPCODE(I64_STORE32); RETURN(STORE); } +#line 5275 "src/prebuilt/wasm-ast-lexer-gen.c" +yy890: + yych = *++lexer->cursor; + if (yych == '/') goto yy928; + goto yy50; yy891: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 283 "src/wasm-ast-lexer.c" - { TYPE(F32); RETURN(CONST); } -#line 4192 "src/prebuilt/wasm-ast-lexer-gen.c" -yy893: yych = *++lexer->cursor; - if (yych != 'l') goto yy82; + if (yych == '/') goto yy929; + goto yy50; +yy892: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 299 "src/wasm-ast-lexer.c" - { OPCODE(F32_CEIL); RETURN(UNARY); } -#line 4202 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 411 "src/wasm-ast-lexer.c" + { RETURN(UNREACHABLE); } +#line 5291 "src/prebuilt/wasm-ast-lexer-gen.c" +yy894: + yych = *++lexer->cursor; + if (yych == 'i') goto yy930; + goto yy50; +yy895: + yych = *++lexer->cursor; + if (yych == 'n') goto yy931; + goto yy50; yy896: yych = *++lexer->cursor; - if (yych == 'r') goto yy905; - goto yy82; + if (yych == 't') goto yy933; + goto yy50; yy897: yych = *++lexer->cursor; - if (yych == 'o') goto yy901; - goto yy82; + if (yych == 'r') goto yy935; + goto yy50; yy898: yych = *++lexer->cursor; - if (yych != 'b') goto yy82; + if (yych == 's') goto yy936; + if (yych == 'u') goto yy937; + goto yy50; +yy899: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 339 "src/wasm-ast-lexer.c" - { OPCODE(F32_SUB); RETURN(BINARY); } -#line 4220 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 351 "src/wasm-ast-lexer.c" + { OPCODE(F32_COPYSIGN); RETURN(BINARY); } +#line 5320 "src/prebuilt/wasm-ast-lexer-gen.c" yy901: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == '6') goto yy938; + goto yy50; +yy902: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 262 "src/wasm-ast-lexer.c" - { OPCODE(F32_STORE); RETURN(STORE); } -#line 4232 "src/prebuilt/wasm-ast-lexer-gen.c" -yy905: + if (yych == 'r') goto yy939; + goto yy50; +yy903: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 's') goto yy940; + if (yych == 'u') goto yy941; + goto yy50; +yy904: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 297 "src/wasm-ast-lexer.c" - { OPCODE(F32_SQRT); RETURN(UNARY); } -#line 4242 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 352 "src/wasm-ast-lexer.c" + { OPCODE(F64_COPYSIGN); RETURN(BINARY); } +#line 5341 "src/prebuilt/wasm-ast-lexer-gen.c" +yy906: + yych = *++lexer->cursor; + if (yych == 'f') goto yy942; + goto yy50; +yy907: + yych = *++lexer->cursor; + if (yych == 'r') goto yy943; + goto yy50; yy908: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 377 "src/wasm-ast-lexer.c" - { OPCODE(F32_LE); RETURN(COMPARE); } -#line 4250 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 270 "src/wasm-ast-lexer.c" + { OPCODE(I32_LOAD16_S); RETURN(LOAD); } +#line 5357 "src/prebuilt/wasm-ast-lexer-gen.c" yy910: - yych = *++lexer->cursor; - if (yych == 'a') goto yy913; - goto yy82; -yy911: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 375 "src/wasm-ast-lexer.c" - { OPCODE(F32_LT); RETURN(COMPARE); } -#line 4262 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 272 "src/wasm-ast-lexer.c" + { OPCODE(I32_LOAD16_U); RETURN(LOAD); } +#line 5365 "src/prebuilt/wasm-ast-lexer-gen.c" +yy912: + yych = *++lexer->cursor; + if (yych == 'r') goto yy944; + goto yy50; yy913: yych = *++lexer->cursor; - if (yych != 'd') goto yy82; + if (yych == 'f') goto yy945; + goto yy50; +yy914: + yych = *++lexer->cursor; + if (yych == 'f') goto yy946; + goto yy50; +yy915: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 258 "src/wasm-ast-lexer.c" - { OPCODE(F32_LOAD); RETURN(LOAD); } -#line 4272 "src/prebuilt/wasm-ast-lexer-gen.c" -yy916: - yych = *++lexer->cursor; - if (yych == 's') goto yy923; - goto yy82; +#line 387 "src/wasm-ast-lexer.c" + { OPCODE(I32_WRAP_I64); RETURN(CONVERT); } +#line 5385 "src/prebuilt/wasm-ast-lexer-gen.c" yy917: yych = *++lexer->cursor; - if (yych != 'p') goto yy82; - yych = *++lexer->cursor; - if (yych != 'o') goto yy82; + if (yych == '/') goto yy947; + goto yy50; +yy918: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == '/') goto yy948; + goto yy50; +yy919: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 422 "src/wasm-ast-lexer.c" - { RETURN(EXPORT); } -#line 4292 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 271 "src/wasm-ast-lexer.c" + { OPCODE(I64_LOAD16_S); RETURN(LOAD); } +#line 5401 "src/prebuilt/wasm-ast-lexer-gen.c" +yy921: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 273 "src/wasm-ast-lexer.c" + { OPCODE(I64_LOAD16_U); RETURN(LOAD); } +#line 5409 "src/prebuilt/wasm-ast-lexer-gen.c" yy923: - yych = *++lexer->cursor; - if (yych != 'e') goto yy82; ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 244 "src/wasm-ast-lexer.c" - { RETURN(ELSE); } -#line 4302 "src/prebuilt/wasm-ast-lexer-gen.c" -yy926: - yych = *++lexer->cursor; - if (yych == 'l') goto yy942; - if (yych == 's') goto yy941; - goto yy82; +#line 274 "src/wasm-ast-lexer.c" + { OPCODE(I64_LOAD32_S); RETURN(LOAD); } +#line 5417 "src/prebuilt/wasm-ast-lexer-gen.c" +yy925: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 275 "src/wasm-ast-lexer.c" + { OPCODE(I64_LOAD32_U); RETURN(LOAD); } +#line 5425 "src/prebuilt/wasm-ast-lexer-gen.c" yy927: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - yych = *++lexer->cursor; - if (yych != 'n') goto yy82; - yych = *++lexer->cursor; - if (yych != 't') goto yy82; - yych = *++lexer->cursor; - if (yych != '_') goto yy82; + if (yych == 'r') goto yy949; + goto yy50; +yy928: yych = *++lexer->cursor; - if (yych != 'm') goto yy82; + if (yych == 'f') goto yy950; + goto yy50; +yy929: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == 'f') goto yy951; + goto yy50; +yy930: yych = *++lexer->cursor; - if (yych != 'm') goto yy82; - yych = *++lexer->cursor; - if (yych != 'o') goto yy82; - yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - yych = *++lexer->cursor; - if (yych != 'y') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 410 "src/wasm-ast-lexer.c" - { RETURN(CURRENT_MEMORY); } -#line 4339 "src/prebuilt/wasm-ast-lexer-gen.c" -yy941: - yych = *++lexer->cursor; - if (yych == 'e') goto yy961; - goto yy82; -yy942: - yych = *++lexer->cursor; - if (yych != 'l') goto yy82; + if (yych == 'd') goto yy952; + goto yy50; +yy931: ++lexer->cursor; if ((yych = *lexer->cursor) <= 'Z') { if (yych <= ')') { if (yych <= '!') { - if (yych >= '!') goto yy81; + if (yych >= '!') goto yy49; } else { - if (yych <= '"') goto yy944; - if (yych <= '&') goto yy81; + if (yych <= '"') goto yy932; + if (yych <= '&') goto yy49; } } else { if (yych <= ',') { - if (yych <= '+') goto yy81; + if (yych <= '+') goto yy49; } else { - if (yych != ';') goto yy81; + if (yych != ';') goto yy49; } } } else { if (yych <= '_') { if (yych <= '\\') { - if (yych >= '\\') goto yy81; + if (yych >= '\\') goto yy49; } else { - if (yych <= ']') goto yy944; - if (yych <= '^') goto yy81; - goto yy945; + if (yych <= ']') goto yy932; + if (yych <= '^') goto yy49; + goto yy954; } } else { if (yych <= '|') { - if (yych != '{') goto yy81; + if (yych != '{') goto yy49; } else { - if (yych == '~') goto yy81; + if (yych == '~') goto yy49; } } } +yy932: +#line 427 "src/wasm-ast-lexer.c" + { RETURN(ASSERT_RETURN); } +#line 5479 "src/prebuilt/wasm-ast-lexer-gen.c" +yy933: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 254 "src/wasm-ast-lexer.c" + { RETURN(CALL_INDIRECT); } +#line 5487 "src/prebuilt/wasm-ast-lexer-gen.c" +yy935: + yych = *++lexer->cursor; + if (yych == 'y') goto yy955; + goto yy50; +yy936: + yych = *++lexer->cursor; + if (yych == '/') goto yy957; + goto yy50; +yy937: + yych = *++lexer->cursor; + if (yych == '/') goto yy958; + goto yy50; +yy938: + yych = *++lexer->cursor; + if (yych == '4') goto yy959; + goto yy50; +yy939: + yych = *++lexer->cursor; + if (yych == 'e') goto yy961; + goto yy50; +yy940: + yych = *++lexer->cursor; + if (yych == '/') goto yy962; + goto yy50; +yy941: + yych = *++lexer->cursor; + if (yych == '/') goto yy963; + goto yy50; +yy942: + yych = *++lexer->cursor; + if (yych == '3') goto yy964; + goto yy50; +yy943: + yych = *++lexer->cursor; + if (yych == 'e') goto yy965; + goto yy50; yy944: -#line 250 "src/wasm-ast-lexer.c" - { RETURN(CALL); } -#line 4383 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'e') goto yy966; + goto yy50; yy945: yych = *++lexer->cursor; - if (yych != 'i') goto yy82; + if (yych == '3') goto yy967; + if (yych == '6') goto yy968; + goto yy50; +yy946: yych = *++lexer->cursor; - if (yych <= 'l') goto yy82; - if (yych <= 'm') goto yy947; - if (yych <= 'n') goto yy948; - goto yy82; + if (yych == '3') goto yy969; + if (yych == '6') goto yy970; + goto yy50; yy947: yych = *++lexer->cursor; - if (yych == 'p') goto yy956; - goto yy82; + if (yych == 'i') goto yy971; + goto yy50; yy948: yych = *++lexer->cursor; - if (yych != 'd') goto yy82; - yych = *++lexer->cursor; - if (yych != 'i') goto yy82; + if (yych == 'i') goto yy972; + goto yy50; +yy949: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'e') goto yy973; + goto yy50; +yy950: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == '3') goto yy974; + if (yych == '6') goto yy975; + goto yy50; +yy951: yych = *++lexer->cursor; - if (yych != 'c') goto yy82; - yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == '3') goto yy976; + if (yych == '6') goto yy977; + goto yy50; +yy952: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 252 "src/wasm-ast-lexer.c" - { RETURN(CALL_INDIRECT); } -#line 4415 "src/prebuilt/wasm-ast-lexer-gen.c" -yy956: +#line 426 "src/wasm-ast-lexer.c" + { RETURN(ASSERT_INVALID); } +#line 5567 "src/prebuilt/wasm-ast-lexer-gen.c" +yy954: yych = *++lexer->cursor; - if (yych != 'o') goto yy82; + if (yych == 'n') goto yy978; + goto yy50; +yy955: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 412 "src/wasm-ast-lexer.c" + { RETURN(CURRENT_MEMORY); } +#line 5579 "src/prebuilt/wasm-ast-lexer-gen.c" +yy957: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == 'i') goto yy979; + goto yy50; +yy958: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'i') goto yy980; + goto yy50; +yy959: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 251 "src/wasm-ast-lexer.c" - { RETURN(CALL_IMPORT); } -#line 4429 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 405 "src/wasm-ast-lexer.c" + { OPCODE(F32_DEMOTE_F64); RETURN(CONVERT); } +#line 5595 "src/prebuilt/wasm-ast-lexer-gen.c" yy961: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 249 "src/wasm-ast-lexer.c" - { RETURN(CASE); } -#line 4437 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 't') goto yy981; + goto yy50; +yy962: + yych = *++lexer->cursor; + if (yych == 'i') goto yy982; + goto yy50; yy963: yych = *++lexer->cursor; - if (yych == 'o') goto yy976; - goto yy82; + if (yych == 'i') goto yy983; + goto yy50; yy964: - ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'Z') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy81; - } else { - if (yych <= '"') goto yy965; - if (yych <= '&') goto yy81; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy81; - } else { - if (yych != ';') goto yy81; - } - } - } else { - if (yych <= '_') { - if (yych <= '\\') { - if (yych >= '\\') goto yy81; - } else { - if (yych <= ']') goto yy965; - if (yych <= '^') goto yy81; - goto yy966; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy81; - } else { - if (yych == '~') goto yy81; - } - } - } + yych = *++lexer->cursor; + if (yych == '2') goto yy984; + goto yy50; yy965: -#line 246 "src/wasm-ast-lexer.c" - { RETURN(BR); } -#line 4479 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 't') goto yy986; + goto yy50; yy966: yych = *++lexer->cursor; - if (yych == 'i') goto yy967; - if (yych == 't') goto yy968; - goto yy82; + if (yych == 't') goto yy987; + goto yy50; yy967: yych = *++lexer->cursor; - if (yych == 'f') goto yy974; - goto yy82; + if (yych == '2') goto yy988; + goto yy50; yy968: yych = *++lexer->cursor; - if (yych != 'a') goto yy82; + if (yych == '4') goto yy990; + goto yy50; +yy969: yych = *++lexer->cursor; - if (yych != 'b') goto yy82; + if (yych == '2') goto yy992; + goto yy50; +yy970: yych = *++lexer->cursor; - if (yych != 'l') goto yy82; + if (yych == '4') goto yy994; + goto yy50; +yy971: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 248 "src/wasm-ast-lexer.c" - { RETURN(BR_TABLE); } -#line 4504 "src/prebuilt/wasm-ast-lexer-gen.c" -yy974: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 247 "src/wasm-ast-lexer.c" - { RETURN(BR_IF); } -#line 4512 "src/prebuilt/wasm-ast-lexer-gen.c" -yy976: + if (yych == '3') goto yy996; + goto yy50; +yy972: yych = *++lexer->cursor; - if (yych != 'c') goto yy82; + if (yych == '3') goto yy997; + goto yy50; +yy973: yych = *++lexer->cursor; - if (yych != 'k') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 240 "src/wasm-ast-lexer.c" - { RETURN(BLOCK); } -#line 4524 "src/prebuilt/wasm-ast-lexer-gen.c" -yy980: + if (yych == 't') goto yy998; + goto yy50; +yy974: yych = *++lexer->cursor; - if (yych == 'i') goto yy1012; - goto yy82; -yy981: + if (yych == '2') goto yy999; + goto yy50; +yy975: yych = *++lexer->cursor; - if (yych != 's') goto yy82; + if (yych == '4') goto yy1001; + goto yy50; +yy976: yych = *++lexer->cursor; - if (yych != 'e') goto yy82; + if (yych == '2') goto yy1003; + goto yy50; +yy977: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == '4') goto yy1005; + goto yy50; +yy978: yych = *++lexer->cursor; - if (yych != 't') goto yy82; + if (yych == 'a') goto yy1007; + goto yy50; +yy979: yych = *++lexer->cursor; - if (yych != '_') goto yy82; + if (yych == '3') goto yy1008; + if (yych == '6') goto yy1009; + goto yy50; +yy980: yych = *++lexer->cursor; - if (yych <= 'q') { - if (yych != 'i') goto yy82; - } else { - if (yych <= 'r') goto yy988; - if (yych == 't') goto yy989; - goto yy82; - } + if (yych == '3') goto yy1010; + if (yych == '6') goto yy1011; + goto yy50; +yy981: yych = *++lexer->cursor; - if (yych == 'n') goto yy1005; - goto yy82; -yy988: + if (yych == '/') goto yy1012; + goto yy50; +yy982: yych = *++lexer->cursor; - if (yych == 'e') goto yy994; - goto yy82; -yy989: + if (yych == '3') goto yy1013; + if (yych == '6') goto yy1014; + goto yy50; +yy983: yych = *++lexer->cursor; - if (yych != 'r') goto yy82; + if (yych == '3') goto yy1015; + if (yych == '6') goto yy1016; + goto yy50; +yy984: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 404 "src/wasm-ast-lexer.c" + { OPCODE(F64_PROMOTE_F32); RETURN(CONVERT); } +#line 5699 "src/prebuilt/wasm-ast-lexer-gen.c" +yy986: yych = *++lexer->cursor; - if (yych != 'a') goto yy82; + if (yych == '/') goto yy1017; + goto yy50; +yy987: yych = *++lexer->cursor; - if (yych != 'p') goto yy82; + if (yych == '/') goto yy1018; + goto yy50; +yy988: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 427 "src/wasm-ast-lexer.c" - { RETURN(ASSERT_TRAP); } -#line 4568 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 388 "src/wasm-ast-lexer.c" + { OPCODE(I32_TRUNC_S_F32); RETURN(CONVERT); } +#line 5715 "src/prebuilt/wasm-ast-lexer-gen.c" +yy990: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 390 "src/wasm-ast-lexer.c" + { OPCODE(I32_TRUNC_S_F64); RETURN(CONVERT); } +#line 5723 "src/prebuilt/wasm-ast-lexer-gen.c" +yy992: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 392 "src/wasm-ast-lexer.c" + { OPCODE(I32_TRUNC_U_F32); RETURN(CONVERT); } +#line 5731 "src/prebuilt/wasm-ast-lexer-gen.c" yy994: - yych = *++lexer->cursor; - if (yych != 't') goto yy82; - yych = *++lexer->cursor; - if (yych != 'u') goto yy82; - yych = *++lexer->cursor; - if (yych != 'r') goto yy82; - yych = *++lexer->cursor; - if (yych != 'n') goto yy82; ++lexer->cursor; - if ((yych = *lexer->cursor) <= 'Z') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy81; - } else { - if (yych <= '"') goto yy999; - if (yych <= '&') goto yy81; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy81; - } else { - if (yych != ';') goto yy81; - } - } - } else { - if (yych <= '_') { - if (yych <= '\\') { - if (yych >= '\\') goto yy81; - } else { - if (yych <= ']') goto yy999; - if (yych <= '^') goto yy81; - goto yy1000; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy81; - } else { - if (yych == '~') goto yy81; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -yy999: -#line 425 "src/wasm-ast-lexer.c" - { RETURN(ASSERT_RETURN); } -#line 4614 "src/prebuilt/wasm-ast-lexer-gen.c" -yy1000: +#line 394 "src/wasm-ast-lexer.c" + { OPCODE(I32_TRUNC_U_F64); RETURN(CONVERT); } +#line 5739 "src/prebuilt/wasm-ast-lexer-gen.c" +yy996: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == '2') goto yy1019; + goto yy50; +yy997: yych = *++lexer->cursor; - if (yych != 'a') goto yy82; + if (yych == '2') goto yy1021; + goto yy50; +yy998: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == '/') goto yy1023; + goto yy50; +yy999: ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -#line 426 "src/wasm-ast-lexer.c" - { RETURN(ASSERT_RETURN_NAN); } -#line 4628 "src/prebuilt/wasm-ast-lexer-gen.c" +#line 389 "src/wasm-ast-lexer.c" + { OPCODE(I64_TRUNC_S_F32); RETURN(CONVERT); } +#line 5759 "src/prebuilt/wasm-ast-lexer-gen.c" +yy1001: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 391 "src/wasm-ast-lexer.c" + { OPCODE(I64_TRUNC_S_F64); RETURN(CONVERT); } +#line 5767 "src/prebuilt/wasm-ast-lexer-gen.c" +yy1003: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 393 "src/wasm-ast-lexer.c" + { OPCODE(I64_TRUNC_U_F32); RETURN(CONVERT); } +#line 5775 "src/prebuilt/wasm-ast-lexer-gen.c" yy1005: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 395 "src/wasm-ast-lexer.c" + { OPCODE(I64_TRUNC_U_F64); RETURN(CONVERT); } +#line 5783 "src/prebuilt/wasm-ast-lexer-gen.c" +yy1007: yych = *++lexer->cursor; - if (yych != 'v') goto yy82; + if (yych == 'n') goto yy1024; + goto yy50; +yy1008: yych = *++lexer->cursor; - if (yych != 'a') goto yy82; + if (yych == '2') goto yy1026; + goto yy50; +yy1009: yych = *++lexer->cursor; - if (yych != 'l') goto yy82; + if (yych == '4') goto yy1028; + goto yy50; +yy1010: yych = *++lexer->cursor; - if (yych != 'i') goto yy82; + if (yych == '2') goto yy1030; + goto yy50; +yy1011: yych = *++lexer->cursor; - if (yych != 'd') goto yy82; - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 8) { - goto yy81; - } -#line 424 "src/wasm-ast-lexer.c" - { RETURN(ASSERT_INVALID); } -#line 4646 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yych == '4') goto yy1032; + goto yy50; yy1012: yych = *++lexer->cursor; - if (yych != 'g') goto yy82; + if (yych == 'i') goto yy1034; + goto yy50; +yy1013: yych = *++lexer->cursor; - if (yych != 'n') goto yy82; + if (yych == '2') goto yy1035; + goto yy50; +yy1014: yych = *++lexer->cursor; - if (yych != '=') goto yy82; + if (yych == '4') goto yy1037; + goto yy50; +yy1015: yych = *++lexer->cursor; - if (yych <= '/') goto yy82; - if (yych >= ':') goto yy82; + if (yych == '2') goto yy1039; + goto yy50; yy1016: - ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= ':') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy81; - } else { - if (yych <= '"') goto yy1018; - if (yych <= '&') goto yy81; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy81; - } else { - if (yych <= '/') goto yy81; - if (yych <= '9') goto yy1016; - goto yy81; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych >= '<') goto yy81; - } else { - if (yych == '\\') goto yy81; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy81; - } else { - if (yych == '~') goto yy81; - } - } - } + yych = *++lexer->cursor; + if (yych == '4') goto yy1041; + goto yy50; +yy1017: + yych = *++lexer->cursor; + if (yych == 'i') goto yy1043; + goto yy50; yy1018: -#line 280 "src/wasm-ast-lexer.c" - { TEXT_AT(6); RETURN(ALIGN); } -#line 4696 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'f') goto yy1044; + goto yy50; yy1019: ++lexer->cursor; - BEGIN(YYCOND_LINE_COMMENT); -#line 431 "src/wasm-ast-lexer.c" - { continue; } -#line 4702 "src/prebuilt/wasm-ast-lexer-gen.c" + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 385 "src/wasm-ast-lexer.c" + { OPCODE(I64_EXTEND_S_I32); RETURN(CONVERT); } +#line 5839 "src/prebuilt/wasm-ast-lexer-gen.c" yy1021: ++lexer->cursor; - if ((lexer->limit - lexer->cursor) < 3) FILL(3); - yych = *lexer->cursor; - if (yych <= 'D') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy81; - } else { - if (yych <= '&') goto yy81; - if (yych >= '*') goto yy81; - } - } else { - if (yych <= '9') { - if (yych <= ',') goto yy1023; - if (yych <= '/') goto yy81; - goto yy1021; - } else { - if (yych != ';') goto yy81; - } - } - } else { - if (yych <= 'd') { - if (yych <= '[') { - if (yych <= 'E') goto yy1026; - if (yych <= 'Z') goto yy81; - } else { - if (yych != ']') goto yy81; - } - } else { - if (yych <= '{') { - if (yych <= 'e') goto yy1026; - if (yych <= 'z') goto yy81; - } else { - if (yych == '}') goto yy1023; - if (yych <= '~') goto yy81; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } +#line 386 "src/wasm-ast-lexer.c" + { OPCODE(I64_EXTEND_U_I32); RETURN(CONVERT); } +#line 5847 "src/prebuilt/wasm-ast-lexer-gen.c" yy1023: -#line 222 "src/wasm-ast-lexer.c" - { LITERAL(FLOAT); RETURN(FLOAT); } -#line 4745 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == 'f') goto yy1045; + goto yy50; yy1024: ++lexer->cursor; - if ((lexer->limit - lexer->cursor) < 3) FILL(3); - yych = *lexer->cursor; - if (yych <= ';') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy81; - goto yy62; - } else { - if (yych <= '&') goto yy81; - if (yych <= ')') goto yy62; - goto yy81; - } - } else { - if (yych <= '.') { - if (yych <= ',') goto yy62; - if (yych <= '-') goto yy81; - goto yy1021; - } else { - if (yych <= '/') goto yy81; - if (yych <= '9') goto yy1024; - if (yych <= ':') goto yy81; - goto yy62; - } - } - } else { - if (yych <= 'd') { - if (yych <= 'Z') { - if (yych != 'E') goto yy81; - } else { - if (yych == '\\') goto yy81; - if (yych <= ']') goto yy62; - goto yy81; - } - } else { - if (yych <= '{') { - if (yych <= 'e') goto yy1026; - if (yych <= 'z') goto yy81; - goto yy62; - } else { - if (yych == '}') goto yy62; - if (yych <= '~') goto yy81; - goto yy62; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } +#line 428 "src/wasm-ast-lexer.c" + { RETURN(ASSERT_RETURN_NAN); } +#line 5859 "src/prebuilt/wasm-ast-lexer-gen.c" yy1026: - yych = *++lexer->cursor; - if (yych <= ',') { - if (yych != '+') goto yy82; - } else { - if (yych <= '-') goto yy1027; - if (yych <= '/') goto yy82; - if (yych <= '9') goto yy1028; - goto yy82; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -yy1027: - yych = *++lexer->cursor; - if (yych <= '/') goto yy82; - if (yych >= ':') goto yy82; +#line 396 "src/wasm-ast-lexer.c" + { OPCODE(F32_CONVERT_S_I32); RETURN(CONVERT); } +#line 5867 "src/prebuilt/wasm-ast-lexer-gen.c" yy1028: ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= ':') { - if (yych <= ')') { - if (yych <= '!') { - if (yych <= ' ') goto yy1023; - goto yy81; - } else { - if (yych <= '"') goto yy1023; - if (yych <= '&') goto yy81; - goto yy1023; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy81; - goto yy1023; - } else { - if (yych <= '/') goto yy81; - if (yych <= '9') goto yy1028; - goto yy81; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych <= ';') goto yy1023; - goto yy81; - } else { - if (yych == '\\') goto yy81; - goto yy1023; - } - } else { - if (yych <= '|') { - if (yych == '{') goto yy1023; - goto yy81; - } else { - if (yych == '~') goto yy81; - goto yy1023; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } +#line 398 "src/wasm-ast-lexer.c" + { OPCODE(F32_CONVERT_S_I64); RETURN(CONVERT); } +#line 5875 "src/prebuilt/wasm-ast-lexer-gen.c" yy1030: - yych = *++lexer->cursor; - if (yych <= '@') { - if (yych <= '/') goto yy82; - if (yych >= ':') goto yy82; - } else { - if (yych <= 'F') goto yy1031; - if (yych <= '`') goto yy82; - if (yych >= 'g') goto yy82; - } -yy1031: ++lexer->cursor; - if ((lexer->limit - lexer->cursor) < 3) FILL(3); - yych = *lexer->cursor; - if (yych <= '@') { - if (yych <= ',') { - if (yych <= '"') { - if (yych == '!') goto yy81; - goto yy62; - } else { - if (yych <= '&') goto yy81; - if (yych <= ')') goto yy62; - if (yych <= '+') goto yy81; - goto yy62; - } - } else { - if (yych <= '/') { - if (yych != '.') goto yy81; - } else { - if (yych <= '9') goto yy1031; - if (yych == ';') goto yy62; - goto yy81; - } - } - } else { - if (yych <= 'f') { - if (yych <= '[') { - if (yych <= 'F') goto yy1031; - if (yych <= 'Z') goto yy81; - goto yy62; - } else { - if (yych == ']') goto yy62; - if (yych <= '`') goto yy81; - goto yy1031; - } - } else { - if (yych <= '{') { - if (yych == 'p') goto yy1035; - if (yych <= 'z') goto yy81; - goto yy62; - } else { - if (yych == '}') goto yy62; - if (yych <= '~') goto yy81; - goto yy62; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -yy1033: +#line 400 "src/wasm-ast-lexer.c" + { OPCODE(F32_CONVERT_U_I32); RETURN(CONVERT); } +#line 5883 "src/prebuilt/wasm-ast-lexer-gen.c" +yy1032: ++lexer->cursor; - if ((lexer->limit - lexer->cursor) < 3) FILL(3); - yych = *lexer->cursor; - if (yych <= 'F') { - if (yych <= '+') { - if (yych <= '"') { - if (yych == '!') goto yy81; - goto yy52; - } else { - if (yych <= '&') goto yy81; - if (yych <= ')') goto yy52; - goto yy81; - } - } else { - if (yych <= '9') { - if (yych <= ',') goto yy52; - if (yych <= '/') goto yy81; - goto yy1033; - } else { - if (yych == ';') goto yy52; - if (yych <= '@') goto yy81; - goto yy1033; - } - } - } else { - if (yych <= 'o') { - if (yych <= '\\') { - if (yych == '[') goto yy52; - goto yy81; - } else { - if (yych <= ']') goto yy52; - if (yych <= '`') goto yy81; - if (yych <= 'f') goto yy1033; - goto yy81; - } - } else { - if (yych <= '{') { - if (yych <= 'p') goto yy1035; - if (yych <= 'z') goto yy81; - goto yy52; - } else { - if (yych == '}') goto yy52; - if (yych <= '~') goto yy81; - goto yy52; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -yy1035: +#line 402 "src/wasm-ast-lexer.c" + { OPCODE(F32_CONVERT_U_I64); RETURN(CONVERT); } +#line 5891 "src/prebuilt/wasm-ast-lexer-gen.c" +yy1034: yych = *++lexer->cursor; - if (yych <= ',') { - if (yych != '+') goto yy82; - } else { - if (yych <= '-') goto yy1036; - if (yych <= '/') goto yy82; - if (yych <= '9') goto yy1037; - goto yy82; + if (yych == '3') goto yy1046; + goto yy50; +yy1035: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -yy1036: - yych = *++lexer->cursor; - if (yych <= '/') goto yy82; - if (yych >= ':') goto yy82; +#line 397 "src/wasm-ast-lexer.c" + { OPCODE(F64_CONVERT_S_I32); RETURN(CONVERT); } +#line 5903 "src/prebuilt/wasm-ast-lexer-gen.c" yy1037: ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= ':') { - if (yych <= ')') { - if (yych <= '!') { - if (yych >= '!') goto yy81; - } else { - if (yych <= '"') goto yy1039; - if (yych <= '&') goto yy81; - } - } else { - if (yych <= ',') { - if (yych <= '+') goto yy81; - } else { - if (yych <= '/') goto yy81; - if (yych <= '9') goto yy1037; - goto yy81; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych >= '<') goto yy81; - } else { - if (yych == '\\') goto yy81; - } - } else { - if (yych <= '|') { - if (yych != '{') goto yy81; - } else { - if (yych == '~') goto yy81; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } +#line 399 "src/wasm-ast-lexer.c" + { OPCODE(F64_CONVERT_S_I64); RETURN(CONVERT); } +#line 5911 "src/prebuilt/wasm-ast-lexer-gen.c" yy1039: -#line 223 "src/wasm-ast-lexer.c" - { LITERAL(HEXFLOAT); RETURN(FLOAT); } -#line 5008 "src/prebuilt/wasm-ast-lexer-gen.c" -yy1040: - yych = *++lexer->cursor; - if (yych <= 'D') { - if (yych <= ',') { - if (yych <= '"') { - if (yych == '!') goto yy81; - goto yy62; - } else { - if (yych <= '&') goto yy81; - if (yych <= ')') goto yy62; - if (yych <= '+') goto yy81; - goto yy62; - } - } else { - if (yych <= '/') { - if (yych == '.') goto yy1021; - goto yy81; - } else { - if (yych <= '9') goto yy1024; - if (yych == ';') goto yy62; - goto yy81; - } - } - } else { - if (yych <= 'e') { - if (yych <= '[') { - if (yych <= 'E') goto yy1026; - if (yych <= 'Z') goto yy81; - goto yy62; - } else { - if (yych == ']') goto yy62; - if (yych <= 'd') goto yy81; - goto yy1026; - } - } else { - if (yych <= '{') { - if (yych == 'x') goto yy1030; - if (yych <= 'z') goto yy81; - goto yy62; - } else { - if (yych == '}') goto yy62; - if (yych <= '~') goto yy81; - goto yy62; - } - } + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } +#line 401 "src/wasm-ast-lexer.c" + { OPCODE(F64_CONVERT_U_I32); RETURN(CONVERT); } +#line 5919 "src/prebuilt/wasm-ast-lexer-gen.c" yy1041: - yych = *++lexer->cursor; - if (yych == 'n') goto yy1043; - goto yy82; -yy1042: - yych = *++lexer->cursor; - if (yych == 'a') goto yy157; - goto yy82; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 403 "src/wasm-ast-lexer.c" + { OPCODE(F64_CONVERT_U_I64); RETURN(CONVERT); } +#line 5927 "src/prebuilt/wasm-ast-lexer-gen.c" yy1043: yych = *++lexer->cursor; - if (yych == 'f') goto yy194; - goto yy82; + if (yych == '6') goto yy1047; + goto yy50; yy1044: - ++lexer->cursor; - BEGIN(YYCOND_BLOCK_COMMENT); -#line 434 "src/wasm-ast-lexer.c" - { COMMENT_NESTING = 1; continue; } -#line 5072 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == '3') goto yy1048; + goto yy50; +yy1045: + yych = *++lexer->cursor; + if (yych == '6') goto yy1049; + goto yy50; yy1046: - ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= ';') { - if (yych <= '&') { - if (yych == '!') goto yy1046; - if (yych >= '#') goto yy1046; - } else { - if (yych <= '+') { - if (yych >= '*') goto yy1046; - } else { - if (yych <= ',') goto yy1048; - if (yych <= ':') goto yy1046; - } - } - } else { - if (yych <= 'z') { - if (yych <= '[') { - if (yych <= 'Z') goto yy1046; - } else { - if (yych != ']') goto yy1046; - } - } else { - if (yych <= '|') { - if (yych >= '|') goto yy1046; - } else { - if (yych == '~') goto yy1046; - } - } - } + yych = *++lexer->cursor; + if (yych == '2') goto yy1050; + goto yy50; +yy1047: + yych = *++lexer->cursor; + if (yych == '4') goto yy1052; + goto yy50; yy1048: -#line 429 "src/wasm-ast-lexer.c" - { TEXT; RETURN(VAR); } -#line 5107 "src/prebuilt/wasm-ast-lexer-gen.c" + yych = *++lexer->cursor; + if (yych == '2') goto yy1054; + goto yy50; yy1049: - ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; + yych = *++lexer->cursor; + if (yych == '4') goto yy1056; + goto yy50; yy1050: - if (yybm[0+yych] & 64) { - goto yy1049; + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } - if (yych <= '!') goto yy1051; - if (yych <= '"') goto yy1053; - if (yych <= '~') goto yy1052; -yy1051: - lexer->cursor = lexer->marker; - goto yy54; +#line 406 "src/wasm-ast-lexer.c" + { OPCODE(F32_REINTERPRET_I32); RETURN(CONVERT); } +#line 5963 "src/prebuilt/wasm-ast-lexer-gen.c" yy1052: ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= 'F') { - if (yych <= '\'') { - if (yych == '"') goto yy1049; - if (yych <= '&') goto yy1051; - goto yy1049; - } else { - if (yych <= '/') goto yy1051; - if (yych <= '9') goto yy1055; - if (yych <= '@') goto yy1051; - goto yy1055; - } - } else { - if (yych <= 'f') { - if (yych == '\\') goto yy1049; - if (yych <= '`') goto yy1051; - goto yy1055; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy1051; - goto yy1049; - } else { - if (yych == 't') goto yy1049; - goto yy1051; - } - } + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } -yy1053: - ++lexer->cursor; -#line 226 "src/wasm-ast-lexer.c" - { TEXT; RETURN(TEXT); } -#line 5156 "src/prebuilt/wasm-ast-lexer-gen.c" -yy1055: +#line 408 "src/wasm-ast-lexer.c" + { OPCODE(F64_REINTERPRET_I64); RETURN(CONVERT); } +#line 5971 "src/prebuilt/wasm-ast-lexer-gen.c" +yy1054: ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; - if (yych <= '@') { - if (yych <= '/') goto yy1051; - if (yych <= '9') goto yy1049; - goto yy1051; - } else { - if (yych <= 'F') goto yy1049; - if (yych <= '`') goto yy1051; - if (yych <= 'f') goto yy1049; - goto yy1051; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } +#line 407 "src/wasm-ast-lexer.c" + { OPCODE(I32_REINTERPRET_F32); RETURN(CONVERT); } +#line 5979 "src/prebuilt/wasm-ast-lexer-gen.c" yy1056: ++lexer->cursor; - if (lexer->limit <= lexer->cursor) FILL(1); - yych = *lexer->cursor; -yy1057: - if (yybm[0+yych] & 128) { - goto yy1056; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; } - goto yy48; +#line 409 "src/wasm-ast-lexer.c" + { OPCODE(I64_REINTERPRET_F64); RETURN(CONVERT); } +#line 5987 "src/prebuilt/wasm-ast-lexer-gen.c" } } -#line 449 "src/wasm-ast-lexer.c" +#line 451 "src/wasm-ast-lexer.c" } } diff --git a/src/prebuilt/wasm-ast-parser-gen.c b/src/prebuilt/wasm-ast-parser-gen.c index 64f642cf..64421ab0 100644 --- a/src/prebuilt/wasm-ast-parser-gen.c +++ b/src/prebuilt/wasm-ast-parser-gen.c @@ -199,58 +199,59 @@ extern int wasm_ast_parser_debug; WASM_TOKEN_TYPE_EOF = 0, WASM_TOKEN_TYPE_LPAR = 258, WASM_TOKEN_TYPE_RPAR = 259, - WASM_TOKEN_TYPE_INT = 260, - WASM_TOKEN_TYPE_FLOAT = 261, - WASM_TOKEN_TYPE_TEXT = 262, - WASM_TOKEN_TYPE_VAR = 263, - WASM_TOKEN_TYPE_VALUE_TYPE = 264, - WASM_TOKEN_TYPE_NOP = 265, - WASM_TOKEN_TYPE_BLOCK = 266, - WASM_TOKEN_TYPE_IF = 267, - WASM_TOKEN_TYPE_THEN = 268, - WASM_TOKEN_TYPE_ELSE = 269, - WASM_TOKEN_TYPE_LOOP = 270, - WASM_TOKEN_TYPE_BR = 271, - WASM_TOKEN_TYPE_BR_IF = 272, - WASM_TOKEN_TYPE_BR_TABLE = 273, - WASM_TOKEN_TYPE_CASE = 274, - WASM_TOKEN_TYPE_CALL = 275, - WASM_TOKEN_TYPE_CALL_IMPORT = 276, - WASM_TOKEN_TYPE_CALL_INDIRECT = 277, - WASM_TOKEN_TYPE_RETURN = 278, - WASM_TOKEN_TYPE_GET_LOCAL = 279, - WASM_TOKEN_TYPE_SET_LOCAL = 280, - WASM_TOKEN_TYPE_LOAD = 281, - WASM_TOKEN_TYPE_STORE = 282, - WASM_TOKEN_TYPE_OFFSET = 283, - WASM_TOKEN_TYPE_ALIGN = 284, - WASM_TOKEN_TYPE_CONST = 285, - WASM_TOKEN_TYPE_UNARY = 286, - WASM_TOKEN_TYPE_BINARY = 287, - WASM_TOKEN_TYPE_COMPARE = 288, - WASM_TOKEN_TYPE_CONVERT = 289, - WASM_TOKEN_TYPE_SELECT = 290, - WASM_TOKEN_TYPE_FUNC = 291, - WASM_TOKEN_TYPE_START = 292, - WASM_TOKEN_TYPE_TYPE = 293, - WASM_TOKEN_TYPE_PARAM = 294, - WASM_TOKEN_TYPE_RESULT = 295, - WASM_TOKEN_TYPE_LOCAL = 296, - WASM_TOKEN_TYPE_MODULE = 297, - WASM_TOKEN_TYPE_MEMORY = 298, - WASM_TOKEN_TYPE_SEGMENT = 299, - WASM_TOKEN_TYPE_IMPORT = 300, - WASM_TOKEN_TYPE_EXPORT = 301, - WASM_TOKEN_TYPE_TABLE = 302, - WASM_TOKEN_TYPE_UNREACHABLE = 303, - WASM_TOKEN_TYPE_CURRENT_MEMORY = 304, - WASM_TOKEN_TYPE_GROW_MEMORY = 305, - WASM_TOKEN_TYPE_ASSERT_INVALID = 306, - WASM_TOKEN_TYPE_ASSERT_RETURN = 307, - WASM_TOKEN_TYPE_ASSERT_RETURN_NAN = 308, - WASM_TOKEN_TYPE_ASSERT_TRAP = 309, - WASM_TOKEN_TYPE_INVOKE = 310, - WASM_TOKEN_TYPE_LOW = 311 + WASM_TOKEN_TYPE_NAT = 260, + WASM_TOKEN_TYPE_INT = 261, + WASM_TOKEN_TYPE_FLOAT = 262, + WASM_TOKEN_TYPE_TEXT = 263, + WASM_TOKEN_TYPE_VAR = 264, + WASM_TOKEN_TYPE_VALUE_TYPE = 265, + WASM_TOKEN_TYPE_NOP = 266, + WASM_TOKEN_TYPE_BLOCK = 267, + WASM_TOKEN_TYPE_IF = 268, + WASM_TOKEN_TYPE_THEN = 269, + WASM_TOKEN_TYPE_ELSE = 270, + WASM_TOKEN_TYPE_LOOP = 271, + WASM_TOKEN_TYPE_BR = 272, + WASM_TOKEN_TYPE_BR_IF = 273, + WASM_TOKEN_TYPE_BR_TABLE = 274, + WASM_TOKEN_TYPE_CASE = 275, + WASM_TOKEN_TYPE_CALL = 276, + WASM_TOKEN_TYPE_CALL_IMPORT = 277, + WASM_TOKEN_TYPE_CALL_INDIRECT = 278, + WASM_TOKEN_TYPE_RETURN = 279, + WASM_TOKEN_TYPE_GET_LOCAL = 280, + WASM_TOKEN_TYPE_SET_LOCAL = 281, + WASM_TOKEN_TYPE_LOAD = 282, + WASM_TOKEN_TYPE_STORE = 283, + WASM_TOKEN_TYPE_OFFSET = 284, + WASM_TOKEN_TYPE_ALIGN = 285, + WASM_TOKEN_TYPE_CONST = 286, + WASM_TOKEN_TYPE_UNARY = 287, + WASM_TOKEN_TYPE_BINARY = 288, + WASM_TOKEN_TYPE_COMPARE = 289, + WASM_TOKEN_TYPE_CONVERT = 290, + WASM_TOKEN_TYPE_SELECT = 291, + WASM_TOKEN_TYPE_FUNC = 292, + WASM_TOKEN_TYPE_START = 293, + WASM_TOKEN_TYPE_TYPE = 294, + WASM_TOKEN_TYPE_PARAM = 295, + WASM_TOKEN_TYPE_RESULT = 296, + WASM_TOKEN_TYPE_LOCAL = 297, + WASM_TOKEN_TYPE_MODULE = 298, + WASM_TOKEN_TYPE_MEMORY = 299, + WASM_TOKEN_TYPE_SEGMENT = 300, + WASM_TOKEN_TYPE_IMPORT = 301, + WASM_TOKEN_TYPE_EXPORT = 302, + WASM_TOKEN_TYPE_TABLE = 303, + WASM_TOKEN_TYPE_UNREACHABLE = 304, + WASM_TOKEN_TYPE_CURRENT_MEMORY = 305, + WASM_TOKEN_TYPE_GROW_MEMORY = 306, + WASM_TOKEN_TYPE_ASSERT_INVALID = 307, + WASM_TOKEN_TYPE_ASSERT_RETURN = 308, + WASM_TOKEN_TYPE_ASSERT_RETURN_NAN = 309, + WASM_TOKEN_TYPE_ASSERT_TRAP = 310, + WASM_TOKEN_TYPE_INVOKE = 311, + WASM_TOKEN_TYPE_LOW = 312 }; #endif @@ -283,7 +284,7 @@ int wasm_ast_parser_parse (WasmAstLexer* lexer, WasmAstParser* parser); /* Copy the second part of user declarations. */ -#line 287 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:358 */ +#line 288 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:358 */ #ifdef short # undef short @@ -527,21 +528,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 8 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 330 +#define YYLAST 373 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 57 +#define YYNTOKENS 58 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 45 +#define YYNNTS 46 /* YYNRULES -- Number of rules. */ -#define YYNRULES 120 +#define YYNRULES 122 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 271 +#define YYNSTATES 274 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 311 +#define YYMAXUTOK 312 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -581,7 +582,7 @@ static const yytype_uint8 yytranslate[] = 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56 + 55, 56, 57 }; #if WASM_AST_PARSER_DEBUG @@ -589,18 +590,18 @@ static const yytype_uint8 yytranslate[] = static const yytype_uint16 yyrline[] = { 0, 190, 190, 196, 209, 210, 216, 217, 221, 225, - 232, 236, 243, 255, 262, 263, 269, 273, 289, 296, - 297, 301, 302, 311, 312, 323, 326, 329, 334, 339, - 345, 351, 359, 364, 370, 376, 382, 387, 391, 398, - 405, 411, 417, 424, 428, 433, 440, 448, 460, 465, - 471, 477, 483, 488, 491, 495, 501, 502, 505, 509, - 517, 518, 523, 529, 535, 543, 549, 555, 565, 568, - 629, 638, 648, 656, 668, 669, 676, 680, 693, 701, - 702, 709, 721, 732, 738, 747, 751, 758, 762, 769, - 777, 784, 795, 802, 808, 811, 847, 865, 882, 890, - 898, 916, 924, 935, 952, 961, 985, 991, 998, 1004, - 1012, 1019, 1029, 1030, 1038, 1050, 1051, 1054, 1055, 1062, - 1071 + 232, 236, 240, 247, 259, 266, 267, 273, 277, 293, + 300, 301, 305, 306, 316, 317, 328, 331, 334, 339, + 344, 350, 356, 364, 369, 375, 381, 387, 392, 396, + 403, 410, 416, 422, 429, 433, 438, 445, 453, 465, + 470, 476, 482, 488, 493, 496, 500, 506, 507, 510, + 514, 522, 523, 528, 529, 535, 541, 551, 557, 563, + 573, 576, 637, 646, 656, 664, 676, 677, 684, 688, + 701, 709, 710, 717, 729, 740, 746, 755, 759, 766, + 770, 777, 785, 792, 803, 810, 816, 819, 855, 873, + 890, 898, 906, 924, 932, 943, 960, 969, 993, 999, + 1006, 1012, 1020, 1027, 1037, 1038, 1046, 1058, 1059, 1062, + 1063, 1070, 1079 }; #endif @@ -609,9 +610,9 @@ static const yytype_uint16 yyrline[] = First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "\"EOF\"", "error", "$undefined", "\"(\"", "\")\"", "INT", "FLOAT", - "TEXT", "VAR", "VALUE_TYPE", "NOP", "BLOCK", "IF", "THEN", "ELSE", - "LOOP", "BR", "BR_IF", "BR_TABLE", "CASE", "CALL", "CALL_IMPORT", + "\"EOF\"", "error", "$undefined", "\"(\"", "\")\"", "NAT", "INT", + "FLOAT", "TEXT", "VAR", "VALUE_TYPE", "NOP", "BLOCK", "IF", "THEN", + "ELSE", "LOOP", "BR", "BR_IF", "BR_TABLE", "CASE", "CALL", "CALL_IMPORT", "CALL_INDIRECT", "RETURN", "GET_LOCAL", "SET_LOCAL", "LOAD", "STORE", "OFFSET", "ALIGN", "CONST", "UNARY", "BINARY", "COMPARE", "CONVERT", "SELECT", "FUNC", "START", "TYPE", "PARAM", "RESULT", "LOCAL", "MODULE", @@ -621,7 +622,7 @@ static const char *const yytname[] = "text_list", "value_type_list", "func_type", "literal", "var", "var_list", "bind_var", "quoted_text", "segment_contents", "labeling", "offset", "align", "expr", "expr1", "expr_opt", "non_empty_expr_list", - "expr_list", "func_fields", "type_use", "func_info", "func", + "expr_list", "func_fields", "func_body", "type_use", "func_info", "func", "export_opt", "start", "segment_address", "segment", "segment_list", "initial_pages", "max_pages", "memory", "type_def", "table", "import", "export", "export_memory", "module_fields", "raw_module", "module", @@ -640,14 +641,14 @@ static const yytype_uint16 yytoknum[] = 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311 + 305, 306, 307, 308, 309, 310, 311, 312 }; # endif -#define YYPACT_NINF -153 +#define YYPACT_NINF -210 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-153))) + (!!((Yystate) == (-210))) #define YYTABLE_NINF -1 @@ -658,34 +659,34 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -153, 25, -153, 34, 67, -153, -153, -153, -153, 31, - 33, 48, 52, 60, 58, -153, 40, 1, 30, 58, - 19, 38, 44, -153, -153, -153, -153, 106, -153, -153, - -153, -153, -153, -153, -153, -153, -153, 80, 58, 58, - 58, 18, 58, 73, 4, 83, 105, 58, -153, -153, - -153, -153, -153, 71, -153, -153, -153, 12, -153, -153, - 111, 109, -153, 145, -153, 152, 58, 58, 21, 41, - 120, 125, 129, 130, 157, 147, -153, 153, -153, -153, - 155, 156, -153, 158, 123, -153, 136, -153, 58, 160, - 166, 167, -153, -153, 161, 172, 58, -153, -153, 181, - -153, 178, 153, 178, 73, 73, -153, 73, 73, 73, - 153, 73, 73, 165, 165, 130, 153, 153, 153, 153, - 153, 73, 178, 185, 178, -153, -153, 153, 195, 155, - 196, 280, -153, 198, 197, -153, 107, 199, 158, 168, - -153, -153, 151, 160, 65, 200, 207, -153, -153, -153, - 213, -153, 222, -153, -153, 153, 224, 178, 153, 153, - 153, 73, 153, 153, 153, -153, -153, -153, 153, -153, - 173, 173, -153, -153, 153, 153, -153, 153, 230, 15, - 226, 232, 26, 231, -153, -153, 237, -153, -153, -153, - 233, 240, 241, 238, -153, 249, 254, -153, -153, -153, - -153, -153, 239, 153, 153, -153, -153, 153, 153, -153, - -153, 153, -153, -153, 153, 153, -153, -153, 153, -153, - 155, -153, 263, 155, 155, 264, -153, 28, 271, -153, - 272, -153, 31, -153, -153, 178, -153, -153, -153, 153, - -153, -153, 153, -153, -153, 155, -153, -153, 155, 274, - -153, -153, 273, 275, 153, -153, -153, -153, -153, 242, - -153, 277, 269, 281, 279, 285, -153, 178, 153, 282, - -153 + -210, 7, -210, 18, 53, -210, -210, -210, -210, 38, + 33, 48, 67, 87, 68, -210, 75, 91, 13, 68, + 36, 45, 47, -210, -210, -210, -210, 76, -210, -210, + -210, -210, -210, -210, -210, -210, -210, 106, 68, 68, + 68, 94, 68, 82, 23, 107, 108, 68, -210, -210, + -210, -210, -210, 88, -210, -210, -210, 28, -210, -210, + 130, 117, -210, 152, -210, 151, 68, 68, 19, 73, + 138, 141, 143, 120, 158, 154, -210, 155, -210, -210, + -210, 156, 157, -210, 159, 123, -210, 145, -210, 68, + 160, 161, 162, -210, -210, 169, 174, 68, -210, -210, + -210, 183, -210, 164, 155, 164, 82, 82, -210, 82, + 82, 82, 155, 82, 82, 166, 166, 120, 155, 155, + 155, 155, 155, 82, 164, 178, 164, -210, -210, 155, + 192, 156, 197, 322, -210, 199, 198, -210, 110, 200, + 159, 168, -210, -210, 149, 160, 90, 201, 202, -210, + -210, -210, 210, -210, 215, -210, -210, 155, 225, 164, + 155, 155, 155, 82, 155, 155, 155, -210, -210, -210, + 155, -210, 173, 173, -210, -210, 155, 155, -210, 155, + 232, 29, 219, 233, 30, 228, -210, -210, 238, -210, + -210, -210, 234, 239, 241, 242, -210, 251, 256, -210, + -210, -210, -210, -210, 240, 155, 155, -210, -210, 155, + 155, -210, -210, 155, -210, -210, 155, 155, -210, -210, + 155, -210, 156, -210, 265, 243, 243, 266, -210, 64, + 273, -210, 274, -210, 38, -210, -210, 164, -210, -210, + -210, 155, -210, -210, 155, -210, -210, 156, 281, -210, + -210, 243, 276, -210, -210, 272, 277, 155, -210, -210, + -210, -210, 244, -210, 278, 285, 280, 282, 269, -210, + 164, 155, 283, -210 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -693,54 +694,54 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 112, 119, 120, 0, 0, 105, 106, 113, 1, 94, + 114, 121, 122, 0, 0, 107, 108, 115, 1, 96, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 17, 117, 104, 3, 0, 103, 95, - 102, 101, 100, 99, 96, 97, 98, 0, 0, 0, - 0, 0, 74, 0, 0, 0, 0, 0, 14, 108, - 117, 117, 117, 0, 107, 118, 75, 60, 12, 13, - 0, 0, 16, 0, 81, 79, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 60, 58, 61, 62, 69, - 60, 0, 76, 6, 0, 82, 0, 79, 0, 6, - 0, 0, 87, 15, 115, 0, 0, 10, 11, 0, - 26, 19, 0, 19, 0, 0, 14, 0, 0, 0, - 56, 0, 0, 21, 21, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 4, 53, 54, 0, 0, 60, - 0, 0, 59, 0, 0, 72, 0, 0, 6, 0, - 84, 80, 0, 6, 0, 0, 0, 93, 92, 116, - 0, 110, 0, 114, 20, 60, 0, 20, 60, 56, - 0, 0, 60, 60, 0, 57, 37, 43, 0, 22, - 23, 23, 47, 48, 0, 0, 52, 0, 0, 0, - 0, 0, 0, 0, 55, 25, 0, 73, 70, 4, - 0, 0, 0, 0, 83, 0, 0, 90, 88, 109, - 111, 27, 0, 28, 60, 34, 36, 32, 15, 40, - 41, 60, 44, 24, 0, 0, 49, 51, 0, 68, - 60, 5, 0, 60, 60, 0, 71, 0, 0, 85, - 0, 77, 0, 91, 89, 19, 30, 35, 33, 38, - 42, 45, 0, 50, 63, 60, 65, 66, 60, 7, - 9, 86, 18, 0, 60, 39, 46, 64, 67, 0, - 78, 0, 0, 29, 0, 0, 8, 19, 60, 0, - 31 + 0, 0, 0, 18, 119, 106, 3, 0, 105, 97, + 104, 103, 102, 101, 98, 99, 100, 0, 0, 0, + 0, 0, 76, 0, 0, 0, 0, 0, 15, 110, + 119, 119, 119, 0, 109, 120, 77, 61, 13, 14, + 0, 0, 17, 0, 83, 81, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 61, 59, 62, 67, 71, + 63, 61, 0, 78, 6, 0, 84, 0, 81, 0, + 6, 0, 0, 89, 16, 117, 0, 0, 11, 10, + 12, 0, 27, 20, 0, 20, 0, 0, 15, 0, + 0, 0, 57, 0, 0, 22, 22, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 4, 54, 55, 0, + 0, 61, 0, 0, 60, 0, 0, 74, 0, 0, + 6, 0, 86, 82, 0, 6, 0, 0, 0, 95, + 94, 118, 0, 112, 0, 116, 21, 61, 0, 21, + 61, 57, 0, 0, 61, 61, 0, 58, 38, 44, + 0, 23, 24, 24, 48, 49, 0, 0, 53, 0, + 0, 0, 0, 0, 0, 0, 56, 26, 0, 75, + 72, 4, 0, 0, 0, 0, 85, 0, 0, 92, + 90, 111, 113, 28, 0, 29, 61, 35, 37, 33, + 16, 41, 42, 61, 45, 25, 0, 0, 50, 52, + 0, 70, 61, 5, 0, 61, 61, 0, 73, 0, + 0, 87, 0, 79, 0, 93, 91, 20, 31, 36, + 34, 39, 43, 46, 0, 51, 65, 61, 0, 64, + 68, 61, 7, 9, 88, 19, 0, 61, 40, 47, + 66, 69, 0, 80, 0, 0, 30, 0, 0, 8, + 20, 61, 0, 32 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -153, 53, -123, -58, 179, -51, 187, -30, 29, -153, - -101, 194, 138, -77, -153, 159, -153, -152, -134, -66, - -67, -153, -153, -153, -153, -153, 229, -153, -153, -153, - -153, -153, -153, -153, -153, -153, 307, -153, -153, -153, - 225, -153, 56, -153, -153 + -210, 54, -125, -76, 179, -52, 193, -38, -17, -210, + -102, 194, 146, -77, -210, 150, -210, -153, -209, -178, + -70, -66, -210, -210, -210, -210, -210, 230, -210, -210, + -210, -210, -210, -210, -210, -210, -210, 310, -210, -210, + -210, 226, -210, 86, -210, -210 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 16, 179, 137, 99, 60, 69, 154, 24, 253, - 155, 170, 214, 76, 128, 166, 77, 78, 79, 80, - 81, 29, 57, 30, 232, 141, 86, 65, 87, 31, - 32, 33, 34, 35, 36, 17, 5, 6, 7, 1, - 55, 150, 41, 2, 3 + -1, 16, 181, 139, 101, 60, 69, 156, 24, 256, + 157, 172, 216, 76, 130, 168, 77, 78, 79, 80, + 81, 82, 29, 57, 30, 234, 143, 87, 65, 88, + 31, 32, 33, 34, 35, 36, 17, 5, 6, 7, + 1, 55, 152, 41, 2, 3 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -748,148 +749,156 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint16 yytable[] = { - 132, 182, 158, 201, 27, 28, 205, 61, 130, 129, - 209, 210, 62, 134, 63, 74, 66, 91, 93, 220, - 62, 53, 54, 146, 221, 156, 58, 75, 4, 59, - 224, 145, 249, 165, 8, 221, 18, 221, 15, 173, - 174, 175, 176, 177, 25, 92, 58, 26, 37, 59, - 184, 20, 237, 159, 160, 21, 162, 163, 164, 240, - 167, 168, 186, 22, 90, 23, 227, 50, 51, 52, - 178, 56, 9, 157, 38, 67, 68, 196, 58, 203, - 192, 59, 165, 207, 49, 195, 244, 211, 64, 246, - 247, 212, 180, 39, 183, 88, 89, 216, 217, 40, - 218, 73, 261, 121, 189, 190, 70, 71, 72, 9, - 208, 257, 23, 62, 258, 82, 269, 143, 10, 11, - 12, 13, 14, 53, 94, 152, 236, 204, 53, 95, - 238, 239, 53, 96, 254, 97, 98, 241, 242, 139, - 140, 243, 42, 43, 44, 83, 189, 190, 84, 45, - 74, 46, 47, 48, 139, 194, 131, 85, 133, 138, - 135, 136, 255, 144, 53, 256, 268, 100, 101, 102, - 147, 148, 103, 104, 105, 106, 151, 107, 108, 109, - 110, 111, 112, 113, 114, 153, 62, 115, 116, 117, - 118, 119, 120, 169, 181, 121, 122, 123, 124, 185, - 187, 188, 213, 191, 197, 125, 126, 127, 100, 101, - 102, 198, 193, 103, 104, 105, 106, 199, 107, 108, - 109, 110, 111, 112, 113, 114, 200, 202, 115, 116, - 117, 118, 119, 120, 219, 222, 223, 122, 123, 124, - 225, 226, 228, 231, 229, 230, 125, 126, 127, 100, - 101, 102, 235, 233, 103, 104, 105, 106, 234, 107, - 108, 109, 110, 111, 112, 113, 114, 245, 248, 115, - 116, 117, 118, 119, 120, 250, 251, 259, 264, 260, - 26, 263, 262, 266, 265, 252, 270, 125, 126, 127, - 100, 101, 102, 161, 172, 103, 104, 105, 106, 267, - 107, 108, 109, 110, 111, 112, 113, 114, 171, 215, - 115, 116, 117, 118, 119, 120, 142, 19, 206, 149, - 0, 0, 0, 0, 0, 0, 0, 0, 125, 126, - 127 + 134, 184, 37, 160, 203, 131, 63, 207, 66, 132, + 4, 211, 212, 246, 147, 136, 92, 94, 8, 75, + 148, 50, 51, 52, 58, 56, 61, 158, 59, 67, + 68, 74, 62, 222, 226, 167, 18, 62, 260, 223, + 223, 175, 176, 177, 178, 179, 15, 249, 250, 89, + 90, 20, 186, 239, 161, 162, 9, 164, 165, 166, + 242, 169, 170, 91, 194, 188, 229, 159, 252, 197, + 21, 180, 145, 261, 223, 198, 23, 93, 58, 25, + 154, 205, 59, 26, 167, 209, 182, 58, 185, 213, + 22, 59, 38, 214, 27, 28, 9, 53, 54, 218, + 219, 39, 220, 40, 264, 10, 11, 12, 13, 14, + 49, 210, 64, 42, 43, 44, 23, 62, 272, 73, + 45, 206, 46, 47, 48, 98, 99, 100, 238, 123, + 191, 192, 240, 241, 83, 257, 70, 71, 72, 243, + 244, 53, 95, 245, 53, 96, 53, 97, 141, 142, + 191, 192, 141, 196, 84, 85, 86, 74, 133, 135, + 140, 137, 138, 146, 258, 149, 150, 259, 271, 102, + 103, 104, 53, 62, 105, 106, 107, 108, 153, 109, + 110, 111, 112, 113, 114, 115, 116, 155, 183, 117, + 118, 119, 120, 121, 122, 171, 187, 123, 124, 125, + 126, 189, 190, 215, 193, 199, 200, 127, 128, 129, + 102, 103, 104, 195, 201, 105, 106, 107, 108, 202, + 109, 110, 111, 112, 113, 114, 115, 116, 204, 224, + 117, 118, 119, 120, 121, 122, 221, 225, 227, 124, + 125, 126, 228, 231, 230, 232, 248, 233, 127, 128, + 129, 102, 103, 104, 237, 235, 105, 106, 107, 108, + 236, 109, 110, 111, 112, 113, 114, 115, 116, 247, + 251, 117, 118, 119, 120, 121, 122, 253, 254, 262, + 26, 263, 266, 268, 270, 265, 269, 273, 255, 127, + 128, 129, 102, 103, 104, 267, 174, 105, 106, 107, + 108, 163, 109, 110, 111, 112, 113, 114, 115, 116, + 173, 208, 117, 118, 119, 120, 121, 122, 144, 217, + 19, 151, 0, 126, 0, 0, 0, 0, 0, 0, + 127, 128, 129, 102, 103, 104, 0, 0, 105, 106, + 107, 108, 0, 109, 110, 111, 112, 113, 114, 115, + 116, 0, 0, 117, 118, 119, 120, 121, 122, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 127, 128, 129 }; static const yytype_int16 yycheck[] = { - 77, 124, 103, 155, 3, 4, 158, 3, 75, 75, - 162, 163, 8, 80, 44, 3, 46, 68, 69, 4, - 8, 3, 4, 89, 9, 102, 5, 57, 3, 8, - 4, 89, 4, 110, 0, 9, 3, 9, 7, 116, - 117, 118, 119, 120, 4, 4, 5, 7, 19, 8, - 127, 3, 204, 104, 105, 3, 107, 108, 109, 211, - 111, 112, 129, 3, 43, 7, 189, 38, 39, 40, - 121, 42, 42, 103, 55, 46, 47, 143, 5, 156, - 138, 8, 159, 160, 4, 143, 220, 164, 5, 223, - 224, 168, 122, 55, 124, 66, 67, 174, 175, 55, - 177, 30, 254, 38, 39, 40, 50, 51, 52, 42, - 161, 245, 7, 8, 248, 4, 268, 88, 51, 52, - 53, 54, 55, 3, 4, 96, 203, 157, 3, 4, - 207, 208, 3, 4, 235, 5, 6, 214, 215, 3, - 4, 218, 36, 37, 38, 36, 39, 40, 3, 43, - 3, 45, 46, 47, 3, 4, 3, 5, 3, 36, - 4, 3, 239, 3, 3, 242, 267, 10, 11, 12, - 4, 4, 15, 16, 17, 18, 4, 20, 21, 22, - 23, 24, 25, 26, 27, 4, 8, 30, 31, 32, - 33, 34, 35, 28, 9, 38, 39, 40, 41, 4, - 4, 4, 29, 4, 4, 48, 49, 50, 10, 11, - 12, 4, 44, 15, 16, 17, 18, 4, 20, 21, - 22, 23, 24, 25, 26, 27, 4, 3, 30, 31, - 32, 33, 34, 35, 4, 9, 4, 39, 40, 41, - 9, 4, 9, 5, 4, 4, 48, 49, 50, 10, - 11, 12, 13, 4, 15, 16, 17, 18, 4, 20, - 21, 22, 23, 24, 25, 26, 27, 4, 4, 30, - 31, 32, 33, 34, 35, 4, 4, 3, 9, 4, - 7, 4, 40, 4, 3, 232, 4, 48, 49, 50, - 10, 11, 12, 106, 115, 15, 16, 17, 18, 14, - 20, 21, 22, 23, 24, 25, 26, 27, 114, 171, - 30, 31, 32, 33, 34, 35, 87, 10, 159, 94, - -1, -1, -1, -1, -1, -1, -1, -1, 48, 49, - 50 + 77, 126, 19, 105, 157, 75, 44, 160, 46, 75, + 3, 164, 165, 222, 90, 81, 68, 69, 0, 57, + 90, 38, 39, 40, 5, 42, 3, 104, 9, 46, + 47, 3, 9, 4, 4, 112, 3, 9, 247, 10, + 10, 118, 119, 120, 121, 122, 8, 225, 226, 66, + 67, 3, 129, 206, 106, 107, 43, 109, 110, 111, + 213, 113, 114, 44, 140, 131, 191, 105, 4, 145, + 3, 123, 89, 251, 10, 145, 8, 4, 5, 4, + 97, 158, 9, 8, 161, 162, 124, 5, 126, 166, + 3, 9, 56, 170, 3, 4, 43, 3, 4, 176, + 177, 56, 179, 56, 257, 52, 53, 54, 55, 56, + 4, 163, 5, 37, 38, 39, 8, 9, 271, 31, + 44, 159, 46, 47, 48, 5, 6, 7, 205, 39, + 40, 41, 209, 210, 4, 237, 50, 51, 52, 216, + 217, 3, 4, 220, 3, 4, 3, 4, 3, 4, + 40, 41, 3, 4, 37, 3, 5, 3, 3, 3, + 37, 4, 3, 3, 241, 4, 4, 244, 270, 11, + 12, 13, 3, 9, 16, 17, 18, 19, 4, 21, + 22, 23, 24, 25, 26, 27, 28, 4, 10, 31, + 32, 33, 34, 35, 36, 29, 4, 39, 40, 41, + 42, 4, 4, 30, 4, 4, 4, 49, 50, 51, + 11, 12, 13, 45, 4, 16, 17, 18, 19, 4, + 21, 22, 23, 24, 25, 26, 27, 28, 3, 10, + 31, 32, 33, 34, 35, 36, 4, 4, 10, 40, + 41, 42, 4, 4, 10, 4, 3, 5, 49, 50, + 51, 11, 12, 13, 14, 4, 16, 17, 18, 19, + 4, 21, 22, 23, 24, 25, 26, 27, 28, 4, + 4, 31, 32, 33, 34, 35, 36, 4, 4, 3, + 8, 4, 4, 3, 15, 41, 4, 4, 234, 49, + 50, 51, 11, 12, 13, 10, 117, 16, 17, 18, + 19, 108, 21, 22, 23, 24, 25, 26, 27, 28, + 116, 161, 31, 32, 33, 34, 35, 36, 88, 173, + 10, 95, -1, 42, -1, -1, -1, -1, -1, -1, + 49, 50, 51, 11, 12, 13, -1, -1, 16, 17, + 18, 19, -1, 21, 22, 23, 24, 25, 26, 27, + 28, -1, -1, 31, 32, 33, 34, 35, 36, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 49, 50, 51 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 96, 100, 101, 3, 93, 94, 95, 0, 42, - 51, 52, 53, 54, 55, 7, 58, 92, 3, 93, - 3, 3, 3, 7, 65, 4, 7, 3, 4, 78, - 80, 86, 87, 88, 89, 90, 91, 65, 55, 55, - 55, 99, 36, 37, 38, 43, 45, 46, 47, 4, - 65, 65, 65, 3, 4, 97, 65, 79, 5, 8, - 62, 3, 8, 64, 5, 84, 64, 65, 65, 63, - 99, 99, 99, 30, 3, 64, 70, 73, 74, 75, - 76, 77, 4, 36, 3, 5, 83, 85, 65, 65, - 43, 62, 4, 62, 4, 4, 4, 5, 6, 61, - 10, 11, 12, 15, 16, 17, 18, 20, 21, 22, - 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, - 35, 38, 39, 40, 41, 48, 49, 50, 71, 76, - 77, 3, 70, 3, 77, 4, 3, 60, 36, 3, - 4, 82, 83, 65, 3, 60, 76, 4, 4, 97, - 98, 4, 65, 4, 64, 67, 70, 64, 67, 62, - 62, 63, 62, 62, 62, 70, 72, 62, 62, 28, - 68, 68, 61, 70, 70, 70, 70, 70, 62, 59, - 64, 9, 59, 64, 70, 4, 77, 4, 4, 39, - 40, 4, 60, 44, 4, 60, 76, 4, 4, 4, - 4, 74, 3, 70, 64, 74, 72, 70, 62, 74, - 74, 70, 70, 29, 69, 69, 70, 70, 70, 4, - 4, 9, 9, 4, 4, 9, 4, 59, 9, 4, - 4, 5, 81, 4, 4, 13, 70, 74, 70, 70, - 74, 70, 70, 70, 75, 4, 75, 75, 4, 4, - 4, 4, 58, 66, 67, 70, 70, 75, 75, 3, - 4, 74, 40, 4, 9, 3, 4, 14, 67, 74, - 4 + 0, 98, 102, 103, 3, 95, 96, 97, 0, 43, + 52, 53, 54, 55, 56, 8, 59, 94, 3, 95, + 3, 3, 3, 8, 66, 4, 8, 3, 4, 80, + 82, 88, 89, 90, 91, 92, 93, 66, 56, 56, + 56, 101, 37, 38, 39, 44, 46, 47, 48, 4, + 66, 66, 66, 3, 4, 99, 66, 81, 5, 9, + 63, 3, 9, 65, 5, 86, 65, 66, 66, 64, + 101, 101, 101, 31, 3, 65, 71, 74, 75, 76, + 77, 78, 79, 4, 37, 3, 5, 85, 87, 66, + 66, 44, 63, 4, 63, 4, 4, 4, 5, 6, + 7, 62, 11, 12, 13, 16, 17, 18, 19, 21, + 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, + 34, 35, 36, 39, 40, 41, 42, 49, 50, 51, + 72, 78, 79, 3, 71, 3, 79, 4, 3, 61, + 37, 3, 4, 84, 85, 66, 3, 61, 78, 4, + 4, 99, 100, 4, 66, 4, 65, 68, 71, 65, + 68, 63, 63, 64, 63, 63, 63, 71, 73, 63, + 63, 29, 69, 69, 62, 71, 71, 71, 71, 71, + 63, 60, 65, 10, 60, 65, 71, 4, 79, 4, + 4, 40, 41, 4, 61, 45, 4, 61, 78, 4, + 4, 4, 4, 75, 3, 71, 65, 75, 73, 71, + 63, 75, 75, 71, 71, 30, 70, 70, 71, 71, + 71, 4, 4, 10, 10, 4, 4, 10, 4, 60, + 10, 4, 4, 5, 83, 4, 4, 14, 71, 75, + 71, 71, 75, 71, 71, 71, 76, 4, 3, 77, + 77, 4, 4, 4, 4, 59, 67, 68, 71, 71, + 76, 77, 3, 4, 75, 41, 4, 10, 3, 4, + 15, 68, 75, 4 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 57, 58, 58, 59, 59, 60, 60, 60, 60, - 61, 61, 62, 62, 63, 63, 64, 65, 66, 67, - 67, 68, 68, 69, 69, 70, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 72, 72, 73, 73, - 74, 74, 75, 75, 75, 75, 75, 75, 76, 77, - 78, 78, 78, 78, 79, 79, 80, 81, 82, 83, - 83, 84, 85, 86, 86, 87, 87, 88, 89, 89, - 89, 89, 90, 91, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 93, 93, 94, 95, 95, 95, 95, - 95, 95, 96, 96, 97, 98, 98, 99, 99, 100, - 101 + 0, 58, 59, 59, 60, 60, 61, 61, 61, 61, + 62, 62, 62, 63, 63, 64, 64, 65, 66, 67, + 68, 68, 69, 69, 70, 70, 71, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 73, 73, 74, + 74, 75, 75, 76, 76, 76, 76, 77, 77, 77, + 78, 79, 80, 80, 80, 80, 81, 81, 82, 83, + 84, 85, 85, 86, 87, 88, 88, 89, 89, 90, + 91, 91, 91, 91, 92, 93, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 95, 95, 96, 97, 97, + 97, 97, 97, 97, 98, 98, 99, 100, 100, 101, + 101, 102, 103 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 1, 2, 0, 2, 0, 4, 8, 4, - 1, 1, 1, 1, 0, 2, 1, 1, 1, 0, - 1, 0, 1, 0, 1, 3, 1, 3, 3, 7, - 4, 12, 3, 4, 3, 4, 3, 2, 4, 5, - 3, 3, 4, 2, 3, 4, 5, 2, 2, 3, - 4, 3, 2, 1, 1, 2, 0, 1, 1, 2, - 0, 1, 1, 5, 6, 5, 5, 6, 4, 1, - 6, 7, 5, 6, 0, 1, 4, 1, 5, 0, - 2, 1, 1, 6, 5, 7, 8, 4, 6, 7, - 6, 7, 5, 5, 0, 2, 2, 2, 2, 2, - 2, 2, 2, 4, 4, 1, 1, 5, 5, 9, - 8, 9, 0, 2, 4, 0, 1, 0, 2, 1, - 1 + 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, + 0, 1, 0, 1, 0, 1, 3, 1, 3, 3, + 7, 4, 12, 3, 4, 3, 4, 3, 2, 4, + 5, 3, 3, 4, 2, 3, 4, 5, 2, 2, + 3, 4, 3, 2, 1, 1, 2, 0, 1, 1, + 2, 0, 1, 1, 5, 5, 6, 1, 5, 6, + 4, 1, 6, 7, 5, 6, 0, 1, 4, 1, + 5, 0, 2, 1, 1, 6, 5, 7, 8, 4, + 6, 7, 6, 7, 5, 5, 0, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 4, 1, 1, 5, + 5, 9, 8, 9, 0, 2, 4, 0, 1, 0, + 2, 1, 1 }; @@ -1385,196 +1394,202 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN switch (yytype) { - case 58: /* text_list */ + case 59: /* text_list */ #line 157 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_text_list(parser->allocator, &((*yyvaluep).text_list)); } -#line 1392 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1401 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 59: /* value_type_list */ + case 60: /* value_type_list */ #line 160 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_type_vector(parser->allocator, &((*yyvaluep).types)); } -#line 1398 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1407 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 60: /* func_type */ + case 61: /* func_type */ #line 170 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_func_signature(parser->allocator, &((*yyvaluep).func_sig)); } -#line 1404 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1413 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 61: /* literal */ + case 62: /* literal */ #line 159 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).literal).text); } -#line 1410 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1419 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 62: /* var */ + case 63: /* var */ #line 161 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_var(parser->allocator, &((*yyvaluep).var)); } -#line 1416 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1425 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 63: /* var_list */ + case 64: /* var_list */ #line 162 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_var_vector_and_elements(parser->allocator, &((*yyvaluep).vars)); } -#line 1422 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1431 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 64: /* bind_var */ + case 65: /* bind_var */ #line 158 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).text)); } -#line 1428 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1437 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 65: /* quoted_text */ + case 66: /* quoted_text */ #line 158 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).text)); } -#line 1434 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1443 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 66: /* segment_contents */ + case 67: /* segment_contents */ #line 167 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_segment(parser->allocator, &((*yyvaluep).segment)); } -#line 1440 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1449 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 67: /* labeling */ + case 68: /* labeling */ #line 158 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).text)); } -#line 1446 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1455 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 70: /* expr */ + case 71: /* expr */ #line 163 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr(parser->allocator, ((*yyvaluep).expr)); } -#line 1452 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1461 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 71: /* expr1 */ + case 72: /* expr1 */ #line 163 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr(parser->allocator, ((*yyvaluep).expr)); } -#line 1458 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1467 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 72: /* expr_opt */ + case 73: /* expr_opt */ #line 163 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr(parser->allocator, ((*yyvaluep).expr)); } -#line 1464 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1473 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 73: /* non_empty_expr_list */ + case 74: /* non_empty_expr_list */ #line 164 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); } -#line 1470 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1479 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 74: /* expr_list */ + case 75: /* expr_list */ #line 164 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); } -#line 1476 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1485 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 75: /* func_fields */ + case 76: /* func_fields */ #line 165 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_func_fields(parser->allocator, ((*yyvaluep).func_fields)); } -#line 1482 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1491 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 77: /* func_info */ + case 77: /* func_body */ +#line 165 "src/wasm-ast-parser.y" /* yacc.c:1257 */ + { wasm_destroy_func_fields(parser->allocator, ((*yyvaluep).func_fields)); } +#line 1497 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ + break; + + case 79: /* func_info */ #line 166 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_func(parser->allocator, ((*yyvaluep).func)); wasm_free(parser->allocator, ((*yyvaluep).func)); } -#line 1488 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1503 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 78: /* func */ + case 80: /* func */ #line 174 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_exported_func(parser->allocator, &((*yyvaluep).exported_func)); } -#line 1494 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1509 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 82: /* segment */ + case 84: /* segment */ #line 167 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_segment(parser->allocator, &((*yyvaluep).segment)); } -#line 1500 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1515 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 83: /* segment_list */ + case 85: /* segment_list */ #line 168 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_segment_vector_and_elements(parser->allocator, &((*yyvaluep).segments)); } -#line 1506 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1521 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 86: /* memory */ + case 88: /* memory */ #line 169 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_memory(parser->allocator, &((*yyvaluep).memory)); } -#line 1512 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1527 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 87: /* type_def */ + case 89: /* type_def */ #line 171 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_func_type(parser->allocator, &((*yyvaluep).func_type)); } -#line 1518 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1533 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 88: /* table */ + case 90: /* table */ #line 162 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_var_vector_and_elements(parser->allocator, &((*yyvaluep).vars)); } -#line 1524 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1539 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 89: /* import */ + case 91: /* import */ #line 172 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_import(parser->allocator, ((*yyvaluep).import)); wasm_free(parser->allocator, ((*yyvaluep).import)); } -#line 1530 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1545 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 90: /* export */ + case 92: /* export */ #line 173 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_export(parser->allocator, &((*yyvaluep).export_)); } -#line 1536 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1551 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 92: /* module_fields */ + case 94: /* module_fields */ #line 175 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_module(parser->allocator, ((*yyvaluep).module)); wasm_free(parser->allocator, ((*yyvaluep).module)); } -#line 1542 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1557 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 93: /* raw_module */ + case 95: /* raw_module */ #line 176 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_raw_module(parser->allocator, &((*yyvaluep).raw_module)); } -#line 1548 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1563 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 94: /* module */ + case 96: /* module */ #line 175 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_module(parser->allocator, ((*yyvaluep).module)); wasm_free(parser->allocator, ((*yyvaluep).module)); } -#line 1554 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1569 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 95: /* cmd */ + case 97: /* cmd */ #line 178 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_command(parser->allocator, ((*yyvaluep).command)); wasm_free(parser->allocator, ((*yyvaluep).command)); } -#line 1560 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1575 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 96: /* cmd_list */ + case 98: /* cmd_list */ #line 179 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_command_vector_and_elements(parser->allocator, &((*yyvaluep).commands)); } -#line 1566 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1581 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 99: /* const_list */ + case 101: /* const_list */ #line 177 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_const_vector(parser->allocator, &((*yyvaluep).consts)); } -#line 1572 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1587 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; - case 100: /* script */ + case 102: /* script */ #line 180 "src/wasm-ast-parser.y" /* yacc.c:1257 */ { wasm_destroy_script(&((*yyvaluep).script)); } -#line 1578 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ +#line 1593 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1257 */ break; @@ -1873,7 +1888,7 @@ yyreduce: node->next = NULL; (yyval.text_list).first = (yyval.text_list).last = node; } -#line 1877 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 1892 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; case 3: @@ -1886,13 +1901,13 @@ yyreduce: (yyval.text_list).last->next = node; (yyval.text_list).last = node; } -#line 1890 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 1905 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; case 4: #line 209 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.types)); } -#line 1896 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 1911 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; case 5: @@ -1901,13 +1916,13 @@ yyreduce: (yyval.types) = (yyvsp[-1].types); wasm_append_type_value(parser->allocator, &(yyval.types), &(yyvsp[0].type)); } -#line 1905 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 1920 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; case 6: #line 216 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.func_sig)); } -#line 1911 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 1926 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; case 7: @@ -1916,7 +1931,7 @@ yyreduce: (yyval.func_sig).result_type = WASM_TYPE_VOID; (yyval.func_sig).param_types = (yyvsp[-1].types); } -#line 1920 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 1935 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; case 8: @@ -1925,13 +1940,13 @@ yyreduce: (yyval.func_sig).result_type = (yyvsp[-1].type); (yyval.func_sig).param_types = (yyvsp[-5].types); } -#line 1929 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 1944 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; case 9: #line 225 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.func_sig)); (yyval.func_sig).result_type = (yyvsp[-1].type); } -#line 1935 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 1950 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; case 10: @@ -1940,7 +1955,7 @@ yyreduce: (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 1944 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 1959 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; case 11: @@ -1949,16 +1964,25 @@ yyreduce: (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 1953 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 1968 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; case 12: -#line 243 "src/wasm-ast-parser.y" /* yacc.c:1646 */ +#line 240 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + { + (yyval.literal).type = (yyvsp[0].literal).type; + DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); + } +#line 1977 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ + break; + + case 13: +#line 247 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.var).loc = (yylsp[0]); (yyval.var).type = WASM_VAR_TYPE_INDEX; - uint32_t index; - if (WASM_FAILED(wasm_parse_int32((yyvsp[0].literal).text.start, + uint64_t index; + if (WASM_FAILED(wasm_parse_int64((yyvsp[0].literal).text.start, (yyvsp[0].literal).text.start + (yyvsp[0].literal).text.length, &index, WASM_PARSE_UNSIGNED_ONLY))) { wasm_ast_parser_error(&(yylsp[0]), lexer, parser, "invalid int " PRIstringslice, @@ -1966,42 +1990,42 @@ yyreduce: } (yyval.var).index = index; } -#line 1970 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 1994 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 13: -#line 255 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 14: +#line 259 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.var).loc = (yylsp[0]); (yyval.var).type = WASM_VAR_TYPE_NAME; DUPTEXT((yyval.var).name, (yyvsp[0].text)); } -#line 1980 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2004 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 14: -#line 262 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 15: +#line 266 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.vars)); } -#line 1986 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2010 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 15: -#line 263 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 16: +#line 267 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.vars) = (yyvsp[-1].vars); wasm_append_var_value(parser->allocator, &(yyval.vars), &(yyvsp[0].var)); } -#line 1995 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2019 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 16: -#line 269 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 17: +#line 273 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { DUPTEXT((yyval.text), (yyvsp[0].text)); } -#line 2001 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2025 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 17: -#line 273 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 18: +#line 277 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { WasmTextListNode node; node.text = (yyvsp[0].text); @@ -2015,56 +2039,57 @@ yyreduce: (yyval.text).start = data; (yyval.text).length = size; } -#line 2019 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2043 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 18: -#line 289 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 19: +#line 293 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { dup_text_list(parser->allocator, &(yyvsp[0].text_list), &(yyval.segment).data, &(yyval.segment).size); wasm_destroy_text_list(parser->allocator, &(yyvsp[0].text_list)); } -#line 2028 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2052 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 19: -#line 296 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 20: +#line 300 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.text)); } -#line 2034 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2058 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 20: -#line 297 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 21: +#line 301 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.text) = (yyvsp[0].text); } -#line 2040 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2064 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 21: -#line 301 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 22: +#line 305 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.u64) = 0; } -#line 2046 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2070 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 22: -#line 302 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 23: +#line 306 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { - if (WASM_FAILED(wasm_parse_int64((yyvsp[0].text).start, (yyvsp[0].text).start + (yyvsp[0].text).length, &(yyval.u64)))) { - wasm_ast_parser_error(&(yylsp[0]), lexer, parser, - "invalid offset \"" PRIstringslice "\"", - WASM_PRINTF_STRING_SLICE_ARG((yyvsp[0].text))); + if (WASM_FAILED(wasm_parse_int64((yyvsp[0].text).start, (yyvsp[0].text).start + (yyvsp[0].text).length, &(yyval.u64), + WASM_PARSE_SIGNED_AND_UNSIGNED))) { + wasm_ast_parser_error(&(yylsp[0]), lexer, parser, + "invalid offset \"" PRIstringslice "\"", + WASM_PRINTF_STRING_SLICE_ARG((yyvsp[0].text))); } } -#line 2058 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2083 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 23: -#line 311 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 24: +#line 316 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.u32) = USE_NATURAL_ALIGNMENT; } -#line 2064 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2089 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 24: -#line 312 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 25: +#line 317 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { if (WASM_FAILED(wasm_parse_int32((yyvsp[0].text).start, (yyvsp[0].text).start + (yyvsp[0].text).length, &(yyval.u32), WASM_PARSE_UNSIGNED_ONLY))) { @@ -2073,67 +2098,67 @@ yyreduce: WASM_PRINTF_STRING_SLICE_ARG((yyvsp[0].text))); } } -#line 2077 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2102 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 25: -#line 323 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 26: +#line 328 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[-1].expr); (yyval.expr)->loc = (yylsp[-2]); } -#line 2083 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2108 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 26: -#line 326 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 27: +#line 331 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_empty_expr(parser->allocator, WASM_EXPR_TYPE_NOP); } -#line 2091 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2116 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 27: -#line 329 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 28: +#line 334 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_block_expr(parser->allocator); (yyval.expr)->block.label = (yyvsp[-1].text); (yyval.expr)->block.first = (yyvsp[0].expr_list).first; } -#line 2101 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2126 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 28: -#line 334 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 29: +#line 339 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_if_expr(parser->allocator); (yyval.expr)->if_.cond = (yyvsp[-1].expr); (yyval.expr)->if_.true_.first = (yyvsp[0].expr); } -#line 2111 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2136 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 29: -#line 339 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 30: +#line 344 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_if_expr(parser->allocator); (yyval.expr)->if_.cond = (yyvsp[-5].expr); (yyval.expr)->if_.true_.label = (yyvsp[-2].text); (yyval.expr)->if_.true_.first = (yyvsp[-1].expr_list).first; } -#line 2122 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2147 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 30: -#line 345 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 31: +#line 350 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_if_else_expr(parser->allocator); (yyval.expr)->if_else.cond = (yyvsp[-2].expr); (yyval.expr)->if_else.true_.first = (yyvsp[-1].expr); (yyval.expr)->if_else.false_.first = (yyvsp[0].expr); } -#line 2133 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2158 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 31: -#line 351 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 32: +#line 356 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_if_else_expr(parser->allocator); (yyval.expr)->if_else.cond = (yyvsp[-10].expr); @@ -2142,73 +2167,73 @@ yyreduce: (yyval.expr)->if_else.false_.label = (yyvsp[-2].text); (yyval.expr)->if_else.false_.first = (yyvsp[-1].expr_list).first; } -#line 2146 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2171 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 32: -#line 359 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 33: +#line 364 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_br_if_expr(parser->allocator); (yyval.expr)->br_if.var = (yyvsp[-1].var); (yyval.expr)->br_if.cond = (yyvsp[0].expr); } -#line 2156 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2181 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 33: -#line 364 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 34: +#line 369 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_br_if_expr(parser->allocator); (yyval.expr)->br_if.var = (yyvsp[-2].var); (yyval.expr)->br_if.expr = (yyvsp[-1].expr); (yyval.expr)->br_if.cond = (yyvsp[0].expr); } -#line 2167 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2192 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 34: -#line 370 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 35: +#line 375 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_loop_expr(parser->allocator); WASM_ZERO_MEMORY((yyval.expr)->loop.outer); (yyval.expr)->loop.inner = (yyvsp[-1].text); (yyval.expr)->loop.first = (yyvsp[0].expr_list).first; } -#line 2178 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2203 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 35: -#line 376 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 36: +#line 381 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_loop_expr(parser->allocator); (yyval.expr)->loop.outer = (yyvsp[-2].text); (yyval.expr)->loop.inner = (yyvsp[-1].text); (yyval.expr)->loop.first = (yyvsp[0].expr_list).first; } -#line 2189 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2214 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 36: -#line 382 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 37: +#line 387 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_br_expr(parser->allocator); (yyval.expr)->br.var = (yyvsp[-1].var); (yyval.expr)->br.expr = (yyvsp[0].expr); } -#line 2199 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2224 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 37: -#line 387 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 38: +#line 392 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_return_expr(parser->allocator); (yyval.expr)->return_.expr = (yyvsp[0].expr); } -#line 2208 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2233 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 38: -#line 391 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 39: +#line 396 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_br_table_expr(parser->allocator); (yyval.expr)->br_table.key = (yyvsp[0].expr); @@ -2216,11 +2241,11 @@ yyreduce: (yyval.expr)->br_table.targets = (yyvsp[-2].vars); (yyval.expr)->br_table.default_target = (yyvsp[-1].var); } -#line 2220 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2245 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 39: -#line 398 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 40: +#line 403 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_br_table_expr(parser->allocator); (yyval.expr)->br_table.key = (yyvsp[0].expr); @@ -2228,33 +2253,33 @@ yyreduce: (yyval.expr)->br_table.targets = (yyvsp[-3].vars); (yyval.expr)->br_table.default_target = (yyvsp[-2].var); } -#line 2232 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2257 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 40: -#line 405 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 41: +#line 410 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_call_expr(parser->allocator); (yyval.expr)->call.var = (yyvsp[-1].var); (yyval.expr)->call.first_arg = (yyvsp[0].expr_list).first; (yyval.expr)->call.num_args = (yyvsp[0].expr_list).size; } -#line 2243 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2268 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 41: -#line 411 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 42: +#line 416 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_call_import_expr(parser->allocator); (yyval.expr)->call.var = (yyvsp[-1].var); (yyval.expr)->call.first_arg = (yyvsp[0].expr_list).first; (yyval.expr)->call.num_args = (yyvsp[0].expr_list).size; } -#line 2254 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2279 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 42: -#line 417 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 43: +#line 422 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_call_indirect_expr(parser->allocator); (yyval.expr)->call_indirect.var = (yyvsp[-2].var); @@ -2262,30 +2287,30 @@ yyreduce: (yyval.expr)->call_indirect.first_arg = (yyvsp[0].expr_list).first; (yyval.expr)->call_indirect.num_args = (yyvsp[0].expr_list).size; } -#line 2266 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2291 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 43: -#line 424 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 44: +#line 429 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_get_local_expr(parser->allocator); (yyval.expr)->get_local.var = (yyvsp[0].var); } -#line 2275 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2300 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 44: -#line 428 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 45: +#line 433 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_set_local_expr(parser->allocator); (yyval.expr)->set_local.var = (yyvsp[-1].var); (yyval.expr)->set_local.expr = (yyvsp[0].expr); } -#line 2285 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2310 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 45: -#line 433 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 46: +#line 438 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_load_expr(parser->allocator); (yyval.expr)->load.opcode = (yyvsp[-3].opcode); @@ -2293,11 +2318,11 @@ yyreduce: (yyval.expr)->load.align = (yyvsp[-1].u32); (yyval.expr)->load.addr = (yyvsp[0].expr); } -#line 2297 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2322 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 46: -#line 440 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 47: +#line 445 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_store_expr(parser->allocator); (yyval.expr)->store.opcode = (yyvsp[-4].opcode); @@ -2306,11 +2331,11 @@ yyreduce: (yyval.expr)->store.addr = (yyvsp[-1].expr); (yyval.expr)->store.value = (yyvsp[0].expr); } -#line 2310 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2335 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 47: -#line 448 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 48: +#line 453 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_const_expr(parser->allocator); (yyval.expr)->const_.loc = (yylsp[-1]); @@ -2323,144 +2348,144 @@ yyreduce: } wasm_free(parser->allocator, (char*)(yyvsp[0].literal).text.start); } -#line 2327 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2352 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 48: -#line 460 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 49: +#line 465 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_unary_expr(parser->allocator); (yyval.expr)->unary.opcode = (yyvsp[-1].opcode); (yyval.expr)->unary.expr = (yyvsp[0].expr); } -#line 2337 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2362 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 49: -#line 465 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 50: +#line 470 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_binary_expr(parser->allocator); (yyval.expr)->binary.opcode = (yyvsp[-2].opcode); (yyval.expr)->binary.left = (yyvsp[-1].expr); (yyval.expr)->binary.right = (yyvsp[0].expr); } -#line 2348 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2373 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 50: -#line 471 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 51: +#line 476 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_select_expr(parser->allocator); (yyval.expr)->select.true_ = (yyvsp[-2].expr); (yyval.expr)->select.false_ = (yyvsp[-1].expr); (yyval.expr)->select.cond = (yyvsp[0].expr); } -#line 2359 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2384 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 51: -#line 477 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 52: +#line 482 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_compare_expr(parser->allocator); (yyval.expr)->compare.opcode = (yyvsp[-2].opcode); (yyval.expr)->compare.left = (yyvsp[-1].expr); (yyval.expr)->compare.right = (yyvsp[0].expr); } -#line 2370 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2395 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 52: -#line 483 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 53: +#line 488 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_convert_expr(parser->allocator); (yyval.expr)->convert.opcode = (yyvsp[-1].opcode); (yyval.expr)->convert.expr = (yyvsp[0].expr); } -#line 2380 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2405 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 53: -#line 488 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 54: +#line 493 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_empty_expr(parser->allocator, WASM_EXPR_TYPE_UNREACHABLE); } -#line 2388 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2413 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 54: -#line 491 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 55: +#line 496 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_empty_expr(parser->allocator, WASM_EXPR_TYPE_CURRENT_MEMORY); } -#line 2397 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2422 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 55: -#line 495 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 56: +#line 500 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = wasm_new_grow_memory_expr(parser->allocator); (yyval.expr)->grow_memory.expr = (yyvsp[0].expr); } -#line 2406 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2431 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 56: -#line 501 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 57: +#line 506 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = NULL; } -#line 2412 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2437 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 58: -#line 505 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 59: +#line 510 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list).first = (yyval.expr_list).last = (yyvsp[0].expr); (yyval.expr_list).size = 1; } -#line 2421 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2446 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 59: -#line 509 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 60: +#line 514 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[-1].expr_list); (yyval.expr_list).last->next = (yyvsp[0].expr); (yyval.expr_list).last = (yyvsp[0].expr); (yyval.expr_list).size++; } -#line 2432 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2457 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 60: -#line 517 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 61: +#line 522 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.expr_list)); } -#line 2438 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2463 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 62: -#line 523 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 64: +#line 529 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.func_fields) = new_func_field(parser->allocator); - (yyval.func_fields)->type = WASM_FUNC_FIELD_TYPE_EXPRS; - (yyval.func_fields)->first_expr = (yyvsp[0].expr_list).first; - (yyval.func_fields)->next = NULL; + (yyval.func_fields)->type = WASM_FUNC_FIELD_TYPE_RESULT_TYPE; + (yyval.func_fields)->result_type = (yyvsp[-2].type); + (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 2449 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2474 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 63: -#line 529 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 65: +#line 535 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.func_fields) = new_func_field(parser->allocator); (yyval.func_fields)->type = WASM_FUNC_FIELD_TYPE_PARAM_TYPES; (yyval.func_fields)->types = (yyvsp[-2].types); (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 2460 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2485 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 64: -#line 535 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 66: +#line 541 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.func_fields) = new_func_field(parser->allocator); (yyval.func_fields)->type = WASM_FUNC_FIELD_TYPE_BOUND_PARAM; @@ -2469,33 +2494,33 @@ yyreduce: (yyval.func_fields)->bound_type.type = (yyvsp[-2].type); (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 2473 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2498 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 65: -#line 543 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 67: +#line 551 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.func_fields) = new_func_field(parser->allocator); - (yyval.func_fields)->type = WASM_FUNC_FIELD_TYPE_RESULT_TYPE; - (yyval.func_fields)->result_type = (yyvsp[-2].type); - (yyval.func_fields)->next = (yyvsp[0].func_fields); + (yyval.func_fields)->type = WASM_FUNC_FIELD_TYPE_EXPRS; + (yyval.func_fields)->first_expr = (yyvsp[0].expr_list).first; + (yyval.func_fields)->next = NULL; } -#line 2484 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2509 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 66: -#line 549 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 68: +#line 557 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.func_fields) = new_func_field(parser->allocator); (yyval.func_fields)->type = WASM_FUNC_FIELD_TYPE_LOCAL_TYPES; (yyval.func_fields)->types = (yyvsp[-2].types); (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 2495 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2520 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 67: -#line 555 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 69: +#line 563 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.func_fields) = new_func_field(parser->allocator); (yyval.func_fields)->type = WASM_FUNC_FIELD_TYPE_BOUND_LOCAL; @@ -2504,17 +2529,17 @@ yyreduce: (yyval.func_fields)->bound_type.type = (yyvsp[-2].type); (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 2508 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2533 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 68: -#line 565 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 70: +#line 573 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.var) = (yyvsp[-1].var); } -#line 2514 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2539 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 69: -#line 568 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 71: +#line 576 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.func) = new_func(parser->allocator); WasmFuncField* field = (yyvsp[0].func_fields); @@ -2574,11 +2599,11 @@ yyreduce: field = next; } } -#line 2578 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2603 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 70: -#line 629 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 72: +#line 637 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.exported_func).func = (yyvsp[-1].func); (yyval.exported_func).func->loc = (yylsp[-4]); @@ -2588,11 +2613,11 @@ yyreduce: (yyval.exported_func).export_.var.type = WASM_VAR_TYPE_INDEX; (yyval.exported_func).export_.var.index = -1; } -#line 2592 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2617 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 71: -#line 638 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 73: +#line 646 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.exported_func).func = (yyvsp[-1].func); (yyval.exported_func).func->loc = (yylsp[-5]); @@ -2603,11 +2628,11 @@ yyreduce: (yyval.exported_func).export_.var.type = WASM_VAR_TYPE_INDEX; (yyval.exported_func).export_.var.index = -1; } -#line 2607 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2632 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 72: -#line 648 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 74: +#line 656 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.exported_func).func = (yyvsp[-1].func); (yyval.exported_func).func->loc = (yylsp[-3]); @@ -2616,11 +2641,11 @@ yyreduce: (yyval.exported_func).export_.var.type = WASM_VAR_TYPE_INDEX; (yyval.exported_func).export_.var.index = -1; } -#line 2620 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2645 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 73: -#line 656 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 75: +#line 664 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.exported_func).func = (yyvsp[-1].func); (yyval.exported_func).func->loc = (yylsp[-4]); @@ -2630,23 +2655,23 @@ yyreduce: (yyval.exported_func).export_.var.type = WASM_VAR_TYPE_INDEX; (yyval.exported_func).export_.var.index = -1; } -#line 2634 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2659 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 74: -#line 668 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 76: +#line 676 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.text)); } -#line 2640 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2665 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 76: -#line 676 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 78: +#line 684 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.var) = (yyvsp[-1].var); } -#line 2646 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2671 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 77: -#line 680 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 79: +#line 688 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { if (WASM_FAILED(wasm_parse_int32((yyvsp[0].literal).text.start, (yyvsp[0].literal).text.start + (yyvsp[0].literal).text.length, &(yyval.u32), @@ -2657,37 +2682,37 @@ yyreduce: WASM_PRINTF_STRING_SLICE_ARG((yyvsp[0].literal).text)); } } -#line 2661 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2686 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 78: -#line 693 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 80: +#line 701 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.segment).loc = (yylsp[-3]); (yyval.segment).data = (yyvsp[-1].segment).data; (yyval.segment).size = (yyvsp[-1].segment).size; (yyval.segment).addr = (yyvsp[-2].u32); } -#line 2672 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2697 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 79: -#line 701 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 81: +#line 709 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.segments)); } -#line 2678 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2703 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 80: -#line 702 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 82: +#line 710 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.segments) = (yyvsp[-1].segments); wasm_append_segment_value(parser->allocator, &(yyval.segments), &(yyvsp[0].segment)); } -#line 2687 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2712 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 81: -#line 709 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 83: +#line 717 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { if (WASM_FAILED(wasm_parse_uint64((yyvsp[0].literal).text.start, (yyvsp[0].literal).text.start + (yyvsp[0].literal).text.length, &(yyval.u64)))) { @@ -2697,11 +2722,11 @@ yyreduce: WASM_PRINTF_STRING_SLICE_ARG((yyvsp[0].literal).text)); } } -#line 2701 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2726 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 82: -#line 721 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 84: +#line 729 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { if (WASM_FAILED(wasm_parse_uint64((yyvsp[0].literal).text.start, (yyvsp[0].literal).text.start + (yyvsp[0].literal).text.length, &(yyval.u64)))) { @@ -2710,57 +2735,57 @@ yyreduce: WASM_PRINTF_STRING_SLICE_ARG((yyvsp[0].literal).text)); } } -#line 2714 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2739 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 83: -#line 732 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 85: +#line 740 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.memory).loc = (yylsp[-4]); (yyval.memory).initial_pages = (yyvsp[-3].u64); (yyval.memory).max_pages = (yyvsp[-2].u64); (yyval.memory).segments = (yyvsp[-1].segments); } -#line 2725 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2750 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 84: -#line 738 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 86: +#line 746 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.memory).loc = (yylsp[-3]); (yyval.memory).initial_pages = (yyvsp[-2].u64); (yyval.memory).max_pages = (yyval.memory).initial_pages; (yyval.memory).segments = (yyvsp[-1].segments); } -#line 2736 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2761 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 85: -#line 747 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 87: +#line 755 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.func_type)); (yyval.func_type).sig = (yyvsp[-2].func_sig); } -#line 2745 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2770 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 86: -#line 751 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 88: +#line 759 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.func_type).name = (yyvsp[-5].text); (yyval.func_type).sig = (yyvsp[-2].func_sig); } -#line 2754 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2779 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 87: -#line 758 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 89: +#line 766 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.vars) = (yyvsp[-1].vars); } -#line 2760 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2785 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 88: -#line 762 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 90: +#line 770 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new_import(parser->allocator); (yyval.import)->module_name = (yyvsp[-3].text); @@ -2768,11 +2793,11 @@ yyreduce: (yyval.import)->decl.flags = WASM_FUNC_DECLARATION_FLAG_HAS_FUNC_TYPE; (yyval.import)->decl.type_var = (yyvsp[-1].var); } -#line 2772 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2797 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 89: -#line 769 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 91: +#line 777 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new_import(parser->allocator); (yyval.import)->name = (yyvsp[-4].text); @@ -2781,11 +2806,11 @@ yyreduce: (yyval.import)->decl.flags = WASM_FUNC_DECLARATION_FLAG_HAS_FUNC_TYPE; (yyval.import)->decl.type_var = (yyvsp[-1].var); } -#line 2785 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2810 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 90: -#line 777 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 92: +#line 785 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new_import(parser->allocator); (yyval.import)->module_name = (yyvsp[-3].text); @@ -2793,11 +2818,11 @@ yyreduce: (yyval.import)->decl.flags = WASM_FUNC_DECLARATION_FLAG_HAS_SIGNATURE; (yyval.import)->decl.sig = (yyvsp[-1].func_sig); } -#line 2797 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2822 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 91: -#line 784 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 93: +#line 792 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new_import(parser->allocator); (yyval.import)->name = (yyvsp[-4].text); @@ -2806,36 +2831,36 @@ yyreduce: (yyval.import)->decl.flags = WASM_FUNC_DECLARATION_FLAG_HAS_SIGNATURE; (yyval.import)->decl.sig = (yyvsp[-1].func_sig); } -#line 2810 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2835 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 92: -#line 795 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 94: +#line 803 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.export_).name = (yyvsp[-2].text); (yyval.export_).var = (yyvsp[-1].var); } -#line 2819 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2844 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 93: -#line 802 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 95: +#line 810 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.export_memory).name = (yyvsp[-2].text); } -#line 2827 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2852 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 94: -#line 808 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 96: +#line 816 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = new_module(parser->allocator); } -#line 2835 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2860 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 95: -#line 811 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 97: +#line 819 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); WasmModuleField* field = wasm_append_module_field(parser->allocator, (yyval.module)); @@ -2872,11 +2897,11 @@ yyreduce: binding->index = (yyval.module)->exports.size - 1; } } -#line 2876 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2901 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 96: -#line 847 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 98: +#line 855 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); WasmModuleField* field = wasm_append_module_field(parser->allocator, (yyval.module)); @@ -2895,11 +2920,11 @@ yyreduce: binding->index = (yyval.module)->imports.size - 1; } } -#line 2899 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2924 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 97: -#line 865 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 99: +#line 873 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); WasmModuleField* field = wasm_append_module_field(parser->allocator, (yyval.module)); @@ -2917,11 +2942,11 @@ yyreduce: binding->index = (yyval.module)->exports.size - 1; } } -#line 2921 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2946 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 98: -#line 882 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 100: +#line 890 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); WasmModuleField* field = wasm_append_module_field(parser->allocator, (yyval.module)); @@ -2930,11 +2955,11 @@ yyreduce: field->export_memory = (yyvsp[0].export_memory); (yyval.module)->export_memory = &field->export_memory; } -#line 2934 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2959 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 99: -#line 890 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 101: +#line 898 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); WasmModuleField* field = wasm_append_module_field(parser->allocator, (yyval.module)); @@ -2943,11 +2968,11 @@ yyreduce: field->table = (yyvsp[0].vars); (yyval.module)->table = &field->table; } -#line 2947 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2972 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 100: -#line 898 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 102: +#line 906 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); WasmModuleField* field = wasm_append_module_field(parser->allocator, (yyval.module)); @@ -2966,11 +2991,11 @@ yyreduce: binding->index = (yyval.module)->func_types.size - 1; } } -#line 2970 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 2995 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 101: -#line 916 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 103: +#line 924 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); WasmModuleField* field = wasm_append_module_field(parser->allocator, (yyval.module)); @@ -2979,11 +3004,11 @@ yyreduce: field->memory = (yyvsp[0].memory); (yyval.module)->memory = &field->memory; } -#line 2983 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3008 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 102: -#line 924 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 104: +#line 932 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); WasmModuleField* field = wasm_append_module_field(parser->allocator, (yyval.module)); @@ -2992,11 +3017,11 @@ yyreduce: field->start = (yyvsp[0].var); (yyval.module)->start = &field->start; } -#line 2996 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3021 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 103: -#line 935 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 105: +#line 943 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.raw_module).type = WASM_RAW_MODULE_TYPE_TEXT; (yyval.raw_module).text = (yyvsp[-1].module); @@ -3014,22 +3039,22 @@ yyreduce: copy_signature_from_func_type(parser->allocator, module, &import->decl); } } -#line 3018 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3043 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 104: -#line 952 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 106: +#line 960 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.raw_module).type = WASM_RAW_MODULE_TYPE_BINARY; (yyval.raw_module).loc = (yylsp[-2]); 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 3029 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3054 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 105: -#line 961 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 107: +#line 969 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { if ((yyvsp[0].raw_module).type == WASM_RAW_MODULE_TYPE_TEXT) { (yyval.module) = (yyvsp[0].raw_module).text; @@ -3049,22 +3074,22 @@ yyreduce: wasm_free(parser->allocator, (yyvsp[0].raw_module).binary.data); } } -#line 3053 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3078 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 106: -#line 985 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 108: +#line 993 "src/wasm-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 3064 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3089 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 107: -#line 991 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 109: +#line 999 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new_command(parser->allocator); (yyval.command)->type = WASM_COMMAND_TYPE_INVOKE; @@ -3072,22 +3097,22 @@ yyreduce: (yyval.command)->invoke.name = (yyvsp[-2].text); (yyval.command)->invoke.args = (yyvsp[-1].consts); } -#line 3076 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3101 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 108: -#line 998 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 110: +#line 1006 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new_command(parser->allocator); (yyval.command)->type = WASM_COMMAND_TYPE_ASSERT_INVALID; (yyval.command)->assert_invalid.module = (yyvsp[-2].raw_module); (yyval.command)->assert_invalid.text = (yyvsp[-1].text); } -#line 3087 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3112 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 109: -#line 1004 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 111: +#line 1012 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new_command(parser->allocator); (yyval.command)->type = WASM_COMMAND_TYPE_ASSERT_RETURN; @@ -3096,11 +3121,11 @@ yyreduce: (yyval.command)->assert_return.invoke.args = (yyvsp[-3].consts); (yyval.command)->assert_return.expected = (yyvsp[-1].const_); } -#line 3100 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3125 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 110: -#line 1012 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 112: +#line 1020 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new_command(parser->allocator); (yyval.command)->type = WASM_COMMAND_TYPE_ASSERT_RETURN_NAN; @@ -3108,11 +3133,11 @@ yyreduce: (yyval.command)->assert_return_nan.invoke.name = (yyvsp[-3].text); (yyval.command)->assert_return_nan.invoke.args = (yyvsp[-2].consts); } -#line 3112 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3137 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 111: -#line 1019 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 113: +#line 1027 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new_command(parser->allocator); (yyval.command)->type = WASM_COMMAND_TYPE_ASSERT_TRAP; @@ -3121,27 +3146,27 @@ yyreduce: (yyval.command)->assert_trap.invoke.args = (yyvsp[-3].consts); (yyval.command)->assert_trap.text = (yyvsp[-1].text); } -#line 3125 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3150 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 112: -#line 1029 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 114: +#line 1037 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.commands)); } -#line 3131 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3156 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 113: -#line 1030 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 115: +#line 1038 "src/wasm-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 3141 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3166 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 114: -#line 1038 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 116: +#line 1046 "src/wasm-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, @@ -3152,41 +3177,41 @@ yyreduce: } wasm_free(parser->allocator, (char*)(yyvsp[-1].literal).text.start); } -#line 3156 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3181 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 115: -#line 1050 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 117: +#line 1058 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.const_).type = WASM_TYPE_VOID; } -#line 3162 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3187 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 117: -#line 1054 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 119: +#line 1062 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { WASM_ZERO_MEMORY((yyval.consts)); } -#line 3168 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3193 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 118: -#line 1055 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 120: +#line 1063 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.consts) = (yyvsp[-1].consts); wasm_append_const_value(parser->allocator, &(yyval.consts), &(yyvsp[0].const_)); } -#line 3177 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3202 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; - case 119: -#line 1062 "src/wasm-ast-parser.y" /* yacc.c:1646 */ + case 121: +#line 1070 "src/wasm-ast-parser.y" /* yacc.c:1646 */ { (yyval.script).commands = (yyvsp[0].commands); parser->script = (yyval.script); } -#line 3186 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3211 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ break; -#line 3190 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ +#line 3215 "src/prebuilt/wasm-ast-parser-gen.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -3421,7 +3446,7 @@ yyreturn: #endif return yyresult; } -#line 1074 "src/wasm-ast-parser.y" /* yacc.c:1906 */ +#line 1082 "src/wasm-ast-parser.y" /* yacc.c:1906 */ static WasmResult parse_const(WasmType type, @@ -3435,7 +3460,8 @@ static WasmResult parse_const(WasmType type, return wasm_parse_int32(s, end, &out->u32, WASM_PARSE_SIGNED_AND_UNSIGNED); case WASM_TYPE_I64: - return wasm_parse_int64(s, end, &out->u64); + return wasm_parse_int64(s, end, &out->u64, + WASM_PARSE_SIGNED_AND_UNSIGNED); case WASM_TYPE_F32: return wasm_parse_float(literal_type, s, end, &out->f32_bits); case WASM_TYPE_F64: diff --git a/src/prebuilt/wasm-ast-parser-gen.h b/src/prebuilt/wasm-ast-parser-gen.h index d353a7e6..45a2a725 100644 --- a/src/prebuilt/wasm-ast-parser-gen.h +++ b/src/prebuilt/wasm-ast-parser-gen.h @@ -56,58 +56,59 @@ extern int wasm_ast_parser_debug; WASM_TOKEN_TYPE_EOF = 0, WASM_TOKEN_TYPE_LPAR = 258, WASM_TOKEN_TYPE_RPAR = 259, - WASM_TOKEN_TYPE_INT = 260, - WASM_TOKEN_TYPE_FLOAT = 261, - WASM_TOKEN_TYPE_TEXT = 262, - WASM_TOKEN_TYPE_VAR = 263, - WASM_TOKEN_TYPE_VALUE_TYPE = 264, - WASM_TOKEN_TYPE_NOP = 265, - WASM_TOKEN_TYPE_BLOCK = 266, - WASM_TOKEN_TYPE_IF = 267, - WASM_TOKEN_TYPE_THEN = 268, - WASM_TOKEN_TYPE_ELSE = 269, - WASM_TOKEN_TYPE_LOOP = 270, - WASM_TOKEN_TYPE_BR = 271, - WASM_TOKEN_TYPE_BR_IF = 272, - WASM_TOKEN_TYPE_BR_TABLE = 273, - WASM_TOKEN_TYPE_CASE = 274, - WASM_TOKEN_TYPE_CALL = 275, - WASM_TOKEN_TYPE_CALL_IMPORT = 276, - WASM_TOKEN_TYPE_CALL_INDIRECT = 277, - WASM_TOKEN_TYPE_RETURN = 278, - WASM_TOKEN_TYPE_GET_LOCAL = 279, - WASM_TOKEN_TYPE_SET_LOCAL = 280, - WASM_TOKEN_TYPE_LOAD = 281, - WASM_TOKEN_TYPE_STORE = 282, - WASM_TOKEN_TYPE_OFFSET = 283, - WASM_TOKEN_TYPE_ALIGN = 284, - WASM_TOKEN_TYPE_CONST = 285, - WASM_TOKEN_TYPE_UNARY = 286, - WASM_TOKEN_TYPE_BINARY = 287, - WASM_TOKEN_TYPE_COMPARE = 288, - WASM_TOKEN_TYPE_CONVERT = 289, - WASM_TOKEN_TYPE_SELECT = 290, - WASM_TOKEN_TYPE_FUNC = 291, - WASM_TOKEN_TYPE_START = 292, - WASM_TOKEN_TYPE_TYPE = 293, - WASM_TOKEN_TYPE_PARAM = 294, - WASM_TOKEN_TYPE_RESULT = 295, - WASM_TOKEN_TYPE_LOCAL = 296, - WASM_TOKEN_TYPE_MODULE = 297, - WASM_TOKEN_TYPE_MEMORY = 298, - WASM_TOKEN_TYPE_SEGMENT = 299, - WASM_TOKEN_TYPE_IMPORT = 300, - WASM_TOKEN_TYPE_EXPORT = 301, - WASM_TOKEN_TYPE_TABLE = 302, - WASM_TOKEN_TYPE_UNREACHABLE = 303, - WASM_TOKEN_TYPE_CURRENT_MEMORY = 304, - WASM_TOKEN_TYPE_GROW_MEMORY = 305, - WASM_TOKEN_TYPE_ASSERT_INVALID = 306, - WASM_TOKEN_TYPE_ASSERT_RETURN = 307, - WASM_TOKEN_TYPE_ASSERT_RETURN_NAN = 308, - WASM_TOKEN_TYPE_ASSERT_TRAP = 309, - WASM_TOKEN_TYPE_INVOKE = 310, - WASM_TOKEN_TYPE_LOW = 311 + WASM_TOKEN_TYPE_NAT = 260, + WASM_TOKEN_TYPE_INT = 261, + WASM_TOKEN_TYPE_FLOAT = 262, + WASM_TOKEN_TYPE_TEXT = 263, + WASM_TOKEN_TYPE_VAR = 264, + WASM_TOKEN_TYPE_VALUE_TYPE = 265, + WASM_TOKEN_TYPE_NOP = 266, + WASM_TOKEN_TYPE_BLOCK = 267, + WASM_TOKEN_TYPE_IF = 268, + WASM_TOKEN_TYPE_THEN = 269, + WASM_TOKEN_TYPE_ELSE = 270, + WASM_TOKEN_TYPE_LOOP = 271, + WASM_TOKEN_TYPE_BR = 272, + WASM_TOKEN_TYPE_BR_IF = 273, + WASM_TOKEN_TYPE_BR_TABLE = 274, + WASM_TOKEN_TYPE_CASE = 275, + WASM_TOKEN_TYPE_CALL = 276, + WASM_TOKEN_TYPE_CALL_IMPORT = 277, + WASM_TOKEN_TYPE_CALL_INDIRECT = 278, + WASM_TOKEN_TYPE_RETURN = 279, + WASM_TOKEN_TYPE_GET_LOCAL = 280, + WASM_TOKEN_TYPE_SET_LOCAL = 281, + WASM_TOKEN_TYPE_LOAD = 282, + WASM_TOKEN_TYPE_STORE = 283, + WASM_TOKEN_TYPE_OFFSET = 284, + WASM_TOKEN_TYPE_ALIGN = 285, + WASM_TOKEN_TYPE_CONST = 286, + WASM_TOKEN_TYPE_UNARY = 287, + WASM_TOKEN_TYPE_BINARY = 288, + WASM_TOKEN_TYPE_COMPARE = 289, + WASM_TOKEN_TYPE_CONVERT = 290, + WASM_TOKEN_TYPE_SELECT = 291, + WASM_TOKEN_TYPE_FUNC = 292, + WASM_TOKEN_TYPE_START = 293, + WASM_TOKEN_TYPE_TYPE = 294, + WASM_TOKEN_TYPE_PARAM = 295, + WASM_TOKEN_TYPE_RESULT = 296, + WASM_TOKEN_TYPE_LOCAL = 297, + WASM_TOKEN_TYPE_MODULE = 298, + WASM_TOKEN_TYPE_MEMORY = 299, + WASM_TOKEN_TYPE_SEGMENT = 300, + WASM_TOKEN_TYPE_IMPORT = 301, + WASM_TOKEN_TYPE_EXPORT = 302, + WASM_TOKEN_TYPE_TABLE = 303, + WASM_TOKEN_TYPE_UNREACHABLE = 304, + WASM_TOKEN_TYPE_CURRENT_MEMORY = 305, + WASM_TOKEN_TYPE_GROW_MEMORY = 306, + WASM_TOKEN_TYPE_ASSERT_INVALID = 307, + WASM_TOKEN_TYPE_ASSERT_RETURN = 308, + WASM_TOKEN_TYPE_ASSERT_RETURN_NAN = 309, + WASM_TOKEN_TYPE_ASSERT_TRAP = 310, + WASM_TOKEN_TYPE_INVOKE = 311, + WASM_TOKEN_TYPE_LOW = 312 }; #endif diff --git a/src/wasm-ast-lexer.c b/src/wasm-ast-lexer.c index af42ed44..508a05fc 100644 --- a/src/wasm-ast-lexer.c +++ b/src/wasm-ast-lexer.c @@ -201,15 +201,16 @@ int wasm_ast_lexer_lex(WASM_AST_PARSER_STYPE* lval, tick = "`"; escape = [nt\\'"]; character = [^"\\\x00-\x1f\x7f] | "\\" escape | "\\" hexdigit hexdigit; - sign = [+-]?; - num = sign digit+; - hexnum = sign "0x" hexdigit+; - int = num | hexnum; - float0 = num "." digit*; - float1 = num ("." digit*)? [eE] num; - hexfloat = sign "0x" hexdigit+ "."? hexdigit* "p" sign digit+; - infinity = sign "infinity"; - nan = sign "nan" | sign "nan:0x" hexdigit+; + sign = [+-]; + num = digit+; + hexnum = "0x" hexdigit+; + nat = num | hexnum; + int = sign nat; + float0 = sign? num "." digit*; + float1 = sign? num ("." digit*)? [eE] sign? num; + hexfloat = sign? "0x" hexdigit+ "."? hexdigit* "p" sign? digit+; + infinity = sign? ("inf" | "infinity"); + nan = sign? "nan" | sign? "nan:0x" hexdigit+; float = float0 | float1; text = '"' character* '"'; atom = (letter | digit | "_" | tick | symbol)+; @@ -218,6 +219,7 @@ int wasm_ast_lexer_lex(WASM_AST_PARSER_STYPE* lval, <i> "(" { RETURN(LPAR); } <i> ")" { RETURN(RPAR); } + <i> nat { LITERAL(INT); RETURN(NAT); } <i> int { LITERAL(INT); RETURN(INT); } <i> float { LITERAL(FLOAT); RETURN(FLOAT); } <i> hexfloat { LITERAL(HEXFLOAT); RETURN(FLOAT); } diff --git a/src/wasm-ast-parser.y b/src/wasm-ast-parser.y index af3c0c7c..8c44ca95 100644 --- a/src/wasm-ast-parser.y +++ b/src/wasm-ast-parser.y @@ -108,7 +108,7 @@ static void on_read_binary_error(uint32_t offset, const char* error, %token LPAR "(" %token RPAR ")" -%token INT FLOAT TEXT VAR VALUE_TYPE +%token NAT INT FLOAT TEXT VAR VALUE_TYPE %token NOP BLOCK IF THEN ELSE LOOP BR BR_IF BR_TABLE CASE %token CALL CALL_IMPORT CALL_INDIRECT RETURN %token GET_LOCAL SET_LOCAL LOAD STORE OFFSET ALIGN @@ -123,7 +123,7 @@ static void on_read_binary_error(uint32_t offset, const char* error, %type<text> ALIGN OFFSET TEXT VAR %type<type> SELECT %type<type> CONST VALUE_TYPE -%type<literal> INT FLOAT +%type<literal> NAT INT FLOAT %type<command> cmd %type<commands> cmd_list @@ -134,7 +134,7 @@ static void on_read_binary_error(uint32_t offset, const char* error, %type<exported_func> func %type<expr> expr expr1 expr_opt %type<expr_list> expr_list non_empty_expr_list -%type<func_fields> func_fields +%type<func_fields> func_fields func_body %type<func> func_info %type<func_sig> func_type %type<func_type> type_def @@ -162,7 +162,7 @@ static void on_read_binary_error(uint32_t offset, const char* error, %destructor { wasm_destroy_var_vector_and_elements(parser->allocator, &$$); } table var_list %destructor { wasm_destroy_expr(parser->allocator, $$); } expr expr1 expr_opt %destructor { wasm_destroy_expr_list(parser->allocator, $$.first); } expr_list non_empty_expr_list -%destructor { wasm_destroy_func_fields(parser->allocator, $$); } func_fields +%destructor { wasm_destroy_func_fields(parser->allocator, $$); } func_fields func_body %destructor { wasm_destroy_func(parser->allocator, $$); wasm_free(parser->allocator, $$); } func_info %destructor { wasm_destroy_segment(parser->allocator, &$$); } segment segment_contents %destructor { wasm_destroy_segment_vector_and_elements(parser->allocator, &$$); } segment_list @@ -233,6 +233,10 @@ literal : $$.type = $1.type; DUPTEXT($$.text, $1.text); } + | NAT { + $$.type = $1.type; + DUPTEXT($$.text, $1.text); + } | FLOAT { $$.type = $1.type; DUPTEXT($$.text, $1.text); @@ -240,11 +244,11 @@ literal : ; var : - INT { + NAT { $$.loc = @1; $$.type = WASM_VAR_TYPE_INDEX; - uint32_t index; - if (WASM_FAILED(wasm_parse_int32($1.text.start, + uint64_t index; + if (WASM_FAILED(wasm_parse_int64($1.text.start, $1.text.start + $1.text.length, &index, WASM_PARSE_UNSIGNED_ONLY))) { wasm_ast_parser_error(&@1, lexer, parser, "invalid int " PRIstringslice, @@ -300,10 +304,11 @@ labeling : offset : /* empty */ { $$ = 0; } | OFFSET { - if (WASM_FAILED(wasm_parse_int64($1.start, $1.start + $1.length, &$$))) { - wasm_ast_parser_error(&@1, lexer, parser, - "invalid offset \"" PRIstringslice "\"", - WASM_PRINTF_STRING_SLICE_ARG($1)); + if (WASM_FAILED(wasm_parse_int64($1.start, $1.start + $1.length, &$$, + WASM_PARSE_SIGNED_AND_UNSIGNED))) { + wasm_ast_parser_error(&@1, lexer, parser, + "invalid offset \"" PRIstringslice "\"", + WASM_PRINTF_STRING_SLICE_ARG($1)); } } ; @@ -520,11 +525,12 @@ expr_list : /* Functions */ func_fields : - expr_list { + func_body + | LPAR RESULT VALUE_TYPE RPAR func_body { $$ = new_func_field(parser->allocator); - $$->type = WASM_FUNC_FIELD_TYPE_EXPRS; - $$->first_expr = $1.first; - $$->next = NULL; + $$->type = WASM_FUNC_FIELD_TYPE_RESULT_TYPE; + $$->result_type = $3; + $$->next = $5; } | LPAR PARAM value_type_list RPAR func_fields { $$ = new_func_field(parser->allocator); @@ -540,19 +546,21 @@ func_fields : $$->bound_type.type = $4; $$->next = $6; } - | LPAR RESULT VALUE_TYPE RPAR func_fields { +; +func_body : + expr_list { $$ = new_func_field(parser->allocator); - $$->type = WASM_FUNC_FIELD_TYPE_RESULT_TYPE; - $$->result_type = $3; - $$->next = $5; + $$->type = WASM_FUNC_FIELD_TYPE_EXPRS; + $$->first_expr = $1.first; + $$->next = NULL; } - | LPAR LOCAL value_type_list RPAR func_fields { + | LPAR LOCAL value_type_list RPAR func_body { $$ = new_func_field(parser->allocator); $$->type = WASM_FUNC_FIELD_TYPE_LOCAL_TYPES; $$->types = $3; $$->next = $5; } - | LPAR LOCAL bind_var VALUE_TYPE RPAR func_fields { + | LPAR LOCAL bind_var VALUE_TYPE RPAR func_body { $$ = new_func_field(parser->allocator); $$->type = WASM_FUNC_FIELD_TYPE_BOUND_LOCAL; $$->bound_type.loc = @2; @@ -677,7 +685,7 @@ start : ; segment_address : - INT { + NAT { if (WASM_FAILED(wasm_parse_int32($1.text.start, $1.text.start + $1.text.length, &$$, WASM_PARSE_UNSIGNED_ONLY))) { @@ -706,7 +714,7 @@ segment_list : ; initial_pages : - INT { + NAT { if (WASM_FAILED(wasm_parse_uint64($1.text.start, $1.text.start + $1.text.length, &$$))) { wasm_ast_parser_error(&@1, lexer, parser, @@ -718,7 +726,7 @@ initial_pages : ; max_pages : - INT { + NAT { if (WASM_FAILED(wasm_parse_uint64($1.text.start, $1.text.start + $1.text.length, &$$))) { wasm_ast_parser_error(&@1, lexer, parser, @@ -1084,7 +1092,8 @@ static WasmResult parse_const(WasmType type, return wasm_parse_int32(s, end, &out->u32, WASM_PARSE_SIGNED_AND_UNSIGNED); case WASM_TYPE_I64: - return wasm_parse_int64(s, end, &out->u64); + return wasm_parse_int64(s, end, &out->u64, + WASM_PARSE_SIGNED_AND_UNSIGNED); case WASM_TYPE_F32: return wasm_parse_float(literal_type, s, end, &out->f32_bits); case WASM_TYPE_F64: diff --git a/src/wasm-ast-writer.c b/src/wasm-ast-writer.c index 74c72348..79409e5b 100644 --- a/src/wasm-ast-writer.c +++ b/src/wasm-ast-writer.c @@ -228,7 +228,7 @@ static void write_quoted_string_slice(Context* ctx, static void write_var(Context* ctx, const WasmVar* var, NextChar next_char) { if (var->type == WASM_VAR_TYPE_INDEX) { - writef(ctx, "%d", var->index); + writef(ctx, "%" PRId64, var->index); ctx->next_char = next_char; } else { write_string_slice(ctx, &var->name, next_char); @@ -237,7 +237,8 @@ static void write_var(Context* ctx, const WasmVar* var, NextChar next_char) { static void write_br_var(Context* ctx, const WasmVar* var, NextChar next_char) { if (var->type == WASM_VAR_TYPE_INDEX) { - writef(ctx, "%d (;@%d;)", var->index, ctx->depth - var->index - 1); + writef(ctx, "%" PRId64 " (;@%" PRId64 ";)", var->index, + ctx->depth - var->index - 1); ctx->next_char = next_char; } else { write_string_slice(ctx, &var->name, next_char); diff --git a/src/wasm-ast.h b/src/wasm-ast.h index a8d1b644..3939ec92 100644 --- a/src/wasm-ast.h +++ b/src/wasm-ast.h @@ -34,7 +34,7 @@ typedef struct WasmVar { WasmLocation loc; WasmVarType type; union { - int index; + int64_t index; WasmStringSlice name; }; } WasmVar; diff --git a/src/wasm-binary-reader-interpreter.c b/src/wasm-binary-reader-interpreter.c index baea1178..db710055 100644 --- a/src/wasm-binary-reader-interpreter.c +++ b/src/wasm-binary-reader-interpreter.c @@ -908,7 +908,7 @@ static WasmResult on_return_expr(uint8_t arity, void* user_data) { WasmType value = pop_expr_if(ctx, arity == 1); CHECK_RESULT(check_type(ctx, sig->result_type, value, "return")); } - push_expr(ctx, sig->result_type, WASM_OPCODE_RETURN); + push_expr(ctx, WASM_TYPE_ANY, WASM_OPCODE_RETURN); return WASM_OK; } @@ -991,6 +991,14 @@ static void adjust_value_stack(Context* ctx, int32_t amount) { #endif } +static void adjust_value_stack_for_nonlocal_continuation(Context* ctx) { + /* adjust stack up; these operations type-check as ANY, so they can be used in + * any operation. No value will actually be pushed, and the expressions that + * use the result won't ever be executed. But it will make the stack the + * "normal" size, so we won't have to special case it anywhere else. */ + adjust_value_stack(ctx, is_expr_discarded(ctx, ctx->expr_count) ? 0 : 1); +} + static EmitLabel* get_emit_label(Context* ctx, uint32_t depth) { assert(depth < ctx->emit_label_stack.size); return &ctx->emit_label_stack.data[depth]; @@ -1325,7 +1333,7 @@ static WasmResult on_emit_br_expr(uint8_t arity, LOGF("%3" PRIzd ": %s\n", ctx->value_stack_size, s_opcode_name[WASM_OPCODE_BR]); CHECK_RESULT(emit_br(ctx, translate_emit_depth(ctx, depth))); - /* non-local continuation, so it's not necessary to adjust the value stack */ + adjust_value_stack_for_nonlocal_continuation(ctx); ctx->expr_count++; return WASM_OK; } @@ -1375,6 +1383,7 @@ static WasmResult on_emit_br_table_expr(uint8_t arity, CHECK_RESULT(emit_br_table_offset(ctx, translate_emit_depth(ctx, depth))); } + adjust_value_stack_for_nonlocal_continuation(ctx); ctx->expr_count++; return WASM_OK; } @@ -1569,8 +1578,7 @@ static WasmResult on_emit_return_expr(uint8_t arity, void* user_data) { WasmInterpreterFuncSignature* sig = get_func_signature(ctx, ctx->current_func); CHECK_RESULT(emit_return(ctx, sig->result_type)); - /* non-local continuation, so it's not necessary to adjust the value stack */ - CHECK_RESULT(maybe_emit_discard(ctx, ctx->expr_count)); + adjust_value_stack_for_nonlocal_continuation(ctx); ctx->expr_count++; return WASM_OK; } @@ -1591,11 +1599,7 @@ static WasmResult on_emit_unreachable_expr(void* user_data) { LOGF("%3" PRIzd ": %s\n", ctx->value_stack_size, s_opcode_name[WASM_OPCODE_UNREACHABLE]); CHECK_RESULT(emit_opcode(ctx, WASM_OPCODE_UNREACHABLE)); - /* adjust stack up; unreachable type-checks as ANY, so it can be used in any - * operation. No value will actually be pushed, and the expressions that use - * the result won't ever be executed. But it will make the stack the "normal" - * size, so we won't have to special case it anywhere else. */ - adjust_value_stack(ctx, is_expr_discarded(ctx, ctx->expr_count) ? 0 : 1); + adjust_value_stack_for_nonlocal_continuation(ctx); ctx->expr_count++; return WASM_OK; } diff --git a/src/wasm-literal.c b/src/wasm-literal.c index 5a853d36..f067c92c 100644 --- a/src/wasm-literal.c +++ b/src/wasm-literal.c @@ -115,10 +115,16 @@ WasmResult wasm_parse_uint64(const char* s, const char* end, uint64_t* out) { return WASM_OK; } -WasmResult wasm_parse_int64(const char* s, const char* end, uint64_t* out) { +WasmResult wasm_parse_int64(const char* s, + const char* end, + uint64_t* out, + WasmParseIntType parse_type) { WasmBool has_sign = WASM_FALSE; - if (*s == '-') { - has_sign = WASM_TRUE; + if (*s == '-' || *s == '+') { + if (parse_type == WASM_PARSE_UNSIGNED_ONLY) + return WASM_ERROR; + if (*s == '-') + has_sign = WASM_TRUE; s++; } uint64_t value = 0; @@ -138,10 +144,11 @@ WasmResult wasm_parse_int32(const char* s, WasmParseIntType parse_type) { uint64_t value; WasmBool has_sign = WASM_FALSE; - if (*s == '-') { + if (*s == '-' || *s == '+') { if (parse_type == WASM_PARSE_UNSIGNED_ONLY) return WASM_ERROR; - has_sign = WASM_TRUE; + if (*s == '-') + has_sign = WASM_TRUE; s++; } if (WASM_FAILED(wasm_parse_uint64(s, end, &value))) diff --git a/src/wasm-literal.h b/src/wasm-literal.h index 07e70a78..9b04f03a 100644 --- a/src/wasm-literal.h +++ b/src/wasm-literal.h @@ -39,7 +39,10 @@ WasmResult wasm_parse_int32(const char* s, const char* end, uint32_t* out, WasmParseIntType parse_type); -WasmResult wasm_parse_int64(const char* s, const char* end, uint64_t* out); +WasmResult wasm_parse_int64(const char* s, + const char* end, + uint64_t* out, + WasmParseIntType parse_type); WasmResult wasm_parse_uint64(const char* s, const char* end, uint64_t* out); WasmResult wasm_parse_float(WasmLiteralType literal_type, const char* s, diff --git a/test/interp/spec/block.txt b/test/interp/spec/block.txt index 27ae6a68..791b1818 100644 --- a/test/interp/spec/block.txt +++ b/test/interp/spec/block.txt @@ -2,36 +2,80 @@ ;;; STDIN_FILE: third_party/testsuite/block.wast (;; STDOUT ;;; assert_invalid error: - third_party/testsuite/block.wast:134:30: type mismatch of block. got void, expected i32 - (module (func (result i32) (block))) - ^ + third_party/testsuite/block.wast:153:46: type mismatch of block. got void, expected i32 + (module (func $type-empty-i32 (result i32) (block))) + ^ assert_invalid error: - third_party/testsuite/block.wast:138:37: type mismatch in nop. got void, expected i32 - (module (func (result i32) (block (nop)))) - ^ + third_party/testsuite/block.wast:157:46: type mismatch of block. got void, expected i64 + (module (func $type-empty-i64 (result i64) (block))) + ^ assert_invalid error: - third_party/testsuite/block.wast:142:37: type mismatch of block. got f32, expected i32 - (module (func (result i32) (block (f32.const 0)))) - ^ + third_party/testsuite/block.wast:161:46: type mismatch of block. got void, expected f32 + (module (func $type-empty-f32 (result f32) (block))) + ^ assert_invalid error: - third_party/testsuite/block.wast:146:37: type mismatch of br value. got void, expected i32 - (module (func (result i32) (block (br 0) (i32.const 1)))) - ^ + third_party/testsuite/block.wast:165:46: type mismatch of block. got void, expected f64 + (module (func $type-empty-f64 (result f64) (block))) + ^ +assert_invalid error: + third_party/testsuite/block.wast:171:12: type mismatch in nop. got void, expected i32 + (block (nop)) + ^ +assert_invalid error: + third_party/testsuite/block.wast:177:12: type mismatch of block. got f32, expected i32 + (block (f32.const 0)) + ^ +assert_invalid error: + third_party/testsuite/block.wast:183:33: type mismatch in nop. got void, expected i32 + (block (br 0 (i32.const 1)) (nop)) + ^ +assert_invalid error: + third_party/testsuite/block.wast:189:33: type mismatch of block. got f32, expected i32 + (block (br 0 (i32.const 1)) (f32.const 0)) + ^ +assert_invalid error: + third_party/testsuite/block.wast:196:12: type mismatch of br value. got void, expected i32 + (block (br 0)) + ^ assert_invalid error: - third_party/testsuite/block.wast:150:58: type mismatch in nop. got void, expected i32 - (module (func (result i32) (block (br 0 (i32.const 1)) (nop)))) - ^ + third_party/testsuite/block.wast:202:12: type mismatch of br value. got void, expected i32 + (block (br 0) (i32.const 1)) + ^ assert_invalid error: - third_party/testsuite/block.wast:154:43: type mismatch of br value. got i64, expected i32 - (module (func (result i32) (block (br 0 (i64.const 1)) (i32.const 1)))) - ^ + third_party/testsuite/block.wast:208:18: type mismatch of br value. got i64, expected i32 + (block (br 0 (i64.const 1)) (i32.const 1)) + ^ assert_invalid error: - third_party/testsuite/block.wast:158:43: type mismatch of br value. got i64, expected i32 - (module (func (result i32) (block (br 0 (i64.const 1)) (br 0 (i32.const 1))))) - ^ + third_party/testsuite/block.wast:214:18: type mismatch of br value. got i64, expected i32 + (block (br 0 (i64.const 1)) (br 0 (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/block.wast:220:39: type mismatch of br value. got f64, expected i32 + (block (br 0 (i32.const 1)) (br 0 (f64.const 1))) + ^ +assert_invalid error: + third_party/testsuite/block.wast:227:19: type mismatch of br value. got void, expected i32 + (block (block (br 1)) (br 0 (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/block.wast:233:25: type mismatch of br value. got i64, expected i32 + (block (block (br 1 (i64.const 1))) (br 0 (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/block.wast:239:21: type mismatch of br value. got void, expected i32 + (i32.ctz (block (br 0))) + ^ +assert_invalid error: + third_party/testsuite/block.wast:245:5: type mismatch of function result. got i64, expected i32 + (i64.ctz (block (br 0 (i64.const 9)))) + ^ +assert_invalid error: + third_party/testsuite/block.wast:250:37: type mismatch of br value. got void, expected i32 + (module (func (result i32) (block (br 0)))) + ^ assert_invalid error: - third_party/testsuite/block.wast:162:50: type mismatch of br value. got i64, expected i32 -...func (result i32) (block (block (br 1 (i64.const 1))) (br 0 (i32.const 1))))) - ^ + third_party/testsuite/block.wast:254:46: type mismatch of br value. got void, expected i32 + (module (func (result i32) (i32.ctz (block (br 0))))) + ^ 19/19 tests passed. ;;; STDOUT ;;) diff --git a/test/interp/spec/br.txt b/test/interp/spec/br.txt new file mode 100644 index 00000000..b1147031 --- /dev/null +++ b/test/interp/spec/br.txt @@ -0,0 +1,25 @@ +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/br.wast +(;; STDOUT ;;; +assert_invalid error: + third_party/testsuite/br.wast:342:12: type mismatch of br value. got void, expected i32 + (block (br 0) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br.wast:348:18: type mismatch of br value. got i64, expected i32 + (block (br 0 (i64.const 1)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br.wast:354:36: label variable out of range (max 0) + (module (func $unbound-label (br 1))) + ^ +assert_invalid error: + third_party/testsuite/br.wast:358:57: label variable out of range (max 2) + (module (func $unbound-nested-label (block (block (br 5))))) + ^ +assert_invalid error: + third_party/testsuite/br.wast:362:34: label variable out of range (max 0) + (module (func $large-label (br 0x100000001))) + ^^^^^^^^^^^ +64/64 tests passed. +;;; STDOUT ;;) diff --git a/test/interp/spec/br_if.txt b/test/interp/spec/br_if.txt new file mode 100644 index 00000000..70aad2c3 --- /dev/null +++ b/test/interp/spec/br_if.txt @@ -0,0 +1,93 @@ +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/br_if.wast +(;; STDOUT ;;; +assert_invalid error: + third_party/testsuite/br_if.wast:196:49: type mismatch of unary op. got void, expected i32 + (module (func $type-false-i32 (block (i32.ctz (br_if 0 (i32.const 0)))))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:200:49: type mismatch of unary op. got void, expected i64 + (module (func $type-false-i64 (block (i64.ctz (br_if 0 (i32.const 0)))))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:204:49: type mismatch of unary op. got void, expected f32 + (module (func $type-false-f32 (block (f32.neg (br_if 0 (i32.const 0)))))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:208:49: type mismatch of unary op. got void, expected f64 + (module (func $type-false-f64 (block (f64.neg (br_if 0 (i32.const 0)))))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:213:48: type mismatch of unary op. got void, expected i32 + (module (func $type-true-i32 (block (i32.ctz (br_if 0 (i32.const 1)))))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:217:48: type mismatch of unary op. got void, expected i64 + (module (func $type-true-i64 (block (i64.ctz (br_if 0 (i64.const 1)))))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:217:57: type mismatch of br_if condition. got i64, expected i32 + (module (func $type-true-i64 (block (i64.ctz (br_if 0 (i64.const 1)))))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:221:48: type mismatch of unary op. got void, expected f32 + (module (func $type-true-f32 (block (f32.neg (br_if 0 (f32.const 1)))))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:221:57: type mismatch of br_if condition. got f32, expected i32 + (module (func $type-true-f32 (block (f32.neg (br_if 0 (f32.const 1)))))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:225:48: type mismatch of unary op. got void, expected f64 + (module (func $type-true-f64 (block (f64.neg (br_if 0 (i64.const 1)))))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:225:57: type mismatch of br_if condition. got i64, expected i32 + (module (func $type-true-f64 (block (f64.neg (br_if 0 (i64.const 1)))))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:231:12: type mismatch of br_if value. got void, expected i32 + (block (br_if 0 (i32.const 0)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:237:12: type mismatch of br_if value. got void, expected i32 + (block (br_if 0 (i32.const 1)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:243:21: type mismatch of br_if value. got i64, expected i32 + (block (br_if 0 (i64.const 1) (i32.const 0)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:249:21: type mismatch of br_if value. got i64, expected i32 + (block (br_if 0 (i64.const 1) (i32.const 0)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:256:21: type mismatch in nop. got void, expected i32 + (block (br_if 0 (nop))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:262:21: type mismatch of br_if condition. got i64, expected i32 + (block (br_if 0 (i64.const 0))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:268:35: type mismatch in nop. got void, expected i32 + (block (br_if 0 (i32.const 0) (nop)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:274:35: type mismatch of br_if condition. got i64, expected i32 + (block (br_if 0 (i32.const 0) (i64.const 0)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:280:39: label variable out of range (max 0) + (module (func $unbound-label (br_if 1 (i32.const 1)))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:284:60: label variable out of range (max 2) + (module (func $unbound-nested-label (block (block (br_if 5 (i32.const 1)))))) + ^ +assert_invalid error: + third_party/testsuite/br_if.wast:288:37: label variable out of range (max 0) + (module (func $large-label (br_if 0x100000001 (i32.const 1)))) + ^^^^^^^^^^^ +50/50 tests passed. +;;; STDOUT ;;) diff --git a/test/interp/spec/br_table.txt b/test/interp/spec/br_table.txt new file mode 100644 index 00000000..bbb64041 --- /dev/null +++ b/test/interp/spec/br_table.txt @@ -0,0 +1,69 @@ +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/br_table.wast +(;; STDOUT ;;; +assert_invalid error: + third_party/testsuite/br_table.wast:1261:12: type mismatch of br_table default target. got void, expected i32 + (block (br_table 0 (i32.const 1)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1267:28: type mismatch of br_table target. got i64, expected i32 + (block (br_table 0 0 0 (i64.const 1) (i32.const 1)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1267:28: type mismatch of br_table target. got i64, expected i32 + (block (br_table 0 0 0 (i64.const 1) (i32.const 1)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1267:28: type mismatch of br_table default target. got i64, expected i32 + (block (br_table 0 0 0 (i64.const 1) (i32.const 1)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1274:28: type mismatch in nop. got void, expected i32 + (block (br_table 0 0 0 (nop))) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1280:24: type mismatch of key. got i64, expected i32 + (block (br_table 0 (i64.const 0))) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1286:40: type mismatch in nop. got void, expected i32 + (block (br_table 0 0 (i32.const 0) (nop)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1292:40: type mismatch of key. got i64, expected i32 + (block (br_table 0 0 (i32.const 0) (i64.const 0)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1299:22: label variable out of range (max 1) + (block (br_table 2 1 (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1299:24: label variable out of range (max 1) + (block (br_table 2 1 (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1305:31: label variable out of range (max 2) + (block (block (br_table 0 5 (i32.const 1)))) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1311:24: label variable out of range (max 1) + (block (br_table 0 0x100000001 0 (i32.const 1))) + ^^^^^^^^^^^ +assert_invalid error: + third_party/testsuite/br_table.wast:1318:22: label variable out of range (max 1) + (block (br_table 1 2 (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1318:24: label variable out of range (max 1) + (block (br_table 1 2 (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1324:31: label variable out of range (max 2) + (block (block (br_table 0 5 (i32.const 1)))) + ^ +assert_invalid error: + third_party/testsuite/br_table.wast:1330:26: label variable out of range (max 1) + (block (br_table 0 0 0x100000001 (i32.const 1))) + ^^^^^^^^^^^ +146/146 tests passed. +;;; STDOUT ;;) diff --git a/test/interp/spec/call.txt b/test/interp/spec/call.txt new file mode 100644 index 00000000..4002e211 --- /dev/null +++ b/test/interp/spec/call.txt @@ -0,0 +1,73 @@ +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/call.wast +(;; STDOUT ;;; +assert_invalid error: + third_party/testsuite/call.wast:152:38: type mismatch of call result. got void, expected i32 + (func $type-void-vs-num (i32.eqz (call 1))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:159:37: type mismatch of call result. got i64, expected i32 + (func $type-num-vs-num (i32.eqz (call 1))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:167:25: too few parameters to function in call. got 0, expected 1 + (func $arity-0-vs-1 (call 1)) + ^ +assert_invalid error: + third_party/testsuite/call.wast:174:25: too few parameters to function in call. got 0, expected 2 + (func $arity-0-vs-2 (call 1)) + ^ +assert_invalid error: + third_party/testsuite/call.wast:181:25: too many parameters to function in call. got 1, expected 0 + (func $arity-1-vs-0 (call 1 (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:188:25: too many parameters to function in call. got 2, expected 0 + (func $arity-2-vs-0 (call 1 (f64.const 2) (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:196:28: too many parameters to function in call. got 3, expected 2 + (func $arity-nop-first (call 1 (nop) (i32.const 1) (i32.const 2))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:203:26: too many parameters to function in call. got 3, expected 2 + (func $arity-nop-mid (call 1 (i32.const 1) (nop) (i32.const 2))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:210:27: too many parameters to function in call. got 3, expected 2 + (func $arity-nop-last (call 1 (i32.const 1) (i32.const 2) (nop))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:218:43: type mismatch in nop. got void, expected i32 + (func $type-first-void-vs-num (call 1 (nop) (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:225:58: type mismatch in nop. got void, expected i32 + (func $type-second-void-vs-num (call 1 (i32.const 1) (nop))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:232:42: type mismatch of argument 0 of call. got f64, expected i32 + (func $type-first-num-vs-num (call 1 (f64.const 1) (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:232:56: type mismatch of argument 1 of call. got i32, expected f64 + (func $type-first-num-vs-num (call 1 (f64.const 1) (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:239:43: type mismatch of argument 0 of call. got i32, expected f64 + (func $type-second-num-vs-num (call 1 (i32.const 1) (f64.const 1))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:239:57: type mismatch of argument 1 of call. got f64, expected i32 + (func $type-second-num-vs-num (call 1 (i32.const 1) (f64.const 1))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:249:37: function variable out of range (max 1) + (module (func $unbound-func (call 1))) + ^ +assert_invalid error: + third_party/testsuite/call.wast:253:35: function variable out of range (max 1) + (module (func $large-func (call 10001232130000))) + ^^^^^^^^^^^^^^ +35/35 tests passed. +;;; STDOUT ;;) diff --git a/test/interp/spec/call_indirect.txt b/test/interp/spec/call_indirect.txt new file mode 100644 index 00000000..0066086c --- /dev/null +++ b/test/interp/spec/call_indirect.txt @@ -0,0 +1,81 @@ +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/call_indirect.wast +(;; STDOUT ;;; +assert_invalid error: + third_party/testsuite/call_indirect.wast:201:38: type mismatch of call_indirect result. got void, expected i32 + (func $type-void-vs-num (i32.eqz (call_indirect 0 (i32.const 0)))) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:208:37: type mismatch of call_indirect result. got i64, expected i32 + (func $type-num-vs-num (i32.eqz (call_indirect 0 (i32.const 0)))) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:216:25: too few parameters to function in call_indirect. got 0, expected 1 + (func $arity-0-vs-1 (call_indirect 0 (i32.const 0))) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:223:25: too few parameters to function in call_indirect. got 0, expected 2 + (func $arity-0-vs-2 (call_indirect 0 (i32.const 0))) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:230:25: too many parameters to function in call_indirect. got 1, expected 0 + (func $arity-1-vs-0 (call_indirect 0 (i32.const 0) (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:238:7: too many parameters to function in call_indirect. got 2, expected 0 + (call_indirect 0 (i32.const 0) (f64.const 2) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:248:7: too many parameters to function in call_indirect. got 3, expected 2 + (call_indirect 0 (i32.const 0) (nop) (i32.const 1) (i32.const 2)) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:257:7: too many parameters to function in call_indirect. got 3, expected 2 + (call_indirect 0 (i32.const 0) (i32.const 1) (nop) (i32.const 2)) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:266:7: too many parameters to function in call_indirect. got 3, expected 2 + (call_indirect 0 (i32.const 0) (i32.const 1) (i32.const 2) (nop)) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:275:51: type mismatch in nop. got void, expected i32 + (func $type-func-void-vs-i32 (call_indirect 0 (nop) (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:282:50: type mismatch of function index. got i64, expected i32 + (func $type-func-num-vs-i32 (call_indirect 0 (i64.const 1) (i32.const 0))) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:291:38: type mismatch in nop. got void, expected i32 + (call_indirect 0 (i32.const 0) (nop) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:300:52: type mismatch in nop. got void, expected i32 + (call_indirect 0 (i32.const 0) (i32.const 1) (nop)) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:309:38: type mismatch of argument 0 of call_indirect. got f64, expected i32 + (call_indirect 0 (i32.const 0) (f64.const 1) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:309:52: type mismatch of argument 1 of call_indirect. got i32, expected f64 + (call_indirect 0 (i32.const 0) (f64.const 1) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:318:38: type mismatch of argument 0 of call_indirect. got i32, expected f64 + (call_indirect 0 (i32.const 0) (i32.const 1) (f64.const 1)) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:318:52: type mismatch of argument 1 of call_indirect. got f64, expected i32 + (call_indirect 0 (i32.const 0) (i32.const 1) (f64.const 1)) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:328:46: function type variable out of range (max 0) + (module (func $unbound-type (call_indirect 1 (i32.const 0)))) + ^ +assert_invalid error: + third_party/testsuite/call_indirect.wast:332:44: function type variable out of range (max 0) + (module (func $large-type (call_indirect 10001232130000 (i32.const 0)))) + ^^^^^^^^^^^^^^ +41/41 tests passed. +;;; STDOUT ;;) diff --git a/test/interp/spec/func-local-after-body.fail.txt b/test/interp/spec/func-local-after-body.fail.txt new file mode 100644 index 00000000..aa2b867f --- /dev/null +++ b/test/interp/spec/func-local-after-body.fail.txt @@ -0,0 +1,10 @@ +;;; ERROR: 1 +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/func-local-after-body.fail.wast +(;; STDERR ;;; +Error running "sexpr-wasm": +third_party/testsuite/func-local-after-body.fail.wast:1:22: syntax error, unexpected LOCAL +(module (func (nop) (local i32))) + ^^^^^ + +;;; STDERR ;;) diff --git a/test/interp/spec/func-local-before-param.fail.txt b/test/interp/spec/func-local-before-param.fail.txt new file mode 100644 index 00000000..a73a9de7 --- /dev/null +++ b/test/interp/spec/func-local-before-param.fail.txt @@ -0,0 +1,10 @@ +;;; ERROR: 1 +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/func-local-before-param.fail.wast +(;; STDERR ;;; +Error running "sexpr-wasm": +third_party/testsuite/func-local-before-param.fail.wast:1:28: syntax error, unexpected PARAM +(module (func (local i32) (param i32))) + ^^^^^ + +;;; STDERR ;;) diff --git a/test/interp/spec/func-local-before-result.fail.txt b/test/interp/spec/func-local-before-result.fail.txt new file mode 100644 index 00000000..308c9927 --- /dev/null +++ b/test/interp/spec/func-local-before-result.fail.txt @@ -0,0 +1,10 @@ +;;; ERROR: 1 +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/func-local-before-result.fail.wast +(;; STDERR ;;; +Error running "sexpr-wasm": +third_party/testsuite/func-local-before-result.fail.wast:1:28: syntax error, unexpected RESULT +(module (func (local i32) (result i32) (get_local 0))) + ^^^^^^ + +;;; STDERR ;;) diff --git a/test/interp/spec/func-param-after-body.fail.txt b/test/interp/spec/func-param-after-body.fail.txt new file mode 100644 index 00000000..c9c98bf2 --- /dev/null +++ b/test/interp/spec/func-param-after-body.fail.txt @@ -0,0 +1,10 @@ +;;; ERROR: 1 +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/func-param-after-body.fail.wast +(;; STDERR ;;; +Error running "sexpr-wasm": +third_party/testsuite/func-param-after-body.fail.wast:1:22: syntax error, unexpected PARAM +(module (func (nop) (param i32))) + ^^^^^ + +;;; STDERR ;;) diff --git a/test/interp/spec/func-result-after-body.fail.txt b/test/interp/spec/func-result-after-body.fail.txt new file mode 100644 index 00000000..d3af782f --- /dev/null +++ b/test/interp/spec/func-result-after-body.fail.txt @@ -0,0 +1,10 @@ +;;; ERROR: 1 +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/func-result-after-body.fail.wast +(;; STDERR ;;; +Error running "sexpr-wasm": +third_party/testsuite/func-result-after-body.fail.wast:1:22: syntax error, unexpected RESULT +(module (func (nop) (result i32))) + ^^^^^^ + +;;; STDERR ;;) diff --git a/test/interp/spec/func-result-before-param.fail.txt b/test/interp/spec/func-result-before-param.fail.txt new file mode 100644 index 00000000..a21d2c17 --- /dev/null +++ b/test/interp/spec/func-result-before-param.fail.txt @@ -0,0 +1,10 @@ +;;; ERROR: 1 +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/func-result-before-param.fail.wast +(;; STDERR ;;; +Error running "sexpr-wasm": +third_party/testsuite/func-result-before-param.fail.wast:1:29: syntax error, unexpected PARAM +(module (func (result i32) (param i32) (get_local 0))) + ^^^^^ + +;;; STDERR ;;) diff --git a/test/interp/spec/if_label_scope.fail.txt b/test/interp/spec/if_label_scope.fail.txt new file mode 100644 index 00000000..dd8bd926 --- /dev/null +++ b/test/interp/spec/if_label_scope.fail.txt @@ -0,0 +1,10 @@ +;;; ERROR: 1 +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/if_label_scope.fail.wast +(;; STDERR ;;; +Error running "sexpr-wasm": +third_party/testsuite/if_label_scope.fail.wast:6:19: undefined label variable "$l" + (else (br $l (i32.const 42))) + ^^ + +;;; STDERR ;;) diff --git a/test/interp/spec/int_literals.txt b/test/interp/spec/int_literals.txt index e9a2e01d..49c263ad 100644 --- a/test/interp/spec/int_literals.txt +++ b/test/interp/spec/int_literals.txt @@ -1,5 +1,5 @@ ;;; TOOL: run-interp-spec ;;; STDIN_FILE: third_party/testsuite/int_literals.wast (;; STDOUT ;;; -18/18 tests passed. +22/22 tests passed. ;;; STDOUT ;;) diff --git a/test/interp/spec/loop.txt b/test/interp/spec/loop.txt new file mode 100644 index 00000000..31a425f0 --- /dev/null +++ b/test/interp/spec/loop.txt @@ -0,0 +1,73 @@ +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/loop.wast +(;; STDOUT ;;; +assert_invalid error: + third_party/testsuite/loop.wast:262:46: type mismatch of loop. got void, expected i32 + (module (func $type-empty-i32 (result i32) (loop))) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:266:46: type mismatch of loop. got void, expected i64 + (module (func $type-empty-i64 (result i64) (loop))) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:270:46: type mismatch of loop. got void, expected f32 + (module (func $type-empty-f32 (result f32) (loop))) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:274:46: type mismatch of loop. got void, expected f64 + (module (func $type-empty-f64 (result f64) (loop))) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:280:11: type mismatch in nop. got void, expected i32 + (loop (nop)) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:286:11: type mismatch of loop. got f32, expected i32 + (loop (f32.const 0)) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:292:32: type mismatch in nop. got void, expected i32 + (loop (br 1 (i32.const 1)) (nop)) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:298:32: type mismatch of loop. got f32, expected i32 + (loop (br 1 (i32.const 1)) (f32.const 0)) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:305:11: type mismatch of br value. got void, expected i32 + (loop (br 1)) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:311:11: type mismatch of br value. got void, expected i32 + (loop (br 1) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:317:17: type mismatch of br value. got i64, expected i32 + (loop (br 1 (i64.const 1)) (i32.const 1)) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:323:17: type mismatch of br value. got i64, expected i32 + (loop (br 1 (i64.const 1)) (br 1 (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:329:38: type mismatch of br value. got f64, expected i32 + (loop (br 1 (i32.const 1)) (br 1 (f64.const 1))) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:336:17: type mismatch of br value. got void, expected i32 + (loop (loop (br 3)) (br 1 (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:342:23: type mismatch of br value. got i64, expected i32 + (loop (loop (br 3 (i64.const 1))) (br 1 (i32.const 1))) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:348:20: type mismatch of br value. got void, expected i32 + (i32.ctz (loop (br 1))) + ^ +assert_invalid error: + third_party/testsuite/loop.wast:354:5: type mismatch of function result. got i64, expected i32 + (i64.ctz (loop (br 1 (i64.const 9)))) + ^ +47/47 tests passed. +;;; STDOUT ;;) diff --git a/test/interp/spec/nop.txt b/test/interp/spec/nop.txt index b2bfdd1f..8db4cebf 100644 --- a/test/interp/spec/nop.txt +++ b/test/interp/spec/nop.txt @@ -2,8 +2,20 @@ ;;; STDIN_FILE: third_party/testsuite/nop.wast (;; STDOUT ;;; assert_invalid error: - third_party/testsuite/nop.wast:18:30: type mismatch in nop. got void, expected i32 - (module (func (result i32) (nop))) - ^ -2/2 tests passed. + third_party/testsuite/nop.wast:87:40: type mismatch in nop. got void, expected i32 + (module (func $type-i32 (result i32) (nop))) + ^ +assert_invalid error: + third_party/testsuite/nop.wast:91:40: type mismatch in nop. got void, expected i64 + (module (func $type-i64 (result i64) (nop))) + ^ +assert_invalid error: + third_party/testsuite/nop.wast:95:40: type mismatch in nop. got void, expected f32 + (module (func $type-f32 (result f32) (nop))) + ^ +assert_invalid error: + third_party/testsuite/nop.wast:99:40: type mismatch in nop. got void, expected f64 + (module (func $type-f64 (result f64) (nop))) + ^ +20/20 tests passed. ;;; STDOUT ;;) diff --git a/test/interp/spec/return.txt b/test/interp/spec/return.txt new file mode 100644 index 00000000..95addba0 --- /dev/null +++ b/test/interp/spec/return.txt @@ -0,0 +1,13 @@ +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/return.wast +(;; STDOUT ;;; +assert_invalid error: + third_party/testsuite/return.wast:274:54: type mismatch of return. got void, expected f64 + (module (func $type-value-void-vs-num (result f64) (return))) + ^ +assert_invalid error: + third_party/testsuite/return.wast:278:61: type mismatch of return. got i64, expected f64 + (module (func $type-value-num-vs-num (result f64) (return (i64.const 1)))) + ^ +60/60 tests passed. +;;; STDOUT ;;) diff --git a/test/interp/spec/set_local.txt b/test/interp/spec/set_local.txt new file mode 100644 index 00000000..5b201694 --- /dev/null +++ b/test/interp/spec/set_local.txt @@ -0,0 +1,97 @@ +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/set_local.wast +(;; STDOUT ;;; +assert_invalid error: + third_party/testsuite/set_local.wast:133:65: type mismatch of function result. got i32, expected i64 +...$type-local-num-vs-num (result i64) (local i32) (set_local 0 (i32.const 0)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:137:61: type mismatch of convert op. got f32, expected i32 +...nc $type-local-num-vs-num (local f32) (i32.eqz (set_local 0 (f32.const 0))))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:141:65: type mismatch of unary op. got i64, expected f64 +...type-local-num-vs-num (local f64 i64) (f64.neg (set_local 1 (i64.const 0))))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:146:70: type mismatch in nop. got void, expected i32 + (module (func $type-local-arg-void-vs-num (local i32) (set_local 0 (nop)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:150:69: type mismatch of set_local. got f32, expected i32 +...le (func $type-local-arg-num-vs-num (local i32) (set_local 0 (f32.const 0)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:154:69: type mismatch of set_local. got f64, expected f32 +...le (func $type-local-arg-num-vs-num (local f32) (set_local 0 (f64.const 0)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:158:73: type mismatch of set_local. got f64, expected i64 +...func $type-local-arg-num-vs-num (local f64 i64) (set_local 1 (f64.const 0)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:166:65: type mismatch of function result. got i32, expected i64 + (module (func $type-param-num-vs-num (param i32) (result i64) (get_local 0))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:170:61: type mismatch of convert op. got f32, expected i32 + (module (func $type-param-num-vs-num (param f32) (i32.eqz (get_local 0)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:174:65: type mismatch of unary op. got i64, expected f64 + (module (func $type-param-num-vs-num (param f64 i64) (f64.neg (get_local 1)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:179:70: type mismatch in nop. got void, expected i32 + (module (func $type-param-arg-void-vs-num (param i32) (set_local 0 (nop)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:183:69: type mismatch of set_local. got f32, expected i32 +...le (func $type-param-arg-num-vs-num (param i32) (set_local 0 (f32.const 0)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:187:69: type mismatch of set_local. got f64, expected f32 +...le (func $type-param-arg-num-vs-num (param f32) (set_local 0 (f64.const 0)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:191:73: type mismatch of set_local. got f64, expected i64 +...func $type-param-arg-num-vs-num (param f64 i64) (set_local 1 (f64.const 0)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:199:59: local variable out of range (max 2) + (module (func $unbound-local (local i32 i64) (get_local 3))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:203:57: local variable out of range (max 2) + (module (func $large-local (local i32 i64) (get_local 14324343))) + ^^^^^^^^ +assert_invalid error: + third_party/testsuite/set_local.wast:208:59: local variable out of range (max 2) + (module (func $unbound-param (param i32 i64) (get_local 2))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:212:57: local variable out of range (max 2) + (module (func $large-param (local i32 i64) (get_local 714324343))) + ^^^^^^^^^ +assert_invalid error: + third_party/testsuite/set_local.wast:217:71: local variable out of range (max 3) + (module (func $unbound-mixed (param i32) (local i32 i64) (get_local 3))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:221:69: local variable out of range (max 3) + (module (func $large-mixed (param i64) (local i32 i64) (get_local 214324343))) + ^^^^^^^^^ +assert_invalid error: + third_party/testsuite/set_local.wast:226:81: type mismatch of set_local. got f32, expected i32 +...pe-mixed-arg-num-vs-num (param f32) (local i32) (set_local 1 (f32.const 0)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:230:85: type mismatch of set_local. got f32, expected i32 +...ixed-arg-num-vs-num (param i64 i32) (local f32) (set_local 1 (f32.const 0)))) + ^ +assert_invalid error: + third_party/testsuite/set_local.wast:234:85: type mismatch of set_local. got i64, expected f64 +...ixed-arg-num-vs-num (param i64) (local f64 i64) (set_local 1 (i64.const 0)))) + ^ +11/11 tests passed. +;;; STDOUT ;;) diff --git a/test/interp/spec/unreachable.txt b/test/interp/spec/unreachable.txt index 971dba3a..2dc4f277 100644 --- a/test/interp/spec/unreachable.txt +++ b/test/interp/spec/unreachable.txt @@ -1,5 +1,5 @@ ;;; TOOL: run-interp-spec ;;; STDIN_FILE: third_party/testsuite/unreachable.wast (;; STDOUT ;;; -56/56 tests passed. +60/60 tests passed. ;;; STDOUT ;;) diff --git a/test/parse/expr/bad-br-name.txt b/test/parse/expr/bad-br-name.txt index 00b31685..82151b1c 100644 --- a/test/parse/expr/bad-br-name.txt +++ b/test/parse/expr/bad-br-name.txt @@ -4,7 +4,7 @@ parse/expr/bad-br-name.txt:2:31: unexpected token "foo" (module (func (block $foo (br foo)))) ^^^ -parse/expr/bad-br-name.txt:2:34: syntax error, unexpected ), expecting INT or VAR +parse/expr/bad-br-name.txt:2:34: syntax error, unexpected ), expecting NAT or VAR (module (func (block $foo (br foo)))) ^ ;;; STDERR ;;) diff --git a/test/parse/expr/bad-br-no-depth.txt b/test/parse/expr/bad-br-no-depth.txt index 8c5fe17b..4e455fda 100644 --- a/test/parse/expr/bad-br-no-depth.txt +++ b/test/parse/expr/bad-br-no-depth.txt @@ -4,7 +4,7 @@ (block (br)))) (;; STDERR ;;; -parse/expr/bad-br-no-depth.txt:5:10: syntax error, unexpected ), expecting INT or VAR +parse/expr/bad-br-no-depth.txt:5:10: syntax error, unexpected ), expecting NAT or VAR (br)))) ^ ;;; STDERR ;;) diff --git a/test/parse/expr/bad-const-f32-trailing.txt b/test/parse/expr/bad-const-f32-trailing.txt index d3941c84..9e1718e9 100644 --- a/test/parse/expr/bad-const-f32-trailing.txt +++ b/test/parse/expr/bad-const-f32-trailing.txt @@ -4,7 +4,7 @@ parse/expr/bad-const-f32-trailing.txt:2:26: unexpected token "1234.5678foo" (module (func (f32.const 1234.5678foo))) ^^^^^^^^^^^^ -parse/expr/bad-const-f32-trailing.txt:2:38: syntax error, unexpected ), expecting INT or FLOAT +parse/expr/bad-const-f32-trailing.txt:2:38: syntax error, unexpected ), expecting NAT or INT or FLOAT (module (func (f32.const 1234.5678foo))) ^ ;;; STDERR ;;) diff --git a/test/parse/expr/bad-const-i32-garbage.txt b/test/parse/expr/bad-const-i32-garbage.txt index 5aaeb732..f4d7d8ed 100644 --- a/test/parse/expr/bad-const-i32-garbage.txt +++ b/test/parse/expr/bad-const-i32-garbage.txt @@ -4,7 +4,7 @@ parse/expr/bad-const-i32-garbage.txt:2:26: unexpected token "one-hundred" (module (func (i32.const one-hundred))) ^^^^^^^^^^^ -parse/expr/bad-const-i32-garbage.txt:2:37: syntax error, unexpected ), expecting INT or FLOAT +parse/expr/bad-const-i32-garbage.txt:2:37: syntax error, unexpected ), expecting NAT or INT or FLOAT (module (func (i32.const one-hundred))) ^ ;;; STDERR ;;) diff --git a/test/parse/expr/bad-const-i32-just-negative-sign.txt b/test/parse/expr/bad-const-i32-just-negative-sign.txt index 01578a03..6b509707 100644 --- a/test/parse/expr/bad-const-i32-just-negative-sign.txt +++ b/test/parse/expr/bad-const-i32-just-negative-sign.txt @@ -5,7 +5,7 @@ parse/expr/bad-const-i32-just-negative-sign.txt:3:20: unexpected token "-" (func (i32.const -))) ^ -parse/expr/bad-const-i32-just-negative-sign.txt:3:21: syntax error, unexpected ), expecting INT or FLOAT +parse/expr/bad-const-i32-just-negative-sign.txt:3:21: syntax error, unexpected ), expecting NAT or INT or FLOAT (func (i32.const -))) ^ ;;; STDERR ;;) diff --git a/test/parse/expr/bad-const-i32-trailing.txt b/test/parse/expr/bad-const-i32-trailing.txt index f1559cf8..0c24503b 100644 --- a/test/parse/expr/bad-const-i32-trailing.txt +++ b/test/parse/expr/bad-const-i32-trailing.txt @@ -4,7 +4,7 @@ parse/expr/bad-const-i32-trailing.txt:2:26: unexpected token "100x" (module (func (i32.const 100x))) ^^^^ -parse/expr/bad-const-i32-trailing.txt:2:30: syntax error, unexpected ), expecting INT or FLOAT +parse/expr/bad-const-i32-trailing.txt:2:30: syntax error, unexpected ), expecting NAT or INT or FLOAT (module (func (i32.const 100x))) ^ ;;; STDERR ;;) diff --git a/test/parse/expr/bad-getlocal-empty.txt b/test/parse/expr/bad-getlocal-empty.txt index 4c95aa06..11746741 100644 --- a/test/parse/expr/bad-getlocal-empty.txt +++ b/test/parse/expr/bad-getlocal-empty.txt @@ -1,7 +1,7 @@ ;;; ERROR: 1 (module (func (local i32) (get_local))) (;; STDERR ;;; -parse/expr/bad-getlocal-empty.txt:2:37: syntax error, unexpected ), expecting INT or VAR +parse/expr/bad-getlocal-empty.txt:2:37: syntax error, unexpected ), expecting NAT or VAR (module (func (local i32) (get_local))) ^ ;;; STDERR ;;) diff --git a/test/parse/expr/bad-getlocal-name.txt b/test/parse/expr/bad-getlocal-name.txt index 50573a30..89af7f3e 100644 --- a/test/parse/expr/bad-getlocal-name.txt +++ b/test/parse/expr/bad-getlocal-name.txt @@ -4,7 +4,7 @@ parse/expr/bad-getlocal-name.txt:2:41: unexpected token "f" (module (func (local $f f32) (get_local f))) ^ -parse/expr/bad-getlocal-name.txt:2:42: syntax error, unexpected ), expecting INT or VAR +parse/expr/bad-getlocal-name.txt:2:42: syntax error, unexpected ), expecting NAT or VAR (module (func (local $f f32) (get_local f))) ^ ;;; STDERR ;;) diff --git a/test/parse/expr/bad-setlocal-name.txt b/test/parse/expr/bad-setlocal-name.txt index 8469fb4c..1825f39c 100644 --- a/test/parse/expr/bad-setlocal-name.txt +++ b/test/parse/expr/bad-setlocal-name.txt @@ -6,7 +6,7 @@ parse/expr/bad-setlocal-name.txt:4:14: unexpected token "n" (set_local n (i32.const 0)))) ^ -parse/expr/bad-setlocal-name.txt:4:16: syntax error, unexpected (, expecting INT or VAR +parse/expr/bad-setlocal-name.txt:4:16: syntax error, unexpected (, expecting NAT or VAR (set_local n (i32.const 0)))) ^ ;;; STDERR ;;) diff --git a/test/parse/func/bad-local-name.txt b/test/parse/func/bad-local-name.txt index c41b8aa8..0c50263d 100644 --- a/test/parse/func/bad-local-name.txt +++ b/test/parse/func/bad-local-name.txt @@ -1,7 +1,7 @@ ;;; ERROR: 1 (module (func (local 0 i32))) (;; STDERR ;;; -parse/func/bad-local-name.txt:2:22: syntax error, unexpected INT, expecting ) or VALUE_TYPE +parse/func/bad-local-name.txt:2:22: syntax error, unexpected NAT, expecting ) or VALUE_TYPE (module (func (local 0 i32))) ^ ;;; STDERR ;;) diff --git a/test/parse/func/bad-param-name.txt b/test/parse/func/bad-param-name.txt index 4d1a862d..cd69a52a 100644 --- a/test/parse/func/bad-param-name.txt +++ b/test/parse/func/bad-param-name.txt @@ -1,7 +1,7 @@ ;;; ERROR: 1 (module (func (param 0 i32))) (;; STDERR ;;; -parse/func/bad-param-name.txt:2:22: syntax error, unexpected INT, expecting ) or VALUE_TYPE +parse/func/bad-param-name.txt:2:22: syntax error, unexpected NAT, expecting ) or VALUE_TYPE (module (func (param 0 i32))) ^ ;;; STDERR ;;) diff --git a/test/parse/module/bad-export-name.txt b/test/parse/module/bad-export-name.txt index e1667383..115ecb3e 100644 --- a/test/parse/module/bad-export-name.txt +++ b/test/parse/module/bad-export-name.txt @@ -4,7 +4,7 @@ parse/module/bad-export-name.txt:2:23: unexpected token "foo" (module (export "foo" foo)) ^^^ -parse/module/bad-export-name.txt:2:26: syntax error, unexpected ), expecting INT or VAR or MEMORY +parse/module/bad-export-name.txt:2:26: syntax error, unexpected ), expecting NAT or VAR or MEMORY (module (export "foo" foo)) ^ ;;; STDERR ;;) diff --git a/test/parse/module/bad-memory-empty.txt b/test/parse/module/bad-memory-empty.txt index 660f156a..869bb9a5 100644 --- a/test/parse/module/bad-memory-empty.txt +++ b/test/parse/module/bad-memory-empty.txt @@ -1,7 +1,7 @@ ;;; ERROR: 1 (module (memory)) (;; STDERR ;;; -parse/module/bad-memory-empty.txt:2:16: syntax error, unexpected ), expecting INT +parse/module/bad-memory-empty.txt:2:16: syntax error, unexpected ), expecting NAT (module (memory)) ^ ;;; STDERR ;;) diff --git a/test/parse/module/bad-memory-init-size-negative.txt b/test/parse/module/bad-memory-init-size-negative.txt index ba8c787f..93003f01 100644 --- a/test/parse/module/bad-memory-init-size-negative.txt +++ b/test/parse/module/bad-memory-init-size-negative.txt @@ -1,7 +1,7 @@ ;;; ERROR: 1 (module (memory -100)) (;; STDERR ;;; -parse/module/bad-memory-init-size-negative.txt:2:17: invalid initial memory pages "-100" +parse/module/bad-memory-init-size-negative.txt:2:17: syntax error, unexpected INT, expecting NAT (module (memory -100)) ^^^^ ;;; STDERR ;;) diff --git a/test/parse/module/bad-memory-init-size.txt b/test/parse/module/bad-memory-init-size.txt index 1a2efa16..ccbf7c6b 100644 --- a/test/parse/module/bad-memory-init-size.txt +++ b/test/parse/module/bad-memory-init-size.txt @@ -4,7 +4,7 @@ parse/module/bad-memory-init-size.txt:2:17: unexpected token "foo" (module (memory foo)) ^^^ -parse/module/bad-memory-init-size.txt:2:20: syntax error, unexpected ), expecting INT +parse/module/bad-memory-init-size.txt:2:20: syntax error, unexpected ), expecting NAT (module (memory foo)) ^ ;;; STDERR ;;) diff --git a/test/parse/module/bad-memory-max-size-negative.txt b/test/parse/module/bad-memory-max-size-negative.txt index 923eb00f..0bd94218 100644 --- a/test/parse/module/bad-memory-max-size-negative.txt +++ b/test/parse/module/bad-memory-max-size-negative.txt @@ -1,7 +1,7 @@ ;;; ERROR: 1 (module (memory 100 -5)) (;; STDERR ;;; -parse/module/bad-memory-max-size-negative.txt:2:21: invalid max memory pages "-5" +parse/module/bad-memory-max-size-negative.txt:2:21: syntax error, unexpected INT, expecting ( or ) (module (memory 100 -5)) ^^ ;;; STDERR ;;) diff --git a/test/parse/module/bad-memory-segment-address-negative.txt b/test/parse/module/bad-memory-segment-address-negative.txt index 8b0e0bca..6483d013 100644 --- a/test/parse/module/bad-memory-segment-address-negative.txt +++ b/test/parse/module/bad-memory-segment-address-negative.txt @@ -1,7 +1,7 @@ ;;; ERROR: 1 (module (memory 100 (segment -1 "foo"))) (;; STDERR ;;; -parse/module/bad-memory-segment-address-negative.txt:2:30: invalid memory segment address "-1" +parse/module/bad-memory-segment-address-negative.txt:2:30: syntax error, unexpected INT, expecting NAT (module (memory 100 (segment -1 "foo"))) ^^ ;;; STDERR ;;) diff --git a/test/parse/module/bad-memory-segment-address.txt b/test/parse/module/bad-memory-segment-address.txt index 7f0580ae..bc901625 100644 --- a/test/parse/module/bad-memory-segment-address.txt +++ b/test/parse/module/bad-memory-segment-address.txt @@ -4,7 +4,7 @@ parse/module/bad-memory-segment-address.txt:2:30: unexpected token "foo" (module (memory 100 (segment foo))) ^^^ -parse/module/bad-memory-segment-address.txt:2:33: syntax error, unexpected ), expecting INT +parse/module/bad-memory-segment-address.txt:2:33: syntax error, unexpected ), expecting NAT (module (memory 100 (segment foo))) ^ ;;; STDERR ;;) diff --git a/third_party/testsuite b/third_party/testsuite -Subproject 1928ef28031e7041a4b2a9ae0e7dda8a8c578d2 +Subproject 65279bd13de72faa5431d90415623116c749761 |