summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/prebuilt/wasm-ast-lexer-gen.c7880
-rw-r--r--src/prebuilt/wasm-ast-parser-gen.c1356
-rw-r--r--src/prebuilt/wasm-ast-parser-gen.h105
-rw-r--r--src/wasm-ast-lexer.c20
-rw-r--r--src/wasm-ast-parser.y59
-rw-r--r--src/wasm-ast-writer.c5
-rw-r--r--src/wasm-ast.h2
-rw-r--r--src/wasm-binary-reader-interpreter.c22
-rw-r--r--src/wasm-literal.c17
-rw-r--r--src/wasm-literal.h5
-rw-r--r--test/interp/spec/block.txt92
-rw-r--r--test/interp/spec/br.txt25
-rw-r--r--test/interp/spec/br_if.txt93
-rw-r--r--test/interp/spec/br_table.txt69
-rw-r--r--test/interp/spec/call.txt73
-rw-r--r--test/interp/spec/call_indirect.txt81
-rw-r--r--test/interp/spec/func-local-after-body.fail.txt10
-rw-r--r--test/interp/spec/func-local-before-param.fail.txt10
-rw-r--r--test/interp/spec/func-local-before-result.fail.txt10
-rw-r--r--test/interp/spec/func-param-after-body.fail.txt10
-rw-r--r--test/interp/spec/func-result-after-body.fail.txt10
-rw-r--r--test/interp/spec/func-result-before-param.fail.txt10
-rw-r--r--test/interp/spec/if_label_scope.fail.txt10
-rw-r--r--test/interp/spec/int_literals.txt2
-rw-r--r--test/interp/spec/loop.txt73
-rw-r--r--test/interp/spec/nop.txt20
-rw-r--r--test/interp/spec/return.txt13
-rw-r--r--test/interp/spec/set_local.txt97
-rw-r--r--test/interp/spec/unreachable.txt2
-rw-r--r--test/parse/expr/bad-br-name.txt2
-rw-r--r--test/parse/expr/bad-br-no-depth.txt2
-rw-r--r--test/parse/expr/bad-const-f32-trailing.txt2
-rw-r--r--test/parse/expr/bad-const-i32-garbage.txt2
-rw-r--r--test/parse/expr/bad-const-i32-just-negative-sign.txt2
-rw-r--r--test/parse/expr/bad-const-i32-trailing.txt2
-rw-r--r--test/parse/expr/bad-getlocal-empty.txt2
-rw-r--r--test/parse/expr/bad-getlocal-name.txt2
-rw-r--r--test/parse/expr/bad-setlocal-name.txt2
-rw-r--r--test/parse/func/bad-local-name.txt2
-rw-r--r--test/parse/func/bad-param-name.txt2
-rw-r--r--test/parse/module/bad-export-name.txt2
-rw-r--r--test/parse/module/bad-memory-empty.txt2
-rw-r--r--test/parse/module/bad-memory-init-size-negative.txt2
-rw-r--r--test/parse/module/bad-memory-init-size.txt2
-rw-r--r--test/parse/module/bad-memory-max-size-negative.txt2
-rw-r--r--test/parse/module/bad-memory-segment-address-negative.txt2
-rw-r--r--test/parse/module/bad-memory-segment-address.txt2
m---------third_party/testsuite0
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