summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ast-lexer.c1
-rw-r--r--src/ast-parser.y11
-rw-r--r--src/ast.c1
-rw-r--r--src/ast.h1
-rw-r--r--src/binary-writer-spec.c7
-rw-r--r--src/prebuilt/ast-lexer-gen.c8830
-rw-r--r--src/prebuilt/ast-parser-gen.c1242
-rw-r--r--src/prebuilt/ast-parser-gen.h7
-rw-r--r--src/resolve-names.c1
-rw-r--r--src/tools/wasm-interp.c32
-rw-r--r--src/validator.c1
11 files changed, 4737 insertions, 5397 deletions
diff --git a/src/ast-lexer.c b/src/ast-lexer.c
index aade8515..ae4f5f38 100644
--- a/src/ast-lexer.c
+++ b/src/ast-lexer.c
@@ -441,6 +441,7 @@ int wasm_ast_lexer_lex(WASM_AST_PARSER_STYPE* lval,
<i> "assert_return" { RETURN(ASSERT_RETURN); }
<i> "assert_return_nan" { RETURN(ASSERT_RETURN_NAN); }
<i> "assert_trap" { RETURN(ASSERT_TRAP); }
+ <i> "assert_exhaustion" { RETURN(ASSERT_EXHAUSTION); }
<i> "input" { RETURN(INPUT); }
<i> "output" { RETURN(OUTPUT); }
<i> name { TEXT; RETURN(VAR); }
diff --git a/src/ast-parser.y b/src/ast-parser.y
index d31143ff..07a5bb20 100644
--- a/src/ast-parser.y
+++ b/src/ast-parser.y
@@ -207,7 +207,7 @@ static void on_read_binary_error(uint32_t offset, const char* error,
%token MODULE TABLE ELEM MEMORY DATA OFFSET IMPORT EXPORT
%token REGISTER INVOKE GET
%token ASSERT_MALFORMED ASSERT_INVALID ASSERT_UNLINKABLE
-%token ASSERT_RETURN ASSERT_RETURN_NAN ASSERT_TRAP
+%token ASSERT_RETURN ASSERT_RETURN_NAN ASSERT_TRAP ASSERT_EXHAUSTION
%token INPUT OUTPUT
%token EOF 0 "EOF"
@@ -1095,7 +1095,7 @@ export :
;
inline_export_opt :
- /* empty */ {
+ /* empty */ {
WASM_ZERO_MEMORY($$);
$$.has_export = WASM_FALSE;
}
@@ -1391,6 +1391,12 @@ assertion :
$$->assert_trap.action = $3;
$$->assert_trap.text = $4;
}
+ | LPAR ASSERT_EXHAUSTION action quoted_text RPAR {
+ $$ = new_command(parser->allocator);
+ $$->type = WASM_COMMAND_TYPE_ASSERT_EXHAUSTION;
+ $$->assert_trap.action = $3;
+ $$->assert_trap.text = $4;
+ }
;
cmd :
@@ -1479,6 +1485,7 @@ script :
module_var = &command->assert_return_nan.action.module_var;
goto has_module_var;
case WASM_COMMAND_TYPE_ASSERT_TRAP:
+ case WASM_COMMAND_TYPE_ASSERT_EXHAUSTION:
module_var = &command->assert_trap.action.module_var;
goto has_module_var;
case WASM_COMMAND_TYPE_ACTION:
diff --git a/src/ast.c b/src/ast.c
index 34192040..d95281f2 100644
--- a/src/ast.c
+++ b/src/ast.c
@@ -560,6 +560,7 @@ void wasm_destroy_command(WasmAllocator* allocator, WasmCommand* command) {
wasm_destroy_action(allocator, &command->assert_return_nan.action);
break;
case WASM_COMMAND_TYPE_ASSERT_TRAP:
+ case WASM_COMMAND_TYPE_ASSERT_EXHAUSTION:
wasm_destroy_action(allocator, &command->assert_trap.action);
wasm_destroy_string_slice(allocator, &command->assert_trap.text);
break;
diff --git a/src/ast.h b/src/ast.h
index 9859bde6..db1b21a9 100644
--- a/src/ast.h
+++ b/src/ast.h
@@ -335,6 +335,7 @@ typedef enum WasmCommandType {
WASM_COMMAND_TYPE_ASSERT_RETURN,
WASM_COMMAND_TYPE_ASSERT_RETURN_NAN,
WASM_COMMAND_TYPE_ASSERT_TRAP,
+ WASM_COMMAND_TYPE_ASSERT_EXHAUSTION,
WASM_NUM_COMMAND_TYPES,
} WasmCommandType;
diff --git a/src/binary-writer-spec.c b/src/binary-writer-spec.c
index 49b9ad60..909b709b 100644
--- a/src/binary-writer-spec.c
+++ b/src/binary-writer-spec.c
@@ -144,6 +144,7 @@ static void write_command_type(Context* ctx, const WasmCommand* command) {
"assert_return",
"assert_return_nan",
"assert_trap",
+ "assert_exhaustion",
};
WASM_STATIC_ASSERT(WASM_ARRAY_SIZE(s_command_names) ==
WASM_NUM_COMMAND_TYPES);
@@ -452,6 +453,12 @@ static void write_commands(Context* ctx, WasmScript* script) {
write_escaped_string_slice(ctx, command->assert_trap.text);
break;
+ case WASM_COMMAND_TYPE_ASSERT_EXHAUSTION:
+ write_location(ctx, &command->assert_trap.action.loc);
+ write_separator(ctx);
+ write_action(ctx, &command->assert_trap.action);
+ break;
+
case WASM_NUM_COMMAND_TYPES:
assert(0);
break;
diff --git a/src/prebuilt/ast-lexer-gen.c b/src/prebuilt/ast-lexer-gen.c
index 13810837..f07359bf 100644
--- a/src/prebuilt/ast-lexer-gen.c
+++ b/src/prebuilt/ast-lexer-gen.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.16 */
+/* Generated by re2c 0.13.5 */
#line 1 "src/ast-lexer.c"
/*
* Copyright 2016 WebAssembly Community Group participants
@@ -201,64 +201,66 @@ int wasm_ast_lexer_lex(WASM_AST_PARSER_STYPE* lval,
}
/* *********************************** */
YYCOND_BAD_TEXT:
+
if ((lexer->limit - lexer->cursor) < 3) FILL(3);
yych = *lexer->cursor;
if (yych <= '!') {
if (yych <= '\t') {
- if (yych >= 0x01) goto yy5;
+ if (yych >= 0x01) goto yy4;
} else {
- if (yych <= '\n') goto yy7;
- if (yych <= 0x1F) goto yy5;
- goto yy9;
+ if (yych <= '\n') goto yy6;
+ if (yych <= 0x1F) goto yy4;
+ goto yy8;
}
} else {
if (yych <= '\\') {
- if (yych <= '"') goto yy11;
- if (yych <= '[') goto yy9;
- goto yy13;
+ if (yych <= '"') goto yy10;
+ if (yych <= '[') goto yy8;
+ goto yy12;
} else {
- if (yych == 0x7F) goto yy5;
- goto yy9;
+ if (yych == 0x7F) goto yy4;
+ goto yy8;
}
}
++lexer->cursor;
#line 235 "src/ast-lexer.c"
{ ERROR("unexpected EOF"); RETURN(EOF); }
-#line 228 "src/prebuilt/ast-lexer-gen.c"
-yy5:
+#line 229 "src/prebuilt/ast-lexer-gen.c"
+yy4:
++lexer->cursor;
-yy6:
+yy5:
#line 236 "src/ast-lexer.c"
{ ERROR("illegal character in string"); continue; }
-#line 234 "src/prebuilt/ast-lexer-gen.c"
-yy7:
+#line 235 "src/prebuilt/ast-lexer-gen.c"
+yy6:
++lexer->cursor;
BEGIN(YYCOND_i);
#line 231 "src/ast-lexer.c"
{ ERROR("newline in string"); NEWLINE; continue; }
-#line 240 "src/prebuilt/ast-lexer-gen.c"
-yy9:
+#line 241 "src/prebuilt/ast-lexer-gen.c"
+yy8:
++lexer->cursor;
+yy9:
#line 230 "src/ast-lexer.c"
{ continue; }
-#line 245 "src/prebuilt/ast-lexer-gen.c"
-yy11:
+#line 247 "src/prebuilt/ast-lexer-gen.c"
+yy10:
++lexer->cursor;
BEGIN(YYCOND_i);
#line 234 "src/ast-lexer.c"
{ TEXT; RETURN(TEXT); }
-#line 251 "src/prebuilt/ast-lexer-gen.c"
-yy13:
+#line 253 "src/prebuilt/ast-lexer-gen.c"
+yy12:
yych = *++lexer->cursor;
if (yych <= '@') {
if (yych <= '"') {
- if (yych == '\n') goto yy6;
- if (yych >= '"') goto yy9;
+ if (yych == '\n') goto yy5;
+ if (yych >= '"') goto yy15;
} else {
if (yych <= '\'') {
- if (yych >= '\'') goto yy9;
+ if (yych >= '\'') goto yy15;
} else {
- if (yych <= '/') goto yy14;
+ if (yych <= '/') goto yy13;
if (yych <= '9') goto yy16;
}
}
@@ -267,85 +269,88 @@ yy13:
if (yych <= '[') {
if (yych <= 'F') goto yy16;
} else {
- if (yych <= '\\') goto yy9;
+ if (yych <= '\\') goto yy15;
if (yych >= 'a') goto yy16;
}
} else {
if (yych <= 'n') {
- if (yych >= 'n') goto yy9;
+ if (yych >= 'n') goto yy15;
} else {
- if (yych == 't') goto yy9;
+ if (yych == 't') goto yy15;
}
}
}
-yy14:
+yy13:
++lexer->cursor;
-yy15:
+yy14:
#line 232 "src/ast-lexer.c"
{ ERROR("bad escape \"%.*s\"", (int)yyleng, yytext);
continue; }
-#line 288 "src/prebuilt/ast-lexer-gen.c"
+#line 290 "src/prebuilt/ast-lexer-gen.c"
+yy15:
+ yych = *++lexer->cursor;
+ goto yy9;
yy16:
- ++lexer->cursor;
- if ((yych = *lexer->cursor) <= '@') {
- if (yych <= '/') goto yy15;
- if (yych <= '9') goto yy9;
- goto yy15;
+ yych = *++lexer->cursor;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy14;
+ if (yych >= ':') goto yy14;
} else {
- if (yych <= 'F') goto yy9;
- if (yych <= '`') goto yy15;
- if (yych <= 'f') goto yy9;
- goto yy15;
+ if (yych <= 'F') goto yy17;
+ if (yych <= '`') goto yy14;
+ if (yych >= 'g') goto yy14;
}
+yy17:
+ ++lexer->cursor;
+ yych = *lexer->cursor;
+ goto yy9;
/* *********************************** */
YYCOND_BLOCK_COMMENT:
if ((lexer->limit - lexer->cursor) < 2) FILL(2);
yych = *lexer->cursor;
if (yych <= '\'') {
- if (yych <= 0x00) goto yy19;
- if (yych == '\n') goto yy23;
- goto yy21;
+ if (yych <= 0x00) goto yy20;
+ if (yych == '\n') goto yy24;
+ goto yy22;
} else {
- if (yych <= '(') goto yy25;
- if (yych == ';') goto yy26;
- goto yy21;
+ if (yych <= '(') goto yy26;
+ if (yych == ';') goto yy27;
+ goto yy22;
}
-yy19:
+yy20:
++lexer->cursor;
-#line 457 "src/ast-lexer.c"
+#line 458 "src/ast-lexer.c"
{ ERROR("unexpected EOF"); RETURN(EOF); }
-#line 318 "src/prebuilt/ast-lexer-gen.c"
-yy21:
- ++lexer->cursor;
+#line 325 "src/prebuilt/ast-lexer-gen.c"
yy22:
-#line 458 "src/ast-lexer.c"
- { continue; }
-#line 324 "src/prebuilt/ast-lexer-gen.c"
+ ++lexer->cursor;
yy23:
+#line 459 "src/ast-lexer.c"
+ { continue; }
+#line 331 "src/prebuilt/ast-lexer-gen.c"
+yy24:
++lexer->cursor;
-#line 456 "src/ast-lexer.c"
+#line 457 "src/ast-lexer.c"
{ NEWLINE; continue; }
-#line 329 "src/prebuilt/ast-lexer-gen.c"
-yy25:
- yych = *++lexer->cursor;
- if (yych == ';') goto yy27;
- goto yy22;
+#line 336 "src/prebuilt/ast-lexer-gen.c"
yy26:
yych = *++lexer->cursor;
- if (yych == ')') goto yy29;
- goto yy22;
+ if (yych == ';') goto yy30;
+ goto yy23;
yy27:
+ yych = *++lexer->cursor;
+ if (yych != ')') goto yy23;
++lexer->cursor;
-#line 452 "src/ast-lexer.c"
- { COMMENT_NESTING++; continue; }
-#line 342 "src/prebuilt/ast-lexer-gen.c"
-yy29:
- ++lexer->cursor;
-#line 453 "src/ast-lexer.c"
+#line 454 "src/ast-lexer.c"
{ if (--COMMENT_NESTING == 0)
BEGIN(YYCOND_INIT);
continue; }
#line 349 "src/prebuilt/ast-lexer-gen.c"
+yy30:
+ ++lexer->cursor;
+#line 453 "src/ast-lexer.c"
+ { COMMENT_NESTING++; continue; }
+#line 354 "src/prebuilt/ast-lexer-gen.c"
/* *********************************** */
YYCOND_LINE_COMMENT:
{
@@ -383,51 +388,57 @@ YYCOND_LINE_COMMENT:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
- if (lexer->limit <= lexer->cursor) FILL(1);
+ if ((lexer->limit - lexer->cursor) < 2) FILL(2);
yych = *lexer->cursor;
- if (yybm[0+yych] & 128) {
- goto yy34;
- }
+ if (yych <= 0x00) goto yy35;
+ if (yych == '\n') goto yy37;
goto yy36;
-yy33:
-#line 450 "src/ast-lexer.c"
- { continue; }
-#line 396 "src/prebuilt/ast-lexer-gen.c"
yy34:
+#line 451 "src/ast-lexer.c"
+ { continue; }
+#line 400 "src/prebuilt/ast-lexer-gen.c"
+yy35:
+ yych = *++lexer->cursor;
+ goto yy40;
+yy36:
+ yych = *++lexer->cursor;
+ goto yy40;
+yy37:
+ ++lexer->cursor;
+ BEGIN(YYCOND_i);
+#line 450 "src/ast-lexer.c"
+ { NEWLINE; continue; }
+#line 412 "src/prebuilt/ast-lexer-gen.c"
+yy39:
++lexer->cursor;
if (lexer->limit <= lexer->cursor) FILL(1);
yych = *lexer->cursor;
+yy40:
if (yybm[0+yych] & 128) {
- goto yy34;
+ goto yy39;
}
- goto yy33;
-yy36:
- ++lexer->cursor;
- BEGIN(YYCOND_i);
-#line 449 "src/ast-lexer.c"
- { NEWLINE; continue; }
-#line 410 "src/prebuilt/ast-lexer-gen.c"
+ goto yy34;
}
/* *********************************** */
YYCOND_i:
{
static const unsigned char yybm[] = {
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 8, 0, 0, 0, 8, 0, 0,
+ 0, 128, 0, 0, 0, 128, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 72, 80, 0, 80, 80, 80, 80, 80,
- 64, 64, 80, 80, 64, 80, 80, 80,
- 240, 240, 240, 240, 240, 240, 240, 240,
- 240, 240, 80, 64, 80, 80, 80, 80,
- 80, 208, 208, 208, 208, 208, 208, 80,
- 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 64, 16, 64, 80, 80,
- 80, 208, 208, 208, 208, 208, 208, 80,
- 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 64, 80, 64, 80, 0,
+ 192, 72, 0, 72, 72, 72, 72, 72,
+ 64, 64, 72, 72, 64, 72, 72, 72,
+ 120, 120, 120, 120, 120, 120, 120, 120,
+ 120, 120, 72, 64, 72, 72, 72, 72,
+ 72, 104, 104, 104, 104, 104, 104, 72,
+ 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 72, 64, 8, 64, 72, 72,
+ 72, 104, 104, 104, 104, 104, 104, 72,
+ 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 72, 72, 72, 72, 72, 72,
+ 72, 72, 72, 64, 72, 64, 72, 0,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
@@ -447,14 +458,12 @@ YYCOND_i:
};
if ((lexer->limit - lexer->cursor) < 20) FILL(20);
yych = *lexer->cursor;
- if (yybm[0+yych] & 8) {
- goto yy44;
- }
switch (yych) {
- case 0x00: goto yy40;
+ case 0x00: goto yy43;
case '\t':
- case '\n': goto yy47;
- case ' ':
+ case '\r':
+ case ' ': goto yy47;
+ case '\n': goto yy49;
case '!':
case '#':
case '%':
@@ -509,14 +518,14 @@ YYCOND_i:
case 'y':
case 'z':
case '|':
- case '~': goto yy49;
- case '"': goto yy52;
- case '$': goto yy54;
- case '(': goto yy55;
- case ')': goto yy57;
+ case '~': goto yy51;
+ case '"': goto yy53;
+ case '$': goto yy55;
+ case '(': goto yy56;
+ case ')': goto yy58;
case '+':
- case '-': goto yy59;
- case '0': goto yy60;
+ case '-': goto yy60;
+ case '0': goto yy61;
case '1':
case '2':
case '3':
@@ -525,7 +534,7 @@ YYCOND_i:
case '6':
case '7':
case '8':
- case '9': goto yy62;
+ case '9': goto yy63;
case ';': goto yy64;
case 'a': goto yy65;
case 'b': goto yy66;
@@ -544,6084 +553,5347 @@ YYCOND_i:
case 's': goto yy79;
case 't': goto yy80;
case 'u': goto yy81;
- default: goto yy42;
+ default: goto yy45;
}
-yy40:
+yy43:
++lexer->cursor;
-#line 464 "src/ast-lexer.c"
+#line 465 "src/ast-lexer.c"
{ RETURN(EOF); }
-#line 554 "src/prebuilt/ast-lexer-gen.c"
-yy42:
+#line 563 "src/prebuilt/ast-lexer-gen.c"
+yy45:
++lexer->cursor;
-yy43:
-#line 465 "src/ast-lexer.c"
+yy46:
+#line 466 "src/ast-lexer.c"
{ ERROR("unexpected char"); continue; }
-#line 560 "src/prebuilt/ast-lexer-gen.c"
-yy44:
+#line 569 "src/prebuilt/ast-lexer-gen.c"
+yy47:
++lexer->cursor;
- if (lexer->limit <= lexer->cursor) FILL(1);
yych = *lexer->cursor;
- if (yybm[0+yych] & 8) {
- goto yy44;
- }
-#line 460 "src/ast-lexer.c"
+ goto yy1167;
+yy48:
+#line 461 "src/ast-lexer.c"
{ continue; }
-#line 570 "src/prebuilt/ast-lexer-gen.c"
-yy47:
+#line 577 "src/prebuilt/ast-lexer-gen.c"
+yy49:
++lexer->cursor;
-#line 459 "src/ast-lexer.c"
+#line 460 "src/ast-lexer.c"
{ NEWLINE; continue; }
-#line 575 "src/prebuilt/ast-lexer-gen.c"
-yy49:
+#line 582 "src/prebuilt/ast-lexer-gen.c"
+yy51:
++lexer->cursor;
- if (lexer->limit <= lexer->cursor) FILL(1);
yych = *lexer->cursor;
-yy50:
- if (yybm[0+yych] & 16) {
- goto yy49;
- }
-yy51:
-#line 461 "src/ast-lexer.c"
+ goto yy83;
+yy52:
+#line 462 "src/ast-lexer.c"
{ ERROR("unexpected token \"%.*s\"",
(int)yyleng, yytext);
continue; }
-#line 589 "src/prebuilt/ast-lexer-gen.c"
-yy52:
- yych = *(lexer->marker = ++lexer->cursor);
- if (yych <= 0x1F) goto yy53;
- if (yych != 0x7F) goto yy83;
+#line 592 "src/prebuilt/ast-lexer-gen.c"
yy53:
+ yych = *(lexer->marker = ++lexer->cursor);
+ if (yych <= 0x1F) goto yy54;
+ if (yych != 0x7F) goto yy1160;
+yy54:
BEGIN(YYCOND_BAD_TEXT);
#line 229 "src/ast-lexer.c"
{ continue; }
-#line 598 "src/prebuilt/ast-lexer-gen.c"
-yy54:
+#line 601 "src/prebuilt/ast-lexer-gen.c"
+yy55:
yych = *++lexer->cursor;
if (yych <= ';') {
if (yych <= '\'') {
- if (yych == '!') goto yy88;
- if (yych <= '"') goto yy51;
- goto yy88;
+ if (yych == '!') goto yy1156;
+ if (yych <= '"') goto yy52;
+ goto yy1156;
} else {
if (yych <= '+') {
- if (yych <= ')') goto yy51;
- goto yy88;
+ if (yych <= ')') goto yy52;
+ goto yy1156;
} else {
- if (yych <= ',') goto yy51;
- if (yych <= ':') goto yy88;
- goto yy51;
+ if (yych <= ',') goto yy52;
+ if (yych <= ':') goto yy1156;
+ goto yy52;
}
}
} else {
if (yych <= 'z') {
if (yych <= '[') {
- if (yych <= 'Z') goto yy88;
- goto yy51;
+ if (yych <= 'Z') goto yy1156;
+ goto yy52;
} else {
- if (yych == ']') goto yy51;
- goto yy88;
+ if (yych == ']') goto yy52;
+ goto yy1156;
}
} else {
if (yych <= '|') {
- if (yych <= '{') goto yy51;
- goto yy88;
+ if (yych <= '{') goto yy52;
+ goto yy1156;
} else {
- if (yych == '~') goto yy88;
- goto yy51;
+ if (yych == '~') goto yy1156;
+ goto yy52;
}
}
}
-yy55:
+yy56:
++lexer->cursor;
- if ((yych = *lexer->cursor) == ';') goto yy91;
+ if ((yych = *lexer->cursor) == ';') goto yy1154;
#line 220 "src/ast-lexer.c"
{ RETURN(LPAR); }
-#line 640 "src/prebuilt/ast-lexer-gen.c"
-yy57:
+#line 643 "src/prebuilt/ast-lexer-gen.c"
+yy58:
++lexer->cursor;
#line 221 "src/ast-lexer.c"
{ RETURN(RPAR); }
-#line 645 "src/prebuilt/ast-lexer-gen.c"
-yy59:
+#line 648 "src/prebuilt/ast-lexer-gen.c"
+yy60:
yych = *++lexer->cursor;
if (yych <= 'h') {
- if (yych <= '/') goto yy50;
- if (yych <= '0') goto yy93;
- if (yych <= '9') goto yy95;
- goto yy50;
+ if (yych <= '/') goto yy83;
+ if (yych <= '0') goto yy1144;
+ if (yych <= '9') goto yy1146;
+ goto yy83;
} else {
- if (yych <= 'i') goto yy97;
- if (yych == 'n') goto yy98;
- goto yy50;
+ if (yych <= 'i') goto yy1148;
+ if (yych == 'n') goto yy1149;
+ goto yy83;
}
-yy60:
+yy61:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 32) {
- goto yy62;
- }
- if (yych <= 'E') {
- if (yych <= '+') {
+ if ((yych = *lexer->cursor) <= 'D') {
+ if (yych <= ',') {
if (yych <= '"') {
- if (yych == '!') goto yy49;
+ if (yych == '!') goto yy82;
} else {
- if (yych <= '\'') goto yy49;
- if (yych >= '*') goto yy49;
+ if (yych <= '\'') goto yy82;
+ if (yych <= ')') goto yy62;
+ if (yych <= '+') goto yy82;
}
} else {
- if (yych <= '.') {
- if (yych <= ',') goto yy61;
- if (yych <= '-') goto yy49;
- goto yy99;
+ if (yych <= '/') {
+ if (yych == '.') goto yy1125;
+ goto yy82;
} else {
- if (yych == ';') goto yy61;
- if (yych <= 'D') goto yy49;
- goto yy102;
+ if (yych <= '9') goto yy1128;
+ if (yych != ';') goto yy82;
}
}
} else {
- if (yych <= 'w') {
- if (yych <= '\\') {
- if (yych != '[') goto yy49;
+ if (yych <= 'e') {
+ if (yych <= '[') {
+ if (yych <= 'E') goto yy1130;
+ if (yych <= 'Z') goto yy82;
} else {
- if (yych <= ']') goto yy61;
- if (yych == 'e') goto yy102;
- goto yy49;
+ if (yych == ']') goto yy62;
+ if (yych <= 'd') goto yy82;
+ goto yy1130;
}
} else {
if (yych <= '{') {
- if (yych <= 'x') goto yy103;
- if (yych <= 'z') goto yy49;
+ if (yych == 'x') goto yy1134;
+ if (yych <= 'z') goto yy82;
} else {
- if (yych == '}') goto yy61;
- if (yych <= '~') goto yy49;
+ if (yych == '}') goto yy62;
+ if (yych <= '~') goto yy82;
}
}
}
-yy61:
+yy62:
#line 222 "src/ast-lexer.c"
{ LITERAL(INT); RETURN(NAT); }
#line 704 "src/prebuilt/ast-lexer-gen.c"
-yy62:
- ++lexer->cursor;
- if ((lexer->limit - lexer->cursor) < 3) FILL(3);
- yych = *lexer->cursor;
- if (yybm[0+yych] & 32) {
- goto yy62;
- }
- if (yych <= 'D') {
+yy63:
+ yych = *++lexer->cursor;
+ if (yych <= ';') {
if (yych <= '+') {
if (yych <= '"') {
- if (yych == '!') goto yy49;
- goto yy61;
+ if (yych == '!') goto yy82;
+ goto yy62;
} else {
- if (yych <= '\'') goto yy49;
- if (yych <= ')') goto yy61;
- goto yy49;
+ if (yych <= '\'') goto yy82;
+ if (yych <= ')') goto yy62;
+ goto yy82;
}
} else {
if (yych <= '.') {
- if (yych <= ',') goto yy61;
- if (yych <= '-') goto yy49;
- goto yy99;
+ if (yych <= ',') goto yy62;
+ if (yych <= '-') goto yy82;
+ goto yy1125;
} else {
- if (yych == ';') goto yy61;
- goto yy49;
+ if (yych <= '/') goto yy82;
+ if (yych <= '9') goto yy1128;
+ if (yych <= ':') goto yy82;
+ goto yy62;
}
}
} else {
if (yych <= 'd') {
- if (yych <= '[') {
- if (yych <= 'E') goto yy102;
- if (yych <= 'Z') goto yy49;
- goto yy61;
+ if (yych <= 'Z') {
+ if (yych == 'E') goto yy1130;
+ goto yy82;
} else {
- if (yych == ']') goto yy61;
- goto yy49;
+ if (yych == '\\') goto yy82;
+ if (yych <= ']') goto yy62;
+ goto yy82;
}
} else {
if (yych <= '{') {
- if (yych <= 'e') goto yy102;
- if (yych <= 'z') goto yy49;
- goto yy61;
+ if (yych <= 'e') goto yy1130;
+ if (yych <= 'z') goto yy82;
+ goto yy62;
} else {
- if (yych == '}') goto yy61;
- if (yych <= '~') goto yy49;
- goto yy61;
+ if (yych == '}') goto yy62;
+ if (yych <= '~') goto yy82;
+ goto yy62;
}
}
}
yy64:
yych = *++lexer->cursor;
- if (yych == ';') goto yy104;
- goto yy43;
+ if (yych == ';') goto yy1123;
+ goto yy46;
yy65:
yych = *++lexer->cursor;
if (yych <= 'm') {
- if (yych == 'l') goto yy106;
- goto yy50;
+ if (yych == 'l') goto yy1041;
+ goto yy83;
} else {
- if (yych <= 'n') goto yy107;
- if (yych == 's') goto yy108;
- goto yy50;
+ if (yych <= 'n') goto yy1042;
+ if (yych == 's') goto yy1043;
+ goto yy83;
}
yy66:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy109;
- if (yych == 'r') goto yy110;
- goto yy50;
+ if (yych == 'l') goto yy1024;
+ if (yych == 'r') goto yy1025;
+ goto yy83;
yy67:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy112;
- if (yych == 'u') goto yy113;
- goto yy50;
+ if (yych == 'a') goto yy990;
+ if (yych == 'u') goto yy991;
+ goto yy83;
yy68:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy114;
- if (yych == 'r') goto yy115;
- goto yy50;
+ if (yych == 'a') goto yy982;
+ if (yych == 'r') goto yy983;
+ goto yy83;
yy69:
yych = *++lexer->cursor;
if (yych <= 'm') {
- if (yych == 'l') goto yy116;
- goto yy50;
+ if (yych == 'l') goto yy966;
+ goto yy83;
} else {
- if (yych <= 'n') goto yy117;
- if (yych == 'x') goto yy118;
- goto yy50;
+ if (yych <= 'n') goto yy967;
+ if (yych == 'x') goto yy968;
+ goto yy83;
}
yy70:
yych = *++lexer->cursor;
if (yych <= '5') {
- if (yych == '3') goto yy119;
- goto yy50;
+ if (yych == '3') goto yy672;
+ goto yy83;
} else {
- if (yych <= '6') goto yy120;
- if (yych == 'u') goto yy121;
- goto yy50;
+ if (yych <= '6') goto yy673;
+ if (yych == 'u') goto yy674;
+ goto yy83;
}
yy71:
yych = *++lexer->cursor;
if (yych <= 'k') {
- if (yych == 'e') goto yy122;
- goto yy50;
+ if (yych == 'e') goto yy638;
+ goto yy83;
} else {
- if (yych <= 'l') goto yy123;
- if (yych == 'r') goto yy124;
- goto yy50;
+ if (yych <= 'l') goto yy639;
+ if (yych == 'r') goto yy640;
+ goto yy83;
}
yy72:
yych = *++lexer->cursor;
if (yych <= 'e') {
if (yych <= '3') {
- if (yych <= '2') goto yy50;
- goto yy125;
+ if (yych <= '2') goto yy83;
+ goto yy220;
} else {
- if (yych == '6') goto yy126;
- goto yy50;
+ if (yych == '6') goto yy221;
+ goto yy83;
}
} else {
if (yych <= 'l') {
- if (yych <= 'f') goto yy127;
- goto yy50;
+ if (yych <= 'f') goto yy222;
+ goto yy83;
} else {
- if (yych <= 'm') goto yy129;
- if (yych <= 'n') goto yy130;
- goto yy50;
+ if (yych <= 'm') goto yy224;
+ if (yych <= 'n') goto yy225;
+ goto yy83;
}
}
yy73:
yych = *++lexer->cursor;
- if (yych == 'o') goto yy131;
- goto yy50;
+ if (yych == 'o') goto yy212;
+ goto yy83;
yy74:
yych = *++lexer->cursor;
if (yych <= 'n') {
- if (yych == 'e') goto yy132;
- goto yy50;
+ if (yych == 'e') goto yy197;
+ goto yy83;
} else {
- if (yych <= 'o') goto yy133;
- if (yych == 'u') goto yy134;
- goto yy50;
+ if (yych <= 'o') goto yy198;
+ if (yych == 'u') goto yy199;
+ goto yy83;
}
yy75:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy135;
- if (yych == 'o') goto yy136;
- goto yy50;
+ if (yych == 'a') goto yy186;
+ if (yych == 'o') goto yy187;
+ goto yy83;
yy76:
yych = *++lexer->cursor;
- if (yych == 'f') goto yy137;
- if (yych == 'u') goto yy138;
- goto yy50;
+ if (yych == 'f') goto yy166;
+ if (yych == 'u') goto yy167;
+ goto yy83;
yy77:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy139;
- goto yy50;
+ if (yych == 'a') goto yy161;
+ goto yy83;
yy78:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy140;
- goto yy50;
+ if (yych == 'e') goto yy143;
+ goto yy83;
yy79:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy141;
- if (yych == 't') goto yy142;
- goto yy50;
+ if (yych == 'e') goto yy117;
+ if (yych == 't') goto yy118;
+ goto yy83;
yy80:
yych = *++lexer->cursor;
if (yych <= 'e') {
- if (yych == 'a') goto yy143;
- if (yych <= 'd') goto yy50;
- goto yy144;
+ if (yych == 'a') goto yy95;
+ if (yych <= 'd') goto yy83;
+ goto yy96;
} else {
if (yych <= 'h') {
- if (yych <= 'g') goto yy50;
- goto yy145;
+ if (yych <= 'g') goto yy83;
+ goto yy97;
} else {
- if (yych == 'y') goto yy146;
- goto yy50;
+ if (yych == 'y') goto yy98;
+ goto yy83;
}
}
yy81:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy147;
- goto yy50;
+ if (yych == 'n') goto yy84;
+ goto yy83;
yy82:
++lexer->cursor;
if (lexer->limit <= lexer->cursor) FILL(1);
yych = *lexer->cursor;
yy83:
- if (yybm[0+yych] & 64) {
+ if (yybm[0+yych] & 8) {
goto yy82;
}
- if (yych <= 0x1F) goto yy84;
- if (yych <= '"') goto yy85;
- if (yych <= '\\') goto yy87;
+ goto yy52;
yy84:
- lexer->cursor = lexer->marker;
- goto yy53;
-yy85:
- ++lexer->cursor;
-#line 228 "src/ast-lexer.c"
- { TEXT; RETURN(TEXT); }
-#line 907 "src/prebuilt/ast-lexer-gen.c"
-yy87:
- ++lexer->cursor;
- if (lexer->limit <= lexer->cursor) FILL(1);
- yych = *lexer->cursor;
- if (yych <= 'F') {
- if (yych <= '\'') {
- if (yych == '"') goto yy82;
- if (yych <= '&') goto yy84;
- goto yy82;
- } else {
- if (yych <= '/') goto yy84;
- if (yych <= '9') goto yy148;
- if (yych <= '@') goto yy84;
- goto yy148;
- }
- } else {
- if (yych <= 'f') {
- if (yych == '\\') goto yy82;
- if (yych <= '`') goto yy84;
- goto yy148;
- } else {
- if (yych <= 'n') {
- if (yych <= 'm') goto yy84;
- goto yy82;
- } else {
- if (yych == 't') goto yy82;
- goto yy84;
- }
- }
- }
-yy88:
- ++lexer->cursor;
- if (lexer->limit <= lexer->cursor) FILL(1);
- yych = *lexer->cursor;
- if (yych <= ';') {
- if (yych <= '\'') {
- if (yych == '!') goto yy88;
- if (yych >= '#') goto yy88;
- } else {
- if (yych <= '+') {
- if (yych >= '*') goto yy88;
- } else {
- if (yych <= ',') goto yy90;
- if (yych <= ':') goto yy88;
- }
- }
- } else {
- if (yych <= 'z') {
- if (yych <= '[') {
- if (yych <= 'Z') goto yy88;
- } else {
- if (yych != ']') goto yy88;
- }
- } else {
- if (yych <= '|') {
- if (yych >= '|') goto yy88;
- } else {
- if (yych == '~') goto yy88;
- }
- }
- }
-yy90:
-#line 446 "src/ast-lexer.c"
- { TEXT; RETURN(VAR); }
-#line 972 "src/prebuilt/ast-lexer-gen.c"
-yy91:
- ++lexer->cursor;
- BEGIN(YYCOND_BLOCK_COMMENT);
-#line 451 "src/ast-lexer.c"
- { COMMENT_NESTING = 1; continue; }
-#line 978 "src/prebuilt/ast-lexer-gen.c"
-yy93:
+ yych = *++lexer->cursor;
+ if (yych != 'r') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'e') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'a') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'c') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'h') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'a') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'b') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'l') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'e') goto yy83;
++lexer->cursor;
- if ((yych = *lexer->cursor) <= 'D') {
- if (yych <= ',') {
- if (yych <= '"') {
- if (yych == '!') goto yy49;
- } else {
- if (yych <= '\'') goto yy49;
- if (yych <= ')') goto yy94;
- if (yych <= '+') goto yy49;
- }
- } else {
- if (yych <= '/') {
- if (yych == '.') goto yy99;
- goto yy49;
- } else {
- if (yych <= '9') goto yy95;
- if (yych != ';') goto yy49;
- }
- }
- } else {
- if (yych <= 'e') {
- if (yych <= '[') {
- if (yych <= 'E') goto yy102;
- if (yych <= 'Z') goto yy49;
- } else {
- if (yych == ']') goto yy94;
- if (yych <= 'd') goto yy49;
- goto yy102;
- }
- } else {
- if (yych <= '{') {
- if (yych == 'x') goto yy149;
- if (yych <= 'z') goto yy49;
- } else {
- if (yych == '}') goto yy94;
- if (yych <= '~') goto yy49;
- }
- }
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy94:
-#line 223 "src/ast-lexer.c"
- { LITERAL(INT); RETURN(INT); }
-#line 1022 "src/prebuilt/ast-lexer-gen.c"
+#line 417 "src/ast-lexer.c"
+ { RETURN(UNREACHABLE); }
+#line 920 "src/prebuilt/ast-lexer-gen.c"
yy95:
- ++lexer->cursor;
- if ((lexer->limit - lexer->cursor) < 3) FILL(3);
- yych = *lexer->cursor;
- if (yych <= ';') {
- if (yych <= '+') {
- if (yych <= '"') {
- if (yych == '!') goto yy49;
- goto yy94;
- } else {
- if (yych <= '\'') goto yy49;
- if (yych <= ')') goto yy94;
- goto yy49;
- }
- } else {
- if (yych <= '.') {
- if (yych <= ',') goto yy94;
- if (yych <= '-') goto yy49;
- goto yy99;
- } else {
- if (yych <= '/') goto yy49;
- if (yych <= '9') goto yy95;
- if (yych <= ':') goto yy49;
- goto yy94;
- }
- }
- } else {
- if (yych <= 'd') {
- if (yych <= 'Z') {
- if (yych == 'E') goto yy102;
- goto yy49;
- } else {
- if (yych == '\\') goto yy49;
- if (yych <= ']') goto yy94;
- goto yy49;
- }
- } else {
- if (yych <= '{') {
- if (yych <= 'e') goto yy102;
- if (yych <= 'z') goto yy49;
- goto yy94;
- } else {
- if (yych == '}') goto yy94;
- if (yych <= '~') goto yy49;
- goto yy94;
- }
- }
- }
+ yych = *++lexer->cursor;
+ if (yych == 'b') goto yy113;
+ goto yy83;
+yy96:
+ yych = *++lexer->cursor;
+ if (yych == 'e') goto yy105;
+ goto yy83;
yy97:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy150;
- goto yy50;
+ if (yych == 'e') goto yy102;
+ goto yy83;
yy98:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy135;
- goto yy50;
-yy99:
+ if (yych != 'p') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'e') goto yy83;
++lexer->cursor;
- if ((lexer->limit - lexer->cursor) < 3) FILL(3);
- yych = *lexer->cursor;
- if (yych <= 'D') {
- if (yych <= '+') {
- if (yych <= '"') {
- if (yych == '!') goto yy49;
- } else {
- if (yych <= '\'') goto yy49;
- if (yych >= '*') goto yy49;
- }
- } else {
- if (yych <= '9') {
- if (yych <= ',') goto yy101;
- if (yych <= '/') goto yy49;
- goto yy99;
- } else {
- if (yych != ';') goto yy49;
- }
- }
- } else {
- if (yych <= 'd') {
- if (yych <= '[') {
- if (yych <= 'E') goto yy102;
- if (yych <= 'Z') goto yy49;
- } else {
- if (yych != ']') goto yy49;
- }
- } else {
- if (yych <= '{') {
- if (yych <= 'e') goto yy102;
- if (yych <= 'z') goto yy49;
- } else {
- if (yych == '}') goto yy101;
- if (yych <= '~') goto yy49;
- }
- }
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy101:
-#line 224 "src/ast-lexer.c"
- { LITERAL(FLOAT); RETURN(FLOAT); }
-#line 1121 "src/prebuilt/ast-lexer-gen.c"
+#line 420 "src/ast-lexer.c"
+ { RETURN(TYPE); }
+#line 944 "src/prebuilt/ast-lexer-gen.c"
yy102:
yych = *++lexer->cursor;
- if (yych <= ',') {
- if (yych == '+') goto yy151;
- goto yy50;
- } else {
- if (yych <= '-') goto yy151;
- if (yych <= '/') goto yy50;
- if (yych <= '9') goto yy152;
- goto yy50;
+ if (yych != 'n') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy103:
+#line 247 "src/ast-lexer.c"
+ { RETURN(THEN); }
+#line 954 "src/prebuilt/ast-lexer-gen.c"
+yy105:
yych = *++lexer->cursor;
- if (yybm[0+yych] & 128) {
- goto yy154;
- }
- goto yy50;
-yy104:
- ++lexer->cursor;
- BEGIN(YYCOND_LINE_COMMENT);
-#line 448 "src/ast-lexer.c"
- { continue; }
-#line 1144 "src/prebuilt/ast-lexer-gen.c"
-yy106:
+ if (yych != '_') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'l') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'i') goto yy156;
- goto yy50;
-yy107:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'y') goto yy157;
- goto yy50;
-yy108:
+ if (yych != 'c') goto yy83;
yych = *++lexer->cursor;
- if (yych == 's') goto yy158;
- goto yy50;
-yy109:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy159;
- goto yy50;
-yy110:
+ if (yych != 'l') goto yy83;
++lexer->cursor;
- if ((yych = *lexer->cursor) <= 'Z') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
- } else {
- if (yych <= '"') goto yy111;
- if (yych <= '\'') goto yy49;
- }
- } else {
- if (yych <= ',') {
- if (yych <= '+') goto yy49;
- } else {
- if (yych != ';') goto yy49;
- }
- }
- } else {
- if (yych <= '_') {
- if (yych <= '\\') {
- if (yych >= '\\') goto yy49;
- } else {
- if (yych <= ']') goto yy111;
- if (yych <= '^') goto yy49;
- goto yy160;
- }
- } else {
- if (yych <= '|') {
- if (yych != '{') goto yy49;
- } else {
- if (yych == '~') goto yy49;
- }
- }
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy111:
-#line 250 "src/ast-lexer.c"
- { RETURN(BR); }
-#line 1198 "src/prebuilt/ast-lexer-gen.c"
-yy112:
- yych = *++lexer->cursor;
- if (yych == 'l') goto yy161;
- goto yy50;
+#line 261 "src/ast-lexer.c"
+ { RETURN(TEE_LOCAL); }
+#line 974 "src/prebuilt/ast-lexer-gen.c"
yy113:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy162;
- goto yy50;
-yy114:
- yych = *++lexer->cursor;
- if (yych == 't') goto yy163;
- goto yy50;
-yy115:
- yych = *++lexer->cursor;
- if (yych == 'o') goto yy164;
- goto yy50;
-yy116:
+ if (yych != 'l') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy165;
- if (yych == 's') goto yy166;
- goto yy50;
+ if (yych != 'e') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 427 "src/ast-lexer.c"
+ { RETURN(TABLE); }
+#line 986 "src/prebuilt/ast-lexer-gen.c"
yy117:
yych = *++lexer->cursor;
- if (yych == 'd') goto yy167;
- goto yy50;
+ if (yych == 'l') goto yy124;
+ if (yych == 't') goto yy123;
+ goto yy83;
yy118:
yych = *++lexer->cursor;
- if (yych == 'p') goto yy169;
- goto yy50;
-yy119:
- yych = *++lexer->cursor;
- if (yych == '2') goto yy170;
- goto yy50;
-yy120:
- yych = *++lexer->cursor;
- if (yych == '4') goto yy172;
- goto yy50;
-yy121:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'n') goto yy174;
- goto yy50;
-yy122:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy175;
- goto yy50;
+ if (yych != 't') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 429 "src/ast-lexer.c"
+ { RETURN(START); }
+#line 1005 "src/prebuilt/ast-lexer-gen.c"
yy123:
yych = *++lexer->cursor;
- if (yych == 'o') goto yy177;
- goto yy50;
+ if (yych == '_') goto yy129;
+ goto yy83;
yy124:
yych = *++lexer->cursor;
- if (yych == 'o') goto yy178;
- goto yy50;
-yy125:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == '2') goto yy179;
- goto yy50;
-yy126:
+ if (yych != 'c') goto yy83;
yych = *++lexer->cursor;
- if (yych == '4') goto yy181;
- goto yy50;
-yy127:
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if ((yych = *lexer->cursor) <= 'Z') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
- } else {
- if (yych <= '"') goto yy128;
- if (yych <= '\'') goto yy49;
- }
- } else {
- if (yych <= ',') {
- if (yych <= '+') goto yy49;
- } else {
- if (yych != ';') goto yy49;
- }
- }
- } else {
- if (yych <= '_') {
- if (yych <= '\\') {
- if (yych >= '\\') goto yy49;
- } else {
- if (yych <= ']') goto yy128;
- if (yych <= '^') goto yy49;
- goto yy183;
- }
- } else {
- if (yych <= '|') {
- if (yych != '{') goto yy49;
- } else {
- if (yych == '~') goto yy49;
- }
- }
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy128:
-#line 245 "src/ast-lexer.c"
- { RETURN(IF); }
-#line 1297 "src/prebuilt/ast-lexer-gen.c"
+#line 416 "src/ast-lexer.c"
+ { RETURN(SELECT); }
+#line 1023 "src/prebuilt/ast-lexer-gen.c"
yy129:
yych = *++lexer->cursor;
- if (yych == 'p') goto yy184;
- goto yy50;
-yy130:
+ if (yych == 'g') goto yy131;
+ if (yych != 'l') goto yy83;
yych = *++lexer->cursor;
- if (yych <= 'o') {
- if (yych == 'f') goto yy185;
- goto yy50;
- } else {
- if (yych <= 'p') goto yy187;
- if (yych == 'v') goto yy188;
- goto yy50;
- }
+ if (yych == 'o') goto yy138;
+ goto yy83;
yy131:
yych = *++lexer->cursor;
- if (yych == 'c') goto yy189;
- if (yych == 'o') goto yy190;
- goto yy50;
-yy132:
+ if (yych != 'l') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'm') goto yy191;
- goto yy50;
-yy133:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'd') goto yy192;
- goto yy50;
-yy134:
+ if (yych != 'b') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy193;
- goto yy50;
-yy135:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'n') goto yy195;
- goto yy50;
-yy136:
- yych = *++lexer->cursor;
- if (yych == 'p') goto yy197;
- goto yy50;
-yy137:
- yych = *++lexer->cursor;
- if (yych == 'f') goto yy199;
- goto yy50;
+ if (yych != 'l') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 263 "src/ast-lexer.c"
+ { RETURN(SET_GLOBAL); }
+#line 1048 "src/prebuilt/ast-lexer-gen.c"
yy138:
yych = *++lexer->cursor;
- if (yych == 't') goto yy200;
- goto yy50;
-yy139:
+ if (yych != 'c') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy201;
- goto yy50;
-yy140:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych <= 'r') {
- if (yych == 'g') goto yy202;
- goto yy50;
- } else {
- if (yych <= 's') goto yy203;
- if (yych <= 't') goto yy204;
- goto yy50;
+ if (yych != 'l') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy141:
- yych = *++lexer->cursor;
- if (yych == 'l') goto yy205;
- if (yych == 't') goto yy206;
- goto yy50;
-yy142:
- yych = *++lexer->cursor;
- if (yych == 'a') goto yy207;
- goto yy50;
+#line 260 "src/ast-lexer.c"
+ { RETURN(SET_LOCAL); }
+#line 1062 "src/prebuilt/ast-lexer-gen.c"
yy143:
yych = *++lexer->cursor;
- if (yych == 'b') goto yy208;
- goto yy50;
-yy144:
+ if (yych <= 'r') {
+ if (yych == 'g') goto yy146;
+ goto yy83;
+ } else {
+ if (yych <= 's') goto yy145;
+ if (yych >= 'u') goto yy83;
+ }
yych = *++lexer->cursor;
- if (yych == 'e') goto yy209;
- goto yy50;
+ if (yych == 'u') goto yy157;
+ goto yy83;
yy145:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy210;
- goto yy50;
+ if (yych == 'u') goto yy153;
+ goto yy83;
yy146:
yych = *++lexer->cursor;
- if (yych == 'p') goto yy211;
- goto yy50;
-yy147:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy212;
- goto yy50;
-yy148:
- ++lexer->cursor;
- if (lexer->limit <= lexer->cursor) FILL(1);
- yych = *lexer->cursor;
- if (yych <= '@') {
- if (yych <= '/') goto yy84;
- if (yych <= '9') goto yy82;
- goto yy84;
- } else {
- if (yych <= 'F') goto yy82;
- if (yych <= '`') goto yy84;
- if (yych <= 'f') goto yy82;
- goto yy84;
- }
-yy149:
+ if (yych != 's') goto yy83;
yych = *++lexer->cursor;
- if (yych <= '@') {
- if (yych <= '/') goto yy50;
- if (yych <= '9') goto yy213;
- goto yy50;
- } else {
- if (yych <= 'F') goto yy213;
- if (yych <= '`') goto yy50;
- if (yych <= 'f') goto yy213;
- goto yy50;
- }
-yy150:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'f') goto yy185;
- goto yy50;
-yy151:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych <= '/') goto yy50;
- if (yych >= ':') goto yy50;
-yy152:
+ if (yych != 'r') goto yy83;
++lexer->cursor;
- if (lexer->limit <= lexer->cursor) FILL(1);
- yych = *lexer->cursor;
- if (yych <= ':') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych <= ' ') goto yy101;
- goto yy49;
- } else {
- if (yych <= '"') goto yy101;
- if (yych <= '\'') goto yy49;
- goto yy101;
- }
- } else {
- if (yych <= ',') {
- if (yych <= '+') goto yy49;
- goto yy101;
- } else {
- if (yych <= '/') goto yy49;
- if (yych <= '9') goto yy152;
- goto yy49;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= 'Z') {
- if (yych <= ';') goto yy101;
- goto yy49;
- } else {
- if (yych == '\\') goto yy49;
- goto yy101;
- }
- } else {
- if (yych <= '|') {
- if (yych == '{') goto yy101;
- goto yy49;
- } else {
- if (yych == '~') goto yy49;
- goto yy101;
- }
- }
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy154:
+#line 435 "src/ast-lexer.c"
+ { RETURN(REGISTER); }
+#line 1096 "src/prebuilt/ast-lexer-gen.c"
+yy153:
+ yych = *++lexer->cursor;
+ if (yych != 'l') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if ((lexer->limit - lexer->cursor) < 3) FILL(3);
- yych = *lexer->cursor;
- if (yybm[0+yych] & 128) {
- goto yy154;
- }
- if (yych <= ';') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych <= ' ') goto yy61;
- goto yy49;
- } else {
- if (yych <= '"') goto yy61;
- if (yych <= '\'') goto yy49;
- goto yy61;
- }
- } else {
- if (yych <= '-') {
- if (yych == ',') goto yy61;
- goto yy49;
- } else {
- if (yych <= '.') goto yy215;
- if (yych <= ':') goto yy49;
- goto yy61;
- }
- }
- } else {
- if (yych <= 'p') {
- if (yych <= '\\') {
- if (yych == '[') goto yy61;
- goto yy49;
- } else {
- if (yych <= ']') goto yy61;
- if (yych <= 'o') goto yy49;
- goto yy217;
- }
- } else {
- if (yych <= '|') {
- if (yych == '{') goto yy61;
- goto yy49;
- } else {
- if (yych == '~') goto yy49;
- goto yy61;
- }
- }
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy156:
- yych = *++lexer->cursor;
- if (yych == 'g') goto yy218;
- goto yy50;
+#line 423 "src/ast-lexer.c"
+ { RETURN(RESULT); }
+#line 1108 "src/prebuilt/ast-lexer-gen.c"
yy157:
yych = *++lexer->cursor;
- if (yych == 'f') goto yy219;
- goto yy50;
-yy158:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy220;
- goto yy50;
-yy159:
+ if (yych != 'n') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 258 "src/ast-lexer.c"
+ { RETURN(RETURN); }
+#line 1120 "src/prebuilt/ast-lexer-gen.c"
+yy161:
yych = *++lexer->cursor;
- if (yych == 'c') goto yy221;
- goto yy50;
-yy160:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'i') goto yy222;
- if (yych == 't') goto yy223;
- goto yy50;
-yy161:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'l') goto yy224;
- goto yy50;
-yy162:
+ if (yych != 'm') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 422 "src/ast-lexer.c"
+ { RETURN(PARAM); }
+#line 1134 "src/prebuilt/ast-lexer-gen.c"
+yy166:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy226;
- goto yy50;
-yy163:
+ if (yych == 'f') goto yy173;
+ goto yy83;
+yy167:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy227;
- goto yy50;
-yy164:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'p') goto yy229;
- goto yy50;
-yy165:
+ if (yych != 'p') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'm') goto yy231;
- goto yy50;
-yy166:
+ if (yych != 'u') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy233;
- goto yy50;
-yy167:
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 257 "src/ast-lexer.c"
- { RETURN(END); }
-#line 1564 "src/prebuilt/ast-lexer-gen.c"
-yy169:
+#line 446 "src/ast-lexer.c"
+ { RETURN(OUTPUT); }
+#line 1154 "src/prebuilt/ast-lexer-gen.c"
+yy173:
yych = *++lexer->cursor;
- if (yych == 'o') goto yy235;
- goto yy50;
-yy170:
- ++lexer->cursor;
- if ((yych = *lexer->cursor) <= ':') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
- } else {
- if (yych <= '"') goto yy171;
- if (yych <= '\'') goto yy49;
- }
- } else {
- if (yych <= ',') {
- if (yych <= '+') goto yy49;
- } else {
- if (yych == '.') goto yy236;
- goto yy49;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= 'Z') {
- if (yych >= '<') goto yy49;
- } else {
- if (yych == '\\') goto yy49;
- }
- } else {
- if (yych <= '|') {
- if (yych != '{') goto yy49;
- } else {
- if (yych == '~') goto yy49;
- }
- }
- }
-yy171:
-#line 239 "src/ast-lexer.c"
- { TYPE(F32); RETURN(VALUE_TYPE); }
-#line 1605 "src/prebuilt/ast-lexer-gen.c"
-yy172:
+ if (yych != 's') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'e') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if ((yych = *lexer->cursor) <= ':') {
+ if ((yych = *lexer->cursor) <= '<') {
if (yych <= ')') {
if (yych <= '!') {
- if (yych >= '!') goto yy49;
+ if (yych >= '!') goto yy82;
} else {
- if (yych <= '"') goto yy173;
- if (yych <= '\'') goto yy49;
+ if (yych <= '"') goto yy177;
+ if (yych <= '\'') goto yy82;
}
} else {
if (yych <= ',') {
- if (yych <= '+') goto yy49;
+ if (yych <= '+') goto yy82;
} else {
- if (yych == '.') goto yy237;
- goto yy49;
+ if (yych != ';') goto yy82;
}
}
} else {
if (yych <= ']') {
if (yych <= 'Z') {
- if (yych >= '<') goto yy49;
- } else {
- if (yych == '\\') goto yy49;
- }
- } else {
- if (yych <= '|') {
- if (yych != '{') goto yy49;
- } else {
- if (yych == '~') goto yy49;
- }
- }
- }
-yy173:
-#line 240 "src/ast-lexer.c"
- { TYPE(F64); RETURN(VALUE_TYPE); }
-#line 1642 "src/prebuilt/ast-lexer-gen.c"
-yy174:
- yych = *++lexer->cursor;
- if (yych == 'c') goto yy238;
- goto yy50;
-yy175:
- ++lexer->cursor;
- if ((yych = *lexer->cursor) <= 'Z') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
- } else {
- if (yych <= '"') goto yy176;
- if (yych <= '\'') goto yy49;
- }
- } else {
- if (yych <= ',') {
- if (yych <= '+') goto yy49;
- } else {
- if (yych != ';') goto yy49;
- }
- }
- } else {
- if (yych <= '_') {
- if (yych <= '\\') {
- if (yych >= '\\') goto yy49;
+ if (yych <= '=') goto yy178;
+ goto yy82;
} else {
- if (yych <= ']') goto yy176;
- if (yych <= '^') goto yy49;
- goto yy240;
+ if (yych == '\\') goto yy82;
}
} else {
if (yych <= '|') {
- if (yych != '{') goto yy49;
+ if (yych != '{') goto yy82;
} else {
- if (yych == '~') goto yy49;
+ if (yych == '~') goto yy82;
}
}
}
-yy176:
-#line 437 "src/ast-lexer.c"
- { RETURN(GET); }
-#line 1684 "src/prebuilt/ast-lexer-gen.c"
yy177:
- yych = *++lexer->cursor;
- if (yych == 'b') goto yy241;
- goto yy50;
+#line 432 "src/ast-lexer.c"
+ { RETURN(OFFSET); }
+#line 1197 "src/prebuilt/ast-lexer-gen.c"
yy178:
yych = *++lexer->cursor;
- if (yych == 'w') goto yy242;
- goto yy50;
+ if (yych <= '/') goto yy83;
+ if (yych <= '0') goto yy179;
+ if (yych <= '9') goto yy181;
+ goto yy83;
yy179:
++lexer->cursor;
- if ((yych = *lexer->cursor) <= ':') {
+ if (yybm[0+(yych = *lexer->cursor)] & 16) {
+ goto yy181;
+ }
+ if (yych <= 'Z') {
if (yych <= ')') {
if (yych <= '!') {
- if (yych >= '!') goto yy49;
+ if (yych >= '!') goto yy82;
} else {
if (yych <= '"') goto yy180;
- if (yych <= '\'') goto yy49;
+ if (yych <= '\'') goto yy82;
}
} else {
if (yych <= ',') {
- if (yych <= '+') goto yy49;
+ if (yych <= '+') goto yy82;
} else {
- if (yych == '.') goto yy243;
- goto yy49;
+ if (yych != ';') goto yy82;
}
}
} else {
- if (yych <= ']') {
- if (yych <= 'Z') {
- if (yych >= '<') goto yy49;
+ if (yych <= 'x') {
+ if (yych <= '\\') {
+ if (yych >= '\\') goto yy82;
} else {
- if (yych == '\\') goto yy49;
+ if (yych <= ']') goto yy180;
+ if (yych <= 'w') goto yy82;
+ goto yy183;
}
} else {
if (yych <= '|') {
- if (yych != '{') goto yy49;
+ if (yych != '{') goto yy82;
} else {
- if (yych == '~') goto yy49;
+ if (yych == '~') goto yy82;
}
}
}
yy180:
-#line 237 "src/ast-lexer.c"
- { TYPE(I32); RETURN(VALUE_TYPE); }
-#line 1729 "src/prebuilt/ast-lexer-gen.c"
+#line 287 "src/ast-lexer.c"
+ { TEXT_AT(7); RETURN(OFFSET_EQ_NAT); }
+#line 1244 "src/prebuilt/ast-lexer-gen.c"
yy181:
++lexer->cursor;
- if ((yych = *lexer->cursor) <= ':') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
- } else {
- if (yych <= '"') goto yy182;
- if (yych <= '\'') goto yy49;
- }
+ if (lexer->limit <= lexer->cursor) FILL(1);
+ yych = *lexer->cursor;
+ if (yybm[0+yych] & 16) {
+ goto yy181;
+ }
+ if (yych <= ';') {
+ if (yych <= '\'') {
+ if (yych == '!') goto yy82;
+ if (yych <= '"') goto yy180;
+ goto yy82;
} else {
- if (yych <= ',') {
- if (yych <= '+') goto yy49;
+ if (yych <= '+') {
+ if (yych <= ')') goto yy180;
+ goto yy82;
} else {
- if (yych == '.') goto yy244;
- goto yy49;
+ if (yych <= ',') goto yy180;
+ if (yych <= ':') goto yy82;
+ goto yy180;
}
}
} else {
- if (yych <= ']') {
- if (yych <= 'Z') {
- if (yych >= '<') goto yy49;
+ if (yych <= 'z') {
+ if (yych <= '[') {
+ if (yych <= 'Z') goto yy82;
+ goto yy180;
} else {
- if (yych == '\\') goto yy49;
+ if (yych == ']') goto yy180;
+ goto yy82;
}
} else {
if (yych <= '|') {
- if (yych != '{') goto yy49;
+ if (yych <= '{') goto yy180;
+ goto yy82;
} else {
- if (yych == '~') goto yy49;
+ if (yych == '~') goto yy82;
+ goto yy180;
}
}
}
-yy182:
-#line 238 "src/ast-lexer.c"
- { TYPE(I64); RETURN(VALUE_TYPE); }
-#line 1766 "src/prebuilt/ast-lexer-gen.c"
yy183:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy245;
- goto yy50;
+ if (yybm[0+yych] & 32) {
+ goto yy184;
+ }
+ goto yy83;
yy184:
- yych = *++lexer->cursor;
- if (yych == 'o') goto yy246;
- goto yy50;
-yy185:
++lexer->cursor;
- if ((yych = *lexer->cursor) <= 'Z') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
- } else {
- if (yych <= '"') goto yy186;
- if (yych <= '\'') goto yy49;
- }
+ if (lexer->limit <= lexer->cursor) FILL(1);
+ yych = *lexer->cursor;
+ if (yybm[0+yych] & 32) {
+ goto yy184;
+ }
+ if (yych <= ';') {
+ if (yych <= '\'') {
+ if (yych == '!') goto yy82;
+ if (yych <= '"') goto yy180;
+ goto yy82;
} else {
- if (yych <= ',') {
- if (yych <= '+') goto yy49;
+ if (yych <= '+') {
+ if (yych <= ')') goto yy180;
+ goto yy82;
} else {
- if (yych != ';') goto yy49;
+ if (yych <= ',') goto yy180;
+ if (yych <= ':') goto yy82;
+ goto yy180;
}
}
} else {
- if (yych <= 'i') {
- if (yych <= '\\') {
- if (yych >= '\\') goto yy49;
+ if (yych <= 'z') {
+ if (yych <= '[') {
+ if (yych <= 'Z') goto yy82;
+ goto yy180;
} else {
- if (yych <= ']') goto yy186;
- if (yych <= 'h') goto yy49;
- goto yy247;
+ if (yych == ']') goto yy180;
+ goto yy82;
}
} else {
if (yych <= '|') {
- if (yych != '{') goto yy49;
+ if (yych <= '{') goto yy180;
+ goto yy82;
} else {
- if (yych == '~') goto yy49;
+ if (yych == '~') goto yy82;
+ goto yy180;
}
}
}
yy186:
-#line 226 "src/ast-lexer.c"
- { LITERAL(INFINITY); RETURN(FLOAT); }
-#line 1812 "src/prebuilt/ast-lexer-gen.c"
-yy187:
- yych = *++lexer->cursor;
- if (yych == 'u') goto yy248;
- goto yy50;
-yy188:
- yych = *++lexer->cursor;
- if (yych == 'o') goto yy249;
- goto yy50;
-yy189:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy250;
- goto yy50;
-yy190:
- yych = *++lexer->cursor;
- if (yych == 'p') goto yy251;
- goto yy50;
-yy191:
- yych = *++lexer->cursor;
- if (yych == 'o') goto yy253;
- goto yy50;
-yy192:
+ if (yych == 'n') goto yy190;
+ goto yy83;
+yy187:
yych = *++lexer->cursor;
- if (yych == 'u') goto yy254;
- goto yy50;
-yy193:
+ if (yych != 'p') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 242 "src/ast-lexer.c"
- { RETURN(MUT); }
-#line 1844 "src/prebuilt/ast-lexer-gen.c"
-yy195:
+#line 243 "src/ast-lexer.c"
+ { RETURN(NOP); }
+#line 1346 "src/prebuilt/ast-lexer-gen.c"
+yy190:
++lexer->cursor;
if ((yych = *lexer->cursor) <= ';') {
if (yych <= ')') {
if (yych <= '!') {
- if (yych >= '!') goto yy49;
+ if (yych >= '!') goto yy82;
} else {
- if (yych <= '"') goto yy196;
- if (yych <= '\'') goto yy49;
+ if (yych <= '"') goto yy191;
+ if (yych <= '\'') goto yy82;
}
} else {
if (yych <= ',') {
- if (yych <= '+') goto yy49;
+ if (yych <= '+') goto yy82;
} else {
- if (yych <= '9') goto yy49;
- if (yych <= ':') goto yy255;
+ if (yych <= '9') goto yy82;
+ if (yych <= ':') goto yy192;
}
}
} else {
if (yych <= 'z') {
if (yych <= '[') {
- if (yych <= 'Z') goto yy49;
+ if (yych <= 'Z') goto yy82;
} else {
- if (yych != ']') goto yy49;
+ if (yych != ']') goto yy82;
}
} else {
if (yych <= '|') {
- if (yych >= '|') goto yy49;
+ if (yych >= '|') goto yy82;
} else {
- if (yych == '~') goto yy49;
+ if (yych == '~') goto yy82;
}
}
}
-yy196:
+yy191:
#line 227 "src/ast-lexer.c"
{ LITERAL(NAN); RETURN(FLOAT); }
-#line 1881 "src/prebuilt/ast-lexer-gen.c"
-yy197:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 243 "src/ast-lexer.c"
- { RETURN(NOP); }
-#line 1889 "src/prebuilt/ast-lexer-gen.c"
-yy199:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy256;
- goto yy50;
-yy200:
- yych = *++lexer->cursor;
- if (yych == 'p') goto yy257;
- goto yy50;
-yy201:
- yych = *++lexer->cursor;
- if (yych == 'a') goto yy258;
- goto yy50;
-yy202:
- yych = *++lexer->cursor;
- if (yych == 'i') goto yy259;
- goto yy50;
-yy203:
- yych = *++lexer->cursor;
- if (yych == 'u') goto yy260;
- goto yy50;
-yy204:
- yych = *++lexer->cursor;
- if (yych == 'u') goto yy261;
- goto yy50;
-yy205:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy262;
- goto yy50;
-yy206:
- yych = *++lexer->cursor;
- if (yych == '_') goto yy263;
- goto yy50;
-yy207:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy264;
- goto yy50;
-yy208:
- yych = *++lexer->cursor;
- if (yych == 'l') goto yy265;
- goto yy50;
-yy209:
- yych = *++lexer->cursor;
- if (yych == '_') goto yy266;
- goto yy50;
-yy210:
+#line 1383 "src/prebuilt/ast-lexer-gen.c"
+yy192:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy267;
- goto yy50;
-yy211:
+ if (yych != '0') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy269;
- goto yy50;
-yy212:
+ if (yych != 'x') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy271;
- goto yy50;
-yy213:
+ if (yych <= '@') {
+ if (yych <= '/') goto yy83;
+ if (yych >= ':') goto yy83;
+ } else {
+ if (yych <= 'F') goto yy195;
+ if (yych <= '`') goto yy83;
+ if (yych >= 'g') goto yy83;
+ }
+yy195:
++lexer->cursor;
- if ((lexer->limit - lexer->cursor) < 3) FILL(3);
+ if (lexer->limit <= lexer->cursor) FILL(1);
yych = *lexer->cursor;
if (yych <= '@') {
- if (yych <= ',') {
+ if (yych <= '+') {
if (yych <= '"') {
- if (yych == '!') goto yy49;
- goto yy94;
+ if (yych == '!') goto yy82;
+ goto yy191;
} else {
- if (yych <= '\'') goto yy49;
- if (yych <= ')') goto yy94;
- if (yych <= '+') goto yy49;
- goto yy94;
+ if (yych <= '\'') goto yy82;
+ if (yych <= ')') goto yy191;
+ goto yy82;
}
} else {
- if (yych <= '/') {
- if (yych != '.') goto yy49;
+ if (yych <= '9') {
+ if (yych <= ',') goto yy191;
+ if (yych <= '/') goto yy82;
+ goto yy195;
} else {
- if (yych <= '9') goto yy213;
- if (yych == ';') goto yy94;
- goto yy49;
+ if (yych == ';') goto yy191;
+ goto yy82;
}
}
} else {
- if (yych <= 'f') {
+ if (yych <= '`') {
if (yych <= '[') {
- if (yych <= 'F') goto yy213;
- if (yych <= 'Z') goto yy49;
- goto yy94;
+ if (yych <= 'F') goto yy195;
+ if (yych <= 'Z') goto yy82;
+ goto yy191;
} else {
- if (yych == ']') goto yy94;
- if (yych <= '`') goto yy49;
- goto yy213;
+ if (yych == ']') goto yy191;
+ goto yy82;
}
} else {
if (yych <= '{') {
- if (yych == 'p') goto yy217;
- if (yych <= 'z') goto yy49;
- goto yy94;
+ if (yych <= 'f') goto yy195;
+ if (yych <= 'z') goto yy82;
+ goto yy191;
} else {
- if (yych == '}') goto yy94;
- if (yych <= '~') goto yy49;
- goto yy94;
+ if (yych == '}') goto yy191;
+ if (yych <= '~') goto yy82;
+ goto yy191;
}
}
}
-yy215:
+yy197:
+ yych = *++lexer->cursor;
+ if (yych == 'm') goto yy207;
+ goto yy83;
+yy198:
+ yych = *++lexer->cursor;
+ if (yych == 'd') goto yy202;
+ goto yy83;
+yy199:
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if ((lexer->limit - lexer->cursor) < 3) FILL(3);
- yych = *lexer->cursor;
- if (yych <= 'F') {
- if (yych <= '+') {
- if (yych <= '"') {
- if (yych == '!') goto yy49;
- goto yy51;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 242 "src/ast-lexer.c"
+ { RETURN(MUT); }
+#line 1461 "src/prebuilt/ast-lexer-gen.c"
+yy202:
+ yych = *++lexer->cursor;
+ if (yych != 'u') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'l') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'e') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 426 "src/ast-lexer.c"
+ { RETURN(MODULE); }
+#line 1475 "src/prebuilt/ast-lexer-gen.c"
+yy207:
+ yych = *++lexer->cursor;
+ if (yych != 'o') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'r') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'y') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 428 "src/ast-lexer.c"
+ { RETURN(MEMORY); }
+#line 1489 "src/prebuilt/ast-lexer-gen.c"
+yy212:
+ yych = *++lexer->cursor;
+ if (yych == 'c') goto yy214;
+ if (yych != 'o') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych == 'p') goto yy218;
+ goto yy83;
+yy214:
+ yych = *++lexer->cursor;
+ if (yych != 'a') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'l') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 424 "src/ast-lexer.c"
+ { RETURN(LOCAL); }
+#line 1508 "src/prebuilt/ast-lexer-gen.c"
+yy218:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 249 "src/ast-lexer.c"
+ { RETURN(LOOP); }
+#line 1516 "src/prebuilt/ast-lexer-gen.c"
+yy220:
+ yych = *++lexer->cursor;
+ if (yych == '2') goto yy455;
+ goto yy83;
+yy221:
+ yych = *++lexer->cursor;
+ if (yych == '4') goto yy253;
+ goto yy83;
+yy222:
+ ++lexer->cursor;
+ if ((yych = *lexer->cursor) <= 'Z') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
} else {
- if (yych <= '\'') goto yy49;
- if (yych <= ')') goto yy51;
- goto yy49;
+ if (yych <= '"') goto yy223;
+ if (yych <= '\'') goto yy82;
}
} else {
- if (yych <= '9') {
- if (yych <= ',') goto yy51;
- if (yych <= '/') goto yy49;
- goto yy215;
+ if (yych <= ',') {
+ if (yych <= '+') goto yy82;
} else {
- if (yych == ';') goto yy51;
- if (yych <= '@') goto yy49;
- goto yy215;
+ if (yych != ';') goto yy82;
}
}
} else {
- if (yych <= 'o') {
+ if (yych <= '_') {
if (yych <= '\\') {
- if (yych == '[') goto yy51;
- goto yy49;
+ if (yych >= '\\') goto yy82;
} else {
- if (yych <= ']') goto yy51;
- if (yych <= '`') goto yy49;
- if (yych <= 'f') goto yy215;
- goto yy49;
+ if (yych <= ']') goto yy223;
+ if (yych <= '^') goto yy82;
+ goto yy247;
}
} else {
- if (yych <= '{') {
- if (yych <= 'p') goto yy217;
- if (yych <= 'z') goto yy49;
- goto yy51;
+ if (yych <= '|') {
+ if (yych != '{') goto yy82;
} else {
- if (yych == '}') goto yy51;
- if (yych <= '~') goto yy49;
- goto yy51;
+ if (yych == '~') goto yy82;
}
}
}
-yy217:
+yy223:
+#line 245 "src/ast-lexer.c"
+ { RETURN(IF); }
+#line 1562 "src/prebuilt/ast-lexer-gen.c"
+yy224:
yych = *++lexer->cursor;
- if (yych <= ',') {
- if (yych == '+') goto yy272;
- goto yy50;
+ if (yych == 'p') goto yy242;
+ goto yy83;
+yy225:
+ yych = *++lexer->cursor;
+ if (yych <= 'o') {
+ if (yych != 'f') goto yy83;
} else {
- if (yych <= '-') goto yy272;
- if (yych <= '/') goto yy50;
- if (yych <= '9') goto yy273;
- goto yy50;
+ if (yych <= 'p') goto yy229;
+ if (yych == 'v') goto yy228;
+ goto yy83;
}
-yy218:
- yych = *++lexer->cursor;
- if (yych == 'n') goto yy276;
- goto yy50;
-yy219:
- yych = *++lexer->cursor;
- if (yych == 'u') goto yy277;
- goto yy50;
-yy220:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy278;
- goto yy50;
-yy221:
- yych = *++lexer->cursor;
- if (yych == 'k') goto yy279;
- goto yy50;
-yy222:
- yych = *++lexer->cursor;
- if (yych == 'f') goto yy281;
- goto yy50;
-yy223:
- yych = *++lexer->cursor;
- if (yych == 'a') goto yy283;
- goto yy50;
-yy224:
+yy226:
++lexer->cursor;
if ((yych = *lexer->cursor) <= 'Z') {
if (yych <= ')') {
if (yych <= '!') {
- if (yych >= '!') goto yy49;
+ if (yych >= '!') goto yy82;
} else {
- if (yych <= '"') goto yy225;
- if (yych <= '\'') goto yy49;
+ if (yych <= '"') goto yy227;
+ if (yych <= '\'') goto yy82;
}
} else {
if (yych <= ',') {
- if (yych <= '+') goto yy49;
+ if (yych <= '+') goto yy82;
} else {
- if (yych != ';') goto yy49;
+ if (yych != ';') goto yy82;
}
}
} else {
- if (yych <= '_') {
+ if (yych <= 'i') {
if (yych <= '\\') {
- if (yych >= '\\') goto yy49;
+ if (yych >= '\\') goto yy82;
} else {
- if (yych <= ']') goto yy225;
- if (yych <= '^') goto yy49;
- goto yy284;
+ if (yych <= ']') goto yy227;
+ if (yych <= 'h') goto yy82;
+ goto yy237;
}
} else {
if (yych <= '|') {
- if (yych != '{') goto yy49;
+ if (yych != '{') goto yy82;
} else {
- if (yych == '~') goto yy49;
+ if (yych == '~') goto yy82;
}
}
}
-yy225:
-#line 253 "src/ast-lexer.c"
- { RETURN(CALL); }
-#line 2113 "src/prebuilt/ast-lexer-gen.c"
-yy226:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy285;
- goto yy50;
yy227:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 431 "src/ast-lexer.c"
- { RETURN(DATA); }
-#line 2125 "src/prebuilt/ast-lexer-gen.c"
+#line 226 "src/ast-lexer.c"
+ { LITERAL(INFINITY); RETURN(FLOAT); }
+#line 1613 "src/prebuilt/ast-lexer-gen.c"
+yy228:
+ yych = *++lexer->cursor;
+ if (yych == 'o') goto yy233;
+ goto yy83;
yy229:
+ yych = *++lexer->cursor;
+ if (yych != 'u') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 256 "src/ast-lexer.c"
- { RETURN(DROP); }
-#line 2133 "src/prebuilt/ast-lexer-gen.c"
-yy231:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 430 "src/ast-lexer.c"
- { RETURN(ELEM); }
-#line 2141 "src/prebuilt/ast-lexer-gen.c"
+#line 445 "src/ast-lexer.c"
+ { RETURN(INPUT); }
+#line 1629 "src/prebuilt/ast-lexer-gen.c"
yy233:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 248 "src/ast-lexer.c"
- { RETURN(ELSE); }
-#line 2149 "src/prebuilt/ast-lexer-gen.c"
-yy235:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy286;
- goto yy50;
-yy236:
+ if (yych != 'k') goto yy83;
yych = *++lexer->cursor;
- switch (yych) {
- case 'a': goto yy287;
- case 'c': goto yy288;
- case 'd': goto yy289;
- case 'e': goto yy290;
- case 'f': goto yy291;
- case 'g': goto yy292;
- case 'l': goto yy293;
- case 'm': goto yy294;
- case 'n': goto yy295;
- case 'r': goto yy296;
- case 's': goto yy297;
- case 't': goto yy298;
- default: goto yy50;
+ if (yych != 'e') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
+#line 436 "src/ast-lexer.c"
+ { RETURN(INVOKE); }
+#line 1641 "src/prebuilt/ast-lexer-gen.c"
yy237:
yych = *++lexer->cursor;
- switch (yych) {
- case 'a': goto yy299;
- case 'c': goto yy300;
- case 'd': goto yy301;
- case 'e': goto yy302;
- case 'f': goto yy303;
- case 'g': goto yy304;
- case 'l': goto yy305;
- case 'm': goto yy306;
- case 'n': goto yy307;
- case 'p': goto yy308;
- case 'r': goto yy309;
- case 's': goto yy310;
- case 't': goto yy311;
- default: goto yy50;
- }
-yy238:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 421 "src/ast-lexer.c"
- { RETURN(FUNC); }
-#line 2196 "src/prebuilt/ast-lexer-gen.c"
-yy240:
+ if (yych != 'n') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'i') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'g') goto yy312;
- if (yych == 'l') goto yy313;
- goto yy50;
-yy241:
+ if (yych != 'y') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'a') goto yy314;
- goto yy50;
+ if (yybm[0+yych] & 8) {
+ goto yy82;
+ }
+ goto yy227;
yy242:
yych = *++lexer->cursor;
- if (yych == '_') goto yy315;
- goto yy50;
-yy243:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- switch (yych) {
- case 'a': goto yy316;
- case 'c': goto yy317;
- case 'd': goto yy318;
- case 'e': goto yy319;
- case 'g': goto yy320;
- case 'l': goto yy321;
- case 'm': goto yy322;
- case 'n': goto yy323;
- case 'o': goto yy324;
- case 'p': goto yy325;
- case 'r': goto yy326;
- case 's': goto yy327;
- case 't': goto yy328;
- case 'w': goto yy329;
- case 'x': goto yy330;
- default: goto yy50;
- }
-yy244:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- switch (yych) {
- case 'a': goto yy331;
- case 'c': goto yy332;
- case 'd': goto yy333;
- case 'e': goto yy334;
- case 'g': goto yy335;
- case 'l': goto yy336;
- case 'm': goto yy337;
- case 'n': goto yy338;
- case 'o': goto yy339;
- case 'p': goto yy340;
- case 'r': goto yy341;
- case 's': goto yy342;
- case 't': goto yy343;
- case 'x': goto yy344;
- default: goto yy50;
- }
-yy245:
- yych = *++lexer->cursor;
- if (yych == 'l') goto yy345;
- goto yy50;
-yy246:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy346;
- goto yy50;
+ if (yych != 't') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 433 "src/ast-lexer.c"
+ { RETURN(IMPORT); }
+#line 1669 "src/prebuilt/ast-lexer-gen.c"
yy247:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy347;
- goto yy50;
-yy248:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy348;
- goto yy50;
-yy249:
+ if (yych != 'l') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'k') goto yy350;
- goto yy50;
-yy250:
+ if (yych != 's') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'l') goto yy351;
- goto yy50;
-yy251:
+ if (yych != 'e') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 249 "src/ast-lexer.c"
- { RETURN(LOOP); }
-#line 2280 "src/prebuilt/ast-lexer-gen.c"
+#line 246 "src/ast-lexer.c"
+ { RETURN(IF); }
+#line 1685 "src/prebuilt/ast-lexer-gen.c"
yy253:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy353;
- goto yy50;
+ ++lexer->cursor;
+ if ((yych = *lexer->cursor) <= ':') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
+ } else {
+ if (yych <= '"') goto yy254;
+ if (yych <= '\'') goto yy82;
+ }
+ } else {
+ if (yych <= ',') {
+ if (yych <= '+') goto yy82;
+ } else {
+ if (yych == '.') goto yy255;
+ goto yy82;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= 'Z') {
+ if (yych >= '<') goto yy82;
+ } else {
+ if (yych == '\\') goto yy82;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych != '{') goto yy82;
+ } else {
+ if (yych == '~') goto yy82;
+ }
+ }
+ }
yy254:
- yych = *++lexer->cursor;
- if (yych == 'l') goto yy354;
- goto yy50;
+#line 238 "src/ast-lexer.c"
+ { TYPE(I64); RETURN(VALUE_TYPE); }
+#line 1722 "src/prebuilt/ast-lexer-gen.c"
yy255:
yych = *++lexer->cursor;
- if (yych == '0') goto yy355;
- goto yy50;
+ switch (yych) {
+ case 'a': goto yy261;
+ case 'c': goto yy258;
+ case 'd': goto yy263;
+ case 'e': goto yy259;
+ case 'g': goto yy268;
+ case 'l': goto yy256;
+ case 'm': goto yy262;
+ case 'n': goto yy267;
+ case 'o': goto yy265;
+ case 'p': goto yy260;
+ case 'r': goto yy264;
+ case 's': goto yy257;
+ case 't': goto yy269;
+ case 'x': goto yy266;
+ default: goto yy83;
+ }
yy256:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy356;
- goto yy50;
+ if (yych <= 'n') {
+ if (yych == 'e') goto yy419;
+ goto yy83;
+ } else {
+ if (yych <= 'o') goto yy420;
+ if (yych == 't') goto yy421;
+ goto yy83;
+ }
yy257:
yych = *++lexer->cursor;
- if (yych == 'u') goto yy357;
- goto yy50;
+ if (yych <= 's') {
+ if (yych == 'h') goto yy394;
+ goto yy83;
+ } else {
+ if (yych <= 't') goto yy395;
+ if (yych <= 'u') goto yy396;
+ goto yy83;
+ }
yy258:
yych = *++lexer->cursor;
- if (yych == 'm') goto yy358;
- goto yy50;
+ if (yych <= 'n') {
+ if (yych == 'l') goto yy383;
+ goto yy83;
+ } else {
+ if (yych <= 'o') goto yy384;
+ if (yych == 't') goto yy385;
+ goto yy83;
+ }
yy259:
yych = *++lexer->cursor;
- if (yych == 's') goto yy360;
- goto yy50;
+ if (yych == 'q') goto yy361;
+ if (yych == 'x') goto yy363;
+ goto yy83;
yy260:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy361;
- goto yy50;
+ if (yych == 'o') goto yy355;
+ goto yy83;
yy261:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy362;
- goto yy50;
+ if (yych == 'd') goto yy349;
+ if (yych == 'n') goto yy350;
+ goto yy83;
yy262:
yych = *++lexer->cursor;
- if (yych == 'c') goto yy363;
- goto yy50;
+ if (yych == 'u') goto yy346;
+ goto yy83;
yy263:
yych = *++lexer->cursor;
- if (yych == 'g') goto yy364;
- if (yych == 'l') goto yy365;
- goto yy50;
+ if (yych == 'i') goto yy339;
+ goto yy83;
yy264:
yych = *++lexer->cursor;
- if (yych == 't') goto yy366;
- goto yy50;
+ if (yych == 'e') goto yy312;
+ if (yych == 'o') goto yy313;
+ goto yy83;
yy265:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy368;
- goto yy50;
+ if (yych == 'r') goto yy310;
+ goto yy83;
yy266:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy370;
- goto yy50;
+ if (yych == 'o') goto yy307;
+ goto yy83;
yy267:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 247 "src/ast-lexer.c"
- { RETURN(THEN); }
-#line 2345 "src/prebuilt/ast-lexer-gen.c"
+ yych = *++lexer->cursor;
+ if (yych == 'e') goto yy305;
+ goto yy83;
+yy268:
+ yych = *++lexer->cursor;
+ if (yych == 'e') goto yy293;
+ if (yych == 't') goto yy294;
+ goto yy83;
yy269:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 420 "src/ast-lexer.c"
- { RETURN(TYPE); }
-#line 2353 "src/prebuilt/ast-lexer-gen.c"
-yy271:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy371;
- goto yy50;
-yy272:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych <= '/') goto yy50;
- if (yych >= ':') goto yy50;
-yy273:
- ++lexer->cursor;
- if (lexer->limit <= lexer->cursor) FILL(1);
- yych = *lexer->cursor;
- if (yych <= ':') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
- } else {
- if (yych <= '"') goto yy275;
- if (yych <= '\'') goto yy49;
- }
- } else {
- if (yych <= ',') {
- if (yych <= '+') goto yy49;
- } else {
- if (yych <= '/') goto yy49;
- if (yych <= '9') goto yy273;
- goto yy49;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= 'Z') {
- if (yych >= '<') goto yy49;
- } else {
- if (yych == '\\') goto yy49;
- }
- } else {
- if (yych <= '|') {
- if (yych != '{') goto yy49;
- } else {
- if (yych == '~') goto yy49;
- }
- }
- }
+ if (yych != 'u') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'n') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'c') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '_') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy275;
+ if (yych == 'u') goto yy276;
+ goto yy83;
yy275:
-#line 225 "src/ast-lexer.c"
- { LITERAL(HEXFLOAT); RETURN(FLOAT); }
-#line 2401 "src/prebuilt/ast-lexer-gen.c"
+ yych = *++lexer->cursor;
+ if (yych == '/') goto yy285;
+ goto yy83;
yy276:
yych = *++lexer->cursor;
- if (yych == '=') goto yy372;
- goto yy50;
-yy277:
+ if (yych != '/') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'n') goto yy373;
- goto yy50;
-yy278:
+ if (yych != 'f') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy374;
- goto yy50;
+ if (yych == '3') goto yy279;
+ if (yych == '6') goto yy280;
+ goto yy83;
yy279:
+ yych = *++lexer->cursor;
+ if (yych == '2') goto yy283;
+ goto yy83;
+yy280:
+ yych = *++lexer->cursor;
+ if (yych != '4') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 244 "src/ast-lexer.c"
- { RETURN(BLOCK); }
-#line 2421 "src/prebuilt/ast-lexer-gen.c"
-yy281:
+#line 401 "src/ast-lexer.c"
+ { OPCODE(I64_TRUNC_U_F64); RETURN(CONVERT); }
+#line 1857 "src/prebuilt/ast-lexer-gen.c"
+yy283:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 251 "src/ast-lexer.c"
- { RETURN(BR_IF); }
-#line 2429 "src/prebuilt/ast-lexer-gen.c"
-yy283:
- yych = *++lexer->cursor;
- if (yych == 'b') goto yy375;
- goto yy50;
-yy284:
- yych = *++lexer->cursor;
- if (yych == 'i') goto yy376;
- goto yy50;
+#line 399 "src/ast-lexer.c"
+ { OPCODE(I64_TRUNC_U_F32); RETURN(CONVERT); }
+#line 1865 "src/prebuilt/ast-lexer-gen.c"
yy285:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy377;
- goto yy50;
-yy286:
+ if (yych != 'f') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy378;
- goto yy50;
+ if (yych == '3') goto yy287;
+ if (yych == '6') goto yy288;
+ goto yy83;
yy287:
yych = *++lexer->cursor;
- if (yych == 'b') goto yy380;
- if (yych == 'd') goto yy381;
- goto yy50;
+ if (yych == '2') goto yy291;
+ goto yy83;
yy288:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy382;
- if (yych == 'o') goto yy383;
- goto yy50;
-yy289:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy384;
- if (yych == 'i') goto yy385;
- goto yy50;
-yy290:
- yych = *++lexer->cursor;
- if (yych == 'q') goto yy386;
- goto yy50;
+ if (yych != '4') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 397 "src/ast-lexer.c"
+ { OPCODE(I64_TRUNC_S_F64); RETURN(CONVERT); }
+#line 1886 "src/prebuilt/ast-lexer-gen.c"
yy291:
- yych = *++lexer->cursor;
- if (yych == 'l') goto yy388;
- goto yy50;
-yy292:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy389;
- if (yych == 't') goto yy391;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 395 "src/ast-lexer.c"
+ { OPCODE(I64_TRUNC_S_F32); RETURN(CONVERT); }
+#line 1894 "src/prebuilt/ast-lexer-gen.c"
yy293:
yych = *++lexer->cursor;
- if (yych <= 'n') {
- if (yych == 'e') goto yy393;
- goto yy50;
- } else {
- if (yych <= 'o') goto yy395;
- if (yych == 't') goto yy396;
- goto yy50;
- }
+ if (yych == '_') goto yy300;
+ goto yy83;
yy294:
yych = *++lexer->cursor;
- if (yych <= 'h') {
- if (yych == 'a') goto yy398;
- goto yy50;
- } else {
- if (yych <= 'i') goto yy399;
- if (yych == 'u') goto yy400;
- goto yy50;
- }
-yy295:
+ if (yych != '_') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy401;
- goto yy50;
+ if (yych == 's') goto yy296;
+ if (yych == 'u') goto yy298;
+ goto yy83;
yy296:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy403;
- goto yy50;
-yy297:
- yych = *++lexer->cursor;
- if (yych <= 's') {
- if (yych == 'q') goto yy404;
- goto yy50;
- } else {
- if (yych <= 't') goto yy405;
- if (yych <= 'u') goto yy406;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
+#line 372 "src/ast-lexer.c"
+ { OPCODE(I64_GT_S); RETURN(COMPARE); }
+#line 1913 "src/prebuilt/ast-lexer-gen.c"
yy298:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy407;
- goto yy50;
-yy299:
- yych = *++lexer->cursor;
- if (yych == 'b') goto yy408;
- if (yych == 'd') goto yy409;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 374 "src/ast-lexer.c"
+ { OPCODE(I64_GT_U); RETURN(COMPARE); }
+#line 1921 "src/prebuilt/ast-lexer-gen.c"
yy300:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy410;
- if (yych == 'o') goto yy411;
- goto yy50;
+ if (yych == 's') goto yy301;
+ if (yych == 'u') goto yy303;
+ goto yy83;
yy301:
- yych = *++lexer->cursor;
- if (yych == 'i') goto yy412;
- goto yy50;
-yy302:
- yych = *++lexer->cursor;
- if (yych == 'q') goto yy413;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 376 "src/ast-lexer.c"
+ { OPCODE(I64_GE_S); RETURN(COMPARE); }
+#line 1934 "src/prebuilt/ast-lexer-gen.c"
yy303:
- yych = *++lexer->cursor;
- if (yych == 'l') goto yy415;
- goto yy50;
-yy304:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy416;
- if (yych == 't') goto yy418;
- goto yy50;
-yy305:
- yych = *++lexer->cursor;
- if (yych <= 'n') {
- if (yych == 'e') goto yy420;
- goto yy50;
- } else {
- if (yych <= 'o') goto yy422;
- if (yych == 't') goto yy423;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy306:
- yych = *++lexer->cursor;
- if (yych <= 'h') {
- if (yych == 'a') goto yy425;
- goto yy50;
- } else {
- if (yych <= 'i') goto yy426;
- if (yych == 'u') goto yy427;
- goto yy50;
+#line 378 "src/ast-lexer.c"
+ { OPCODE(I64_GE_U); RETURN(COMPARE); }
+#line 1942 "src/prebuilt/ast-lexer-gen.c"
+yy305:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
+#line 362 "src/ast-lexer.c"
+ { OPCODE(I64_NE); RETURN(COMPARE); }
+#line 1950 "src/prebuilt/ast-lexer-gen.c"
yy307:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy428;
- goto yy50;
-yy308:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy430;
- goto yy50;
-yy309:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy431;
- goto yy50;
+ if (yych != 'r') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 334 "src/ast-lexer.c"
+ { OPCODE(I64_XOR); RETURN(BINARY); }
+#line 1960 "src/prebuilt/ast-lexer-gen.c"
yy310:
- yych = *++lexer->cursor;
- if (yych <= 's') {
- if (yych == 'q') goto yy432;
- goto yy50;
- } else {
- if (yych <= 't') goto yy433;
- if (yych <= 'u') goto yy434;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy311:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy435;
- goto yy50;
+#line 332 "src/ast-lexer.c"
+ { OPCODE(I64_OR); RETURN(BINARY); }
+#line 1968 "src/prebuilt/ast-lexer-gen.c"
yy312:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy436;
- goto yy50;
+ if (yych == 'i') goto yy320;
+ if (yych == 'm') goto yy319;
+ goto yy83;
yy313:
yych = *++lexer->cursor;
- if (yych == 'o') goto yy437;
- goto yy50;
-yy314:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'l') goto yy438;
- goto yy50;
+ if (yych == 'l') goto yy315;
+ if (yych == 'r') goto yy317;
+ goto yy83;
yy315:
- yych = *++lexer->cursor;
- if (yych == 'm') goto yy440;
- goto yy50;
-yy316:
- yych = *++lexer->cursor;
- if (yych == 'd') goto yy441;
- if (yych == 'n') goto yy442;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 342 "src/ast-lexer.c"
+ { OPCODE(I64_ROTL); RETURN(BINARY); }
+#line 1988 "src/prebuilt/ast-lexer-gen.c"
yy317:
- yych = *++lexer->cursor;
- if (yych <= 'n') {
- if (yych == 'l') goto yy443;
- goto yy50;
- } else {
- if (yych <= 'o') goto yy444;
- if (yych == 't') goto yy445;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy318:
- yych = *++lexer->cursor;
- if (yych == 'i') goto yy446;
- goto yy50;
+#line 344 "src/ast-lexer.c"
+ { OPCODE(I64_ROTR); RETURN(BINARY); }
+#line 1996 "src/prebuilt/ast-lexer-gen.c"
yy319:
yych = *++lexer->cursor;
- if (yych == 'q') goto yy447;
- goto yy50;
+ if (yych == '_') goto yy334;
+ goto yy83;
yy320:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy449;
- if (yych == 't') goto yy450;
- goto yy50;
-yy321:
+ if (yych != 'n') goto yy83;
yych = *++lexer->cursor;
- if (yych <= 'n') {
- if (yych == 'e') goto yy451;
- goto yy50;
- } else {
- if (yych <= 'o') goto yy452;
- if (yych == 't') goto yy453;
- goto yy50;
- }
-yy322:
- yych = *++lexer->cursor;
- if (yych == 'u') goto yy454;
- goto yy50;
-yy323:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy455;
- goto yy50;
-yy324:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy457;
- goto yy50;
-yy325:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy459;
- goto yy50;
-yy326:
+ if (yych != 'p') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy460;
- if (yych == 'o') goto yy461;
- goto yy50;
-yy327:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych <= 's') {
- if (yych == 'h') goto yy462;
- goto yy50;
- } else {
- if (yych <= 't') goto yy463;
- if (yych <= 'u') goto yy464;
- goto yy50;
- }
-yy328:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy465;
- goto yy50;
-yy329:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy466;
- goto yy50;
-yy330:
+ if (yych != '/') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy467;
- goto yy50;
-yy331:
+ if (yych != 'f') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'd') goto yy468;
- if (yych == 'n') goto yy469;
- goto yy50;
-yy332:
+ if (yych != '6') goto yy83;
yych = *++lexer->cursor;
- if (yych <= 'n') {
- if (yych == 'l') goto yy470;
- goto yy50;
- } else {
- if (yych <= 'o') goto yy471;
- if (yych == 't') goto yy472;
- goto yy50;
+ if (yych != '4') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy333:
- yych = *++lexer->cursor;
- if (yych == 'i') goto yy473;
- goto yy50;
+#line 415 "src/ast-lexer.c"
+ { OPCODE(I64_REINTERPRET_F64); RETURN(CONVERT); }
+#line 2032 "src/prebuilt/ast-lexer-gen.c"
yy334:
yych = *++lexer->cursor;
- if (yych == 'q') goto yy474;
- if (yych == 'x') goto yy476;
- goto yy50;
+ if (yych == 's') goto yy335;
+ if (yych == 'u') goto yy337;
+ goto yy83;
yy335:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy477;
- if (yych == 't') goto yy478;
- goto yy50;
-yy336:
- yych = *++lexer->cursor;
- if (yych <= 'n') {
- if (yych == 'e') goto yy479;
- goto yy50;
- } else {
- if (yych <= 'o') goto yy480;
- if (yych == 't') goto yy481;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
+#line 326 "src/ast-lexer.c"
+ { OPCODE(I64_REM_S); RETURN(BINARY); }
+#line 2045 "src/prebuilt/ast-lexer-gen.c"
yy337:
- yych = *++lexer->cursor;
- if (yych == 'u') goto yy482;
- goto yy50;
-yy338:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy483;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 328 "src/ast-lexer.c"
+ { OPCODE(I64_REM_U); RETURN(BINARY); }
+#line 2053 "src/prebuilt/ast-lexer-gen.c"
yy339:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy485;
- goto yy50;
-yy340:
+ if (yych != 'v') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy487;
- goto yy50;
-yy341:
+ if (yych != '_') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy488;
- if (yych == 'o') goto yy489;
- goto yy50;
+ if (yych == 's') goto yy342;
+ if (yych == 'u') goto yy344;
+ goto yy83;
yy342:
- yych = *++lexer->cursor;
- if (yych <= 's') {
- if (yych == 'h') goto yy490;
- goto yy50;
- } else {
- if (yych <= 't') goto yy491;
- if (yych <= 'u') goto yy492;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy343:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy493;
- goto yy50;
+#line 322 "src/ast-lexer.c"
+ { OPCODE(I64_DIV_S); RETURN(BINARY); }
+#line 2070 "src/prebuilt/ast-lexer-gen.c"
yy344:
- yych = *++lexer->cursor;
- if (yych == 'o') goto yy494;
- goto yy50;
-yy345:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy495;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 324 "src/ast-lexer.c"
+ { OPCODE(I64_DIV_U); RETURN(BINARY); }
+#line 2078 "src/prebuilt/ast-lexer-gen.c"
yy346:
yych = *++lexer->cursor;
- if (yych == 't') goto yy496;
- goto yy50;
-yy347:
- yych = *++lexer->cursor;
- if (yych == 'i') goto yy498;
- goto yy50;
-yy348:
+ if (yych != 'l') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 444 "src/ast-lexer.c"
- { RETURN(INPUT); }
-#line 2783 "src/prebuilt/ast-lexer-gen.c"
+#line 320 "src/ast-lexer.c"
+ { OPCODE(I64_MUL); RETURN(BINARY); }
+#line 2088 "src/prebuilt/ast-lexer-gen.c"
+yy349:
+ yych = *++lexer->cursor;
+ if (yych == 'd') goto yy353;
+ goto yy83;
yy350:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy499;
- goto yy50;
-yy351:
+ if (yych != 'd') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 424 "src/ast-lexer.c"
- { RETURN(LOCAL); }
-#line 2795 "src/prebuilt/ast-lexer-gen.c"
+#line 330 "src/ast-lexer.c"
+ { OPCODE(I64_AND); RETURN(BINARY); }
+#line 2102 "src/prebuilt/ast-lexer-gen.c"
yy353:
- yych = *++lexer->cursor;
- if (yych == 'y') goto yy501;
- goto yy50;
-yy354:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy503;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 316 "src/ast-lexer.c"
+ { OPCODE(I64_ADD); RETURN(BINARY); }
+#line 2110 "src/prebuilt/ast-lexer-gen.c"
yy355:
yych = *++lexer->cursor;
- if (yych == 'x') goto yy505;
- goto yy50;
-yy356:
+ if (yych != 'p') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'c') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy506;
- goto yy50;
-yy357:
+ if (yych != 'n') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy508;
- goto yy50;
-yy358:
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 422 "src/ast-lexer.c"
- { RETURN(PARAM); }
-#line 2823 "src/prebuilt/ast-lexer-gen.c"
-yy360:
- yych = *++lexer->cursor;
- if (yych == 't') goto yy510;
- goto yy50;
+#line 300 "src/ast-lexer.c"
+ { OPCODE(I64_POPCNT); RETURN(UNARY); }
+#line 2126 "src/prebuilt/ast-lexer-gen.c"
yy361:
- yych = *++lexer->cursor;
- if (yych == 't') goto yy511;
- goto yy50;
+ ++lexer->cursor;
+ if ((yych = *lexer->cursor) <= 'Z') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
+ } else {
+ if (yych <= '"') goto yy362;
+ if (yych <= '\'') goto yy82;
+ }
+ } else {
+ if (yych <= ',') {
+ if (yych <= '+') goto yy82;
+ } else {
+ if (yych != ';') goto yy82;
+ }
+ }
+ } else {
+ if (yych <= 'z') {
+ if (yych <= '\\') {
+ if (yych >= '\\') goto yy82;
+ } else {
+ if (yych <= ']') goto yy362;
+ if (yych <= 'y') goto yy82;
+ goto yy381;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych >= '|') goto yy82;
+ } else {
+ if (yych == '~') goto yy82;
+ }
+ }
+ }
yy362:
- yych = *++lexer->cursor;
- if (yych == 'n') goto yy513;
- goto yy50;
+#line 360 "src/ast-lexer.c"
+ { OPCODE(I64_EQ); RETURN(COMPARE); }
+#line 2164 "src/prebuilt/ast-lexer-gen.c"
yy363:
yych = *++lexer->cursor;
- if (yych == 't') goto yy515;
- goto yy50;
-yy364:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'l') goto yy517;
- goto yy50;
-yy365:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy518;
- goto yy50;
-yy366:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 429 "src/ast-lexer.c"
- { RETURN(START); }
-#line 2855 "src/prebuilt/ast-lexer-gen.c"
-yy368:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 427 "src/ast-lexer.c"
- { RETURN(TABLE); }
-#line 2863 "src/prebuilt/ast-lexer-gen.c"
-yy370:
+ if (yych != 'n') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy519;
- goto yy50;
-yy371:
+ if (yych != 'd') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'c') goto yy520;
- goto yy50;
-yy372:
+ if (yych != '_') goto yy83;
yych = *++lexer->cursor;
- if (yych <= '/') goto yy50;
- if (yych <= '0') goto yy521;
- if (yych <= '9') goto yy523;
- goto yy50;
-yy373:
+ if (yych == 's') goto yy369;
+ if (yych == 'u') goto yy370;
+ goto yy83;
+yy369:
yych = *++lexer->cursor;
- if (yych == 'c') goto yy525;
- goto yy50;
-yy374:
+ if (yych == '/') goto yy376;
+ goto yy83;
+yy370:
yych = *++lexer->cursor;
- if (yych == '_') goto yy527;
- goto yy50;
-yy375:
+ if (yych != '/') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'l') goto yy528;
- goto yy50;
-yy376:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych <= 'l') goto yy50;
- if (yych <= 'm') goto yy529;
- if (yych <= 'n') goto yy530;
- goto yy50;
-yy377:
+ if (yych != '3') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy531;
- goto yy50;
-yy378:
+ if (yych != '2') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 434 "src/ast-lexer.c"
- { RETURN(EXPORT); }
-#line 2907 "src/prebuilt/ast-lexer-gen.c"
-yy380:
+#line 392 "src/ast-lexer.c"
+ { OPCODE(I64_EXTEND_U_I32); RETURN(CONVERT); }
+#line 2199 "src/prebuilt/ast-lexer-gen.c"
+yy376:
yych = *++lexer->cursor;
- if (yych == 's') goto yy532;
- goto yy50;
-yy381:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'd') goto yy534;
- goto yy50;
-yy382:
+ if (yych != '3') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'i') goto yy536;
- goto yy50;
+ if (yych != '2') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 391 "src/ast-lexer.c"
+ { OPCODE(I64_EXTEND_S_I32); RETURN(CONVERT); }
+#line 2213 "src/prebuilt/ast-lexer-gen.c"
+yy381:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 294 "src/ast-lexer.c"
+ { OPCODE(I64_EQZ); RETURN(CONVERT); }
+#line 2221 "src/prebuilt/ast-lexer-gen.c"
yy383:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy537;
- if (yych == 'p') goto yy538;
- goto yy50;
+ if (yych == 'z') goto yy392;
+ goto yy83;
yy384:
yych = *++lexer->cursor;
- if (yych == 'm') goto yy539;
- goto yy50;
+ if (yych == 'n') goto yy388;
+ goto yy83;
yy385:
yych = *++lexer->cursor;
- if (yych == 'v') goto yy540;
- goto yy50;
-yy386:
+ if (yych != 'z') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 379 "src/ast-lexer.c"
- { OPCODE(F32_EQ); RETURN(COMPARE); }
-#line 2940 "src/prebuilt/ast-lexer-gen.c"
+#line 298 "src/ast-lexer.c"
+ { OPCODE(I64_CTZ); RETURN(UNARY); }
+#line 2239 "src/prebuilt/ast-lexer-gen.c"
yy388:
yych = *++lexer->cursor;
- if (yych == 'o') goto yy542;
- goto yy50;
-yy389:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 389 "src/ast-lexer.c"
- { OPCODE(F32_GE); RETURN(COMPARE); }
-#line 2952 "src/prebuilt/ast-lexer-gen.c"
-yy391:
+ if (yych != 's') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 387 "src/ast-lexer.c"
- { OPCODE(F32_GT); RETURN(COMPARE); }
-#line 2960 "src/prebuilt/ast-lexer-gen.c"
-yy393:
+#line 290 "src/ast-lexer.c"
+ { TYPE(I64); RETURN(CONST); }
+#line 2251 "src/prebuilt/ast-lexer-gen.c"
+yy392:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 385 "src/ast-lexer.c"
- { OPCODE(F32_LE); RETURN(COMPARE); }
-#line 2968 "src/prebuilt/ast-lexer-gen.c"
+#line 296 "src/ast-lexer.c"
+ { OPCODE(I64_CLZ); RETURN(UNARY); }
+#line 2259 "src/prebuilt/ast-lexer-gen.c"
+yy394:
+ yych = *++lexer->cursor;
+ if (yych == 'l') goto yy411;
+ if (yych == 'r') goto yy413;
+ goto yy83;
yy395:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy543;
- goto yy50;
+ if (yych == 'o') goto yy399;
+ goto yy83;
yy396:
+ yych = *++lexer->cursor;
+ if (yych != 'b') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 383 "src/ast-lexer.c"
- { OPCODE(F32_LT); RETURN(COMPARE); }
-#line 2980 "src/prebuilt/ast-lexer-gen.c"
-yy398:
- yych = *++lexer->cursor;
- if (yych == 'x') goto yy544;
- goto yy50;
+#line 318 "src/ast-lexer.c"
+ { OPCODE(I64_SUB); RETURN(BINARY); }
+#line 2278 "src/prebuilt/ast-lexer-gen.c"
yy399:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy546;
- goto yy50;
-yy400:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'l') goto yy548;
- goto yy50;
-yy401:
+ if (yych != 'e') goto yy83;
++lexer->cursor;
- if ((yych = *lexer->cursor) <= '[') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
+ if ((yych = *lexer->cursor) <= '7') {
+ if (yych <= '+') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy82;
} else {
- if (yych <= '"') goto yy402;
- if (yych <= '\'') goto yy49;
+ if (yych <= '\'') goto yy82;
+ if (yych >= '*') goto yy82;
}
} else {
- if (yych <= ':') {
- if (yych != ',') goto yy49;
+ if (yych <= '1') {
+ if (yych <= ',') goto yy402;
+ if (yych <= '0') goto yy82;
+ goto yy403;
} else {
- if (yych <= ';') goto yy402;
- if (yych <= 'Z') goto yy49;
+ if (yych == '3') goto yy404;
+ goto yy82;
}
}
} else {
- if (yych <= 'g') {
- if (yych <= '`') {
- if (yych != ']') goto yy49;
+ if (yych <= '\\') {
+ if (yych <= ';') {
+ if (yych <= '8') goto yy405;
+ if (yych <= ':') goto yy82;
} else {
- if (yych <= 'a') goto yy550;
- if (yych <= 'f') goto yy49;
- goto yy551;
+ if (yych != '[') goto yy82;
}
} else {
- if (yych <= '|') {
- if (yych != '{') goto yy49;
+ if (yych <= '{') {
+ if (yych <= ']') goto yy402;
+ if (yych <= 'z') goto yy82;
} else {
- if (yych == '~') goto yy49;
+ if (yych == '}') goto yy402;
+ if (yych <= '~') goto yy82;
}
}
}
yy402:
-#line 381 "src/ast-lexer.c"
- { OPCODE(F32_NE); RETURN(COMPARE); }
-#line 3031 "src/prebuilt/ast-lexer-gen.c"
+#line 269 "src/ast-lexer.c"
+ { OPCODE(I64_STORE); RETURN(STORE); }
+#line 2324 "src/prebuilt/ast-lexer-gen.c"
yy403:
yych = *++lexer->cursor;
- if (yych == 'i') goto yy553;
- goto yy50;
+ if (yych == '6') goto yy409;
+ goto yy83;
yy404:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy554;
- goto yy50;
+ if (yych == '2') goto yy407;
+ goto yy83;
yy405:
- yych = *++lexer->cursor;
- if (yych == 'o') goto yy555;
- goto yy50;
-yy406:
- yych = *++lexer->cursor;
- if (yych == 'b') goto yy556;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 283 "src/ast-lexer.c"
+ { OPCODE(I64_STORE8); RETURN(STORE); }
+#line 2340 "src/prebuilt/ast-lexer-gen.c"
yy407:
- yych = *++lexer->cursor;
- if (yych == 'u') goto yy558;
- goto yy50;
-yy408:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy559;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 286 "src/ast-lexer.c"
+ { OPCODE(I64_STORE32); RETURN(STORE); }
+#line 2348 "src/prebuilt/ast-lexer-gen.c"
yy409:
- yych = *++lexer->cursor;
- if (yych == 'd') goto yy561;
- goto yy50;
-yy410:
- yych = *++lexer->cursor;
- if (yych == 'i') goto yy563;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 285 "src/ast-lexer.c"
+ { OPCODE(I64_STORE16); RETURN(STORE); }
+#line 2356 "src/prebuilt/ast-lexer-gen.c"
yy411:
- yych = *++lexer->cursor;
- if (yych == 'n') goto yy564;
- if (yych == 'p') goto yy565;
- goto yy50;
-yy412:
- yych = *++lexer->cursor;
- if (yych == 'v') goto yy566;
- goto yy50;
-yy413:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 380 "src/ast-lexer.c"
- { OPCODE(F64_EQ); RETURN(COMPARE); }
-#line 3080 "src/prebuilt/ast-lexer-gen.c"
-yy415:
+#line 336 "src/ast-lexer.c"
+ { OPCODE(I64_SHL); RETURN(BINARY); }
+#line 2364 "src/prebuilt/ast-lexer-gen.c"
+yy413:
+ yych = *++lexer->cursor;
+ if (yych != '_') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy568;
- goto yy50;
-yy416:
+ if (yych == 's') goto yy415;
+ if (yych == 'u') goto yy417;
+ goto yy83;
+yy415:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 390 "src/ast-lexer.c"
- { OPCODE(F64_GE); RETURN(COMPARE); }
-#line 3092 "src/prebuilt/ast-lexer-gen.c"
-yy418:
+#line 338 "src/ast-lexer.c"
+ { OPCODE(I64_SHR_S); RETURN(BINARY); }
+#line 2379 "src/prebuilt/ast-lexer-gen.c"
+yy417:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 388 "src/ast-lexer.c"
- { OPCODE(F64_GT); RETURN(COMPARE); }
-#line 3100 "src/prebuilt/ast-lexer-gen.c"
+#line 340 "src/ast-lexer.c"
+ { OPCODE(I64_SHR_U); RETURN(BINARY); }
+#line 2387 "src/prebuilt/ast-lexer-gen.c"
+yy419:
+ yych = *++lexer->cursor;
+ if (yych == '_') goto yy450;
+ goto yy83;
yy420:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 386 "src/ast-lexer.c"
- { OPCODE(F64_LE); RETURN(COMPARE); }
-#line 3108 "src/prebuilt/ast-lexer-gen.c"
-yy422:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy569;
- goto yy50;
+ if (yych == 'a') goto yy427;
+ goto yy83;
+yy421:
+ yych = *++lexer->cursor;
+ if (yych != '_') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy423;
+ if (yych == 'u') goto yy425;
+ goto yy83;
yy423:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 384 "src/ast-lexer.c"
- { OPCODE(F64_LT); RETURN(COMPARE); }
-#line 3120 "src/prebuilt/ast-lexer-gen.c"
+#line 364 "src/ast-lexer.c"
+ { OPCODE(I64_LT_S); RETURN(COMPARE); }
+#line 2410 "src/prebuilt/ast-lexer-gen.c"
yy425:
- yych = *++lexer->cursor;
- if (yych == 'x') goto yy570;
- goto yy50;
-yy426:
- yych = *++lexer->cursor;
- if (yych == 'n') goto yy572;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 366 "src/ast-lexer.c"
+ { OPCODE(I64_LT_U); RETURN(COMPARE); }
+#line 2418 "src/prebuilt/ast-lexer-gen.c"
yy427:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy574;
- goto yy50;
-yy428:
+ if (yych != 'd') goto yy83;
++lexer->cursor;
- if ((yych = *lexer->cursor) <= '[') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
+ if ((yych = *lexer->cursor) <= '7') {
+ if (yych <= '+') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy82;
} else {
- if (yych <= '"') goto yy429;
- if (yych <= '\'') goto yy49;
+ if (yych <= '\'') goto yy82;
+ if (yych >= '*') goto yy82;
}
} else {
- if (yych <= ':') {
- if (yych != ',') goto yy49;
+ if (yych <= '1') {
+ if (yych <= ',') goto yy429;
+ if (yych <= '0') goto yy82;
+ goto yy431;
} else {
- if (yych <= ';') goto yy429;
- if (yych <= 'Z') goto yy49;
+ if (yych == '3') goto yy432;
+ goto yy82;
}
}
} else {
- if (yych <= 'g') {
- if (yych <= '`') {
- if (yych != ']') goto yy49;
+ if (yych <= '\\') {
+ if (yych <= ';') {
+ if (yych <= '8') goto yy430;
+ if (yych <= ':') goto yy82;
} else {
- if (yych <= 'a') goto yy576;
- if (yych <= 'f') goto yy49;
- goto yy577;
+ if (yych != '[') goto yy82;
}
} else {
- if (yych <= '|') {
- if (yych != '{') goto yy49;
+ if (yych <= '{') {
+ if (yych <= ']') goto yy429;
+ if (yych <= 'z') goto yy82;
} else {
- if (yych == '~') goto yy49;
+ if (yych == '}') goto yy429;
+ if (yych <= '~') goto yy82;
}
}
}
yy429:
-#line 382 "src/ast-lexer.c"
- { OPCODE(F64_NE); RETURN(COMPARE); }
-#line 3171 "src/prebuilt/ast-lexer-gen.c"
+#line 265 "src/ast-lexer.c"
+ { OPCODE(I64_LOAD); RETURN(LOAD); }
+#line 2462 "src/prebuilt/ast-lexer-gen.c"
yy430:
yych = *++lexer->cursor;
- if (yych == 'o') goto yy579;
- goto yy50;
+ if (yych == '_') goto yy445;
+ goto yy83;
yy431:
yych = *++lexer->cursor;
- if (yych == 'i') goto yy580;
- goto yy50;
+ if (yych == '6') goto yy439;
+ goto yy83;
yy432:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy581;
- goto yy50;
-yy433:
+ if (yych != '2') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy582;
- goto yy50;
-yy434:
+ if (yych != '_') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'b') goto yy583;
- goto yy50;
+ if (yych == 's') goto yy435;
+ if (yych == 'u') goto yy437;
+ goto yy83;
yy435:
- yych = *++lexer->cursor;
- if (yych == 'u') goto yy585;
- goto yy50;
-yy436:
- yych = *++lexer->cursor;
- if (yych == 'o') goto yy586;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 280 "src/ast-lexer.c"
+ { OPCODE(I64_LOAD32_S); RETURN(LOAD); }
+#line 2487 "src/prebuilt/ast-lexer-gen.c"
yy437:
- yych = *++lexer->cursor;
- if (yych == 'c') goto yy587;
- goto yy50;
-yy438:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 425 "src/ast-lexer.c"
- { RETURN(GLOBAL); }
-#line 3211 "src/prebuilt/ast-lexer-gen.c"
-yy440:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy588;
- goto yy50;
-yy441:
+#line 281 "src/ast-lexer.c"
+ { OPCODE(I64_LOAD32_U); RETURN(LOAD); }
+#line 2495 "src/prebuilt/ast-lexer-gen.c"
+yy439:
yych = *++lexer->cursor;
- if (yych == 'd') goto yy589;
- goto yy50;
-yy442:
+ if (yych != '_') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'd') goto yy591;
- goto yy50;
+ if (yych == 's') goto yy441;
+ if (yych == 'u') goto yy443;
+ goto yy83;
+yy441:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 277 "src/ast-lexer.c"
+ { OPCODE(I64_LOAD16_S); RETURN(LOAD); }
+#line 2510 "src/prebuilt/ast-lexer-gen.c"
yy443:
- yych = *++lexer->cursor;
- if (yych == 'z') goto yy593;
- goto yy50;
-yy444:
- yych = *++lexer->cursor;
- if (yych == 'n') goto yy595;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 279 "src/ast-lexer.c"
+ { OPCODE(I64_LOAD16_U); RETURN(LOAD); }
+#line 2518 "src/prebuilt/ast-lexer-gen.c"
yy445:
yych = *++lexer->cursor;
- if (yych == 'z') goto yy596;
- goto yy50;
+ if (yych == 's') goto yy446;
+ if (yych == 'u') goto yy448;
+ goto yy83;
yy446:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 273 "src/ast-lexer.c"
+ { OPCODE(I64_LOAD8_S); RETURN(LOAD); }
+#line 2531 "src/prebuilt/ast-lexer-gen.c"
+yy448:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 275 "src/ast-lexer.c"
+ { OPCODE(I64_LOAD8_U); RETURN(LOAD); }
+#line 2539 "src/prebuilt/ast-lexer-gen.c"
+yy450:
yych = *++lexer->cursor;
- if (yych == 'v') goto yy598;
- goto yy50;
-yy447:
+ if (yych == 's') goto yy451;
+ if (yych == 'u') goto yy453;
+ goto yy83;
+yy451:
++lexer->cursor;
- if ((yych = *lexer->cursor) <= 'Z') {
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 368 "src/ast-lexer.c"
+ { OPCODE(I64_LE_S); RETURN(COMPARE); }
+#line 2552 "src/prebuilt/ast-lexer-gen.c"
+yy453:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 370 "src/ast-lexer.c"
+ { OPCODE(I64_LE_U); RETURN(COMPARE); }
+#line 2560 "src/prebuilt/ast-lexer-gen.c"
+yy455:
+ ++lexer->cursor;
+ if ((yych = *lexer->cursor) <= ':') {
if (yych <= ')') {
if (yych <= '!') {
- if (yych >= '!') goto yy49;
+ if (yych >= '!') goto yy82;
} else {
- if (yych <= '"') goto yy448;
- if (yych <= '\'') goto yy49;
+ if (yych <= '"') goto yy456;
+ if (yych <= '\'') goto yy82;
}
} else {
if (yych <= ',') {
- if (yych <= '+') goto yy49;
+ if (yych <= '+') goto yy82;
} else {
- if (yych != ';') goto yy49;
+ if (yych == '.') goto yy457;
+ goto yy82;
}
}
} else {
- if (yych <= 'z') {
- if (yych <= '\\') {
- if (yych >= '\\') goto yy49;
+ if (yych <= ']') {
+ if (yych <= 'Z') {
+ if (yych >= '<') goto yy82;
} else {
- if (yych <= ']') goto yy448;
- if (yych <= 'y') goto yy49;
- goto yy599;
+ if (yych == '\\') goto yy82;
}
} else {
if (yych <= '|') {
- if (yych >= '|') goto yy49;
+ if (yych != '{') goto yy82;
} else {
- if (yych == '~') goto yy49;
+ if (yych == '~') goto yy82;
}
}
}
-yy448:
-#line 359 "src/ast-lexer.c"
- { OPCODE(I32_EQ); RETURN(COMPARE); }
-#line 3277 "src/prebuilt/ast-lexer-gen.c"
-yy449:
- yych = *++lexer->cursor;
- if (yych == '_') goto yy601;
- goto yy50;
-yy450:
- yych = *++lexer->cursor;
- if (yych == '_') goto yy602;
- goto yy50;
-yy451:
- yych = *++lexer->cursor;
- if (yych == '_') goto yy603;
- goto yy50;
-yy452:
- yych = *++lexer->cursor;
- if (yych == 'a') goto yy604;
- goto yy50;
-yy453:
+yy456:
+#line 237 "src/ast-lexer.c"
+ { TYPE(I32); RETURN(VALUE_TYPE); }
+#line 2597 "src/prebuilt/ast-lexer-gen.c"
+yy457:
yych = *++lexer->cursor;
- if (yych == '_') goto yy605;
- goto yy50;
-yy454:
+ switch (yych) {
+ case 'a': goto yy463;
+ case 'c': goto yy460;
+ case 'd': goto yy465;
+ case 'e': goto yy461;
+ case 'g': goto yy470;
+ case 'l': goto yy458;
+ case 'm': goto yy464;
+ case 'n': goto yy469;
+ case 'o': goto yy467;
+ case 'p': goto yy462;
+ case 'r': goto yy466;
+ case 's': goto yy459;
+ case 't': goto yy472;
+ case 'w': goto yy471;
+ case 'x': goto yy468;
+ default: goto yy83;
+ }
+yy458:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy606;
- goto yy50;
-yy455:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 361 "src/ast-lexer.c"
- { OPCODE(I32_NE); RETURN(COMPARE); }
-#line 3309 "src/prebuilt/ast-lexer-gen.c"
-yy457:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yych <= 'n') {
+ if (yych == 'e') goto yy609;
+ goto yy83;
+ } else {
+ if (yych <= 'o') goto yy610;
+ if (yych == 't') goto yy611;
+ goto yy83;
}
-#line 331 "src/ast-lexer.c"
- { OPCODE(I32_OR); RETURN(BINARY); }
-#line 3317 "src/prebuilt/ast-lexer-gen.c"
yy459:
yych = *++lexer->cursor;
- if (yych == 'p') goto yy608;
- goto yy50;
+ if (yych <= 's') {
+ if (yych == 'h') goto yy587;
+ goto yy83;
+ } else {
+ if (yych <= 't') goto yy588;
+ if (yych <= 'u') goto yy589;
+ goto yy83;
+ }
yy460:
yych = *++lexer->cursor;
- if (yych == 'i') goto yy609;
- if (yych == 'm') goto yy610;
- goto yy50;
+ if (yych <= 'n') {
+ if (yych == 'l') goto yy576;
+ goto yy83;
+ } else {
+ if (yych <= 'o') goto yy577;
+ if (yych == 't') goto yy578;
+ goto yy83;
+ }
yy461:
yych = *++lexer->cursor;
- if (yych == 't') goto yy611;
- goto yy50;
+ if (yych == 'q') goto yy572;
+ goto yy83;
yy462:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy612;
- if (yych == 'r') goto yy614;
- goto yy50;
+ if (yych == 'o') goto yy566;
+ goto yy83;
yy463:
yych = *++lexer->cursor;
- if (yych == 'o') goto yy615;
- goto yy50;
+ if (yych == 'd') goto yy560;
+ if (yych == 'n') goto yy561;
+ goto yy83;
yy464:
yych = *++lexer->cursor;
- if (yych == 'b') goto yy616;
- goto yy50;
+ if (yych == 'u') goto yy557;
+ goto yy83;
yy465:
yych = *++lexer->cursor;
- if (yych == 'u') goto yy618;
- goto yy50;
+ if (yych == 'i') goto yy550;
+ goto yy83;
yy466:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy619;
- goto yy50;
+ if (yych == 'e') goto yy523;
+ if (yych == 'o') goto yy524;
+ goto yy83;
yy467:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy620;
- goto yy50;
+ if (yych == 'r') goto yy521;
+ goto yy83;
yy468:
yych = *++lexer->cursor;
- if (yych == 'd') goto yy622;
- goto yy50;
+ if (yych == 'o') goto yy518;
+ goto yy83;
yy469:
yych = *++lexer->cursor;
- if (yych == 'd') goto yy624;
- goto yy50;
+ if (yych == 'e') goto yy516;
+ goto yy83;
yy470:
yych = *++lexer->cursor;
- if (yych == 'z') goto yy626;
- goto yy50;
+ if (yych == 'e') goto yy504;
+ if (yych == 't') goto yy505;
+ goto yy83;
yy471:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy628;
- goto yy50;
+ if (yych == 'r') goto yy496;
+ goto yy83;
yy472:
yych = *++lexer->cursor;
- if (yych == 'z') goto yy629;
- goto yy50;
-yy473:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'v') goto yy631;
- goto yy50;
-yy474:
- ++lexer->cursor;
- if ((yych = *lexer->cursor) <= 'Z') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
- } else {
- if (yych <= '"') goto yy475;
- if (yych <= '\'') goto yy49;
- }
- } else {
- if (yych <= ',') {
- if (yych <= '+') goto yy49;
- } else {
- if (yych != ';') goto yy49;
- }
- }
- } else {
- if (yych <= 'z') {
- if (yych <= '\\') {
- if (yych >= '\\') goto yy49;
- } else {
- if (yych <= ']') goto yy475;
- if (yych <= 'y') goto yy49;
- goto yy632;
- }
- } else {
- if (yych <= '|') {
- if (yych >= '|') goto yy49;
- } else {
- if (yych == '~') goto yy49;
- }
- }
- }
-yy475:
-#line 360 "src/ast-lexer.c"
- { OPCODE(I64_EQ); RETURN(COMPARE); }
-#line 3417 "src/prebuilt/ast-lexer-gen.c"
-yy476:
+ if (yych != 'u') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy634;
- goto yy50;
-yy477:
+ if (yych != 'n') goto yy83;
yych = *++lexer->cursor;
- if (yych == '_') goto yy635;
- goto yy50;
+ if (yych != 'c') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '_') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy478;
+ if (yych == 'u') goto yy479;
+ goto yy83;
yy478:
yych = *++lexer->cursor;
- if (yych == '_') goto yy636;
- goto yy50;
+ if (yych == '/') goto yy488;
+ goto yy83;
yy479:
yych = *++lexer->cursor;
- if (yych == '_') goto yy637;
- goto yy50;
-yy480:
+ if (yych != '/') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'a') goto yy638;
- goto yy50;
-yy481:
+ if (yych != 'f') goto yy83;
yych = *++lexer->cursor;
- if (yych == '_') goto yy639;
- goto yy50;
+ if (yych == '3') goto yy482;
+ if (yych == '6') goto yy483;
+ goto yy83;
yy482:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy640;
- goto yy50;
+ if (yych == '2') goto yy486;
+ goto yy83;
yy483:
+ yych = *++lexer->cursor;
+ if (yych != '4') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 362 "src/ast-lexer.c"
- { OPCODE(I64_NE); RETURN(COMPARE); }
-#line 3453 "src/prebuilt/ast-lexer-gen.c"
-yy485:
+#line 400 "src/ast-lexer.c"
+ { OPCODE(I32_TRUNC_U_F64); RETURN(CONVERT); }
+#line 2736 "src/prebuilt/ast-lexer-gen.c"
+yy486:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 332 "src/ast-lexer.c"
- { OPCODE(I64_OR); RETURN(BINARY); }
-#line 3461 "src/prebuilt/ast-lexer-gen.c"
-yy487:
- yych = *++lexer->cursor;
- if (yych == 'p') goto yy642;
- goto yy50;
+#line 398 "src/ast-lexer.c"
+ { OPCODE(I32_TRUNC_U_F32); RETURN(CONVERT); }
+#line 2744 "src/prebuilt/ast-lexer-gen.c"
yy488:
yych = *++lexer->cursor;
- if (yych == 'i') goto yy643;
- if (yych == 'm') goto yy644;
- goto yy50;
-yy489:
+ if (yych != 'f') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy645;
- goto yy50;
+ if (yych == '3') goto yy490;
+ if (yych == '6') goto yy491;
+ goto yy83;
yy490:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy646;
- if (yych == 'r') goto yy648;
- goto yy50;
+ if (yych == '2') goto yy494;
+ goto yy83;
yy491:
yych = *++lexer->cursor;
- if (yych == 'o') goto yy649;
- goto yy50;
-yy492:
+ if (yych != '4') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 396 "src/ast-lexer.c"
+ { OPCODE(I32_TRUNC_S_F64); RETURN(CONVERT); }
+#line 2765 "src/prebuilt/ast-lexer-gen.c"
+yy494:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 394 "src/ast-lexer.c"
+ { OPCODE(I32_TRUNC_S_F32); RETURN(CONVERT); }
+#line 2773 "src/prebuilt/ast-lexer-gen.c"
+yy496:
yych = *++lexer->cursor;
- if (yych == 'b') goto yy650;
- goto yy50;
-yy493:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'u') goto yy652;
- goto yy50;
-yy494:
+ if (yych != 'p') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy653;
- goto yy50;
-yy495:
+ if (yych != '/') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy655;
- goto yy50;
-yy496:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 433 "src/ast-lexer.c"
- { RETURN(IMPORT); }
-#line 3507 "src/prebuilt/ast-lexer-gen.c"
-yy498:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy657;
- goto yy50;
-yy499:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 436 "src/ast-lexer.c"
- { RETURN(INVOKE); }
-#line 3519 "src/prebuilt/ast-lexer-gen.c"
-yy501:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 428 "src/ast-lexer.c"
- { RETURN(MEMORY); }
-#line 3527 "src/prebuilt/ast-lexer-gen.c"
-yy503:
+ if (yych != '6') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '4') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 426 "src/ast-lexer.c"
- { RETURN(MODULE); }
-#line 3535 "src/prebuilt/ast-lexer-gen.c"
+#line 393 "src/ast-lexer.c"
+ { OPCODE(I32_WRAP_I64); RETURN(CONVERT); }
+#line 2793 "src/prebuilt/ast-lexer-gen.c"
+yy504:
+ yych = *++lexer->cursor;
+ if (yych == '_') goto yy511;
+ goto yy83;
yy505:
yych = *++lexer->cursor;
- if (yych <= '@') {
- if (yych <= '/') goto yy50;
- if (yych <= '9') goto yy658;
- goto yy50;
- } else {
- if (yych <= 'F') goto yy658;
- if (yych <= '`') goto yy50;
- if (yych <= 'f') goto yy658;
- goto yy50;
- }
-yy506:
+ if (yych != '_') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy507;
+ if (yych == 'u') goto yy509;
+ goto yy83;
+yy507:
++lexer->cursor;
- if ((yych = *lexer->cursor) <= '<') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
- } else {
- if (yych <= '"') goto yy507;
- if (yych <= '\'') goto yy49;
- }
- } else {
- if (yych <= ',') {
- if (yych <= '+') goto yy49;
- } else {
- if (yych != ';') goto yy49;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= 'Z') {
- if (yych <= '=') goto yy660;
- goto yy49;
- } else {
- if (yych == '\\') goto yy49;
- }
- } else {
- if (yych <= '|') {
- if (yych != '{') goto yy49;
- } else {
- if (yych == '~') goto yy49;
- }
- }
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy507:
-#line 432 "src/ast-lexer.c"
- { RETURN(OFFSET); }
-#line 3584 "src/prebuilt/ast-lexer-gen.c"
-yy508:
+#line 371 "src/ast-lexer.c"
+ { OPCODE(I32_GT_S); RETURN(COMPARE); }
+#line 2812 "src/prebuilt/ast-lexer-gen.c"
+yy509:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 445 "src/ast-lexer.c"
- { RETURN(OUTPUT); }
-#line 3592 "src/prebuilt/ast-lexer-gen.c"
-yy510:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy661;
- goto yy50;
+#line 373 "src/ast-lexer.c"
+ { OPCODE(I32_GT_U); RETURN(COMPARE); }
+#line 2820 "src/prebuilt/ast-lexer-gen.c"
yy511:
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy512;
+ if (yych == 'u') goto yy514;
+ goto yy83;
+yy512:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 423 "src/ast-lexer.c"
- { RETURN(RESULT); }
-#line 3604 "src/prebuilt/ast-lexer-gen.c"
-yy513:
+#line 375 "src/ast-lexer.c"
+ { OPCODE(I32_GE_S); RETURN(COMPARE); }
+#line 2833 "src/prebuilt/ast-lexer-gen.c"
+yy514:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 258 "src/ast-lexer.c"
- { RETURN(RETURN); }
-#line 3612 "src/prebuilt/ast-lexer-gen.c"
-yy515:
+#line 377 "src/ast-lexer.c"
+ { OPCODE(I32_GE_U); RETURN(COMPARE); }
+#line 2841 "src/prebuilt/ast-lexer-gen.c"
+yy516:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 416 "src/ast-lexer.c"
- { RETURN(SELECT); }
-#line 3620 "src/prebuilt/ast-lexer-gen.c"
-yy517:
- yych = *++lexer->cursor;
- if (yych == 'o') goto yy662;
- goto yy50;
+#line 361 "src/ast-lexer.c"
+ { OPCODE(I32_NE); RETURN(COMPARE); }
+#line 2849 "src/prebuilt/ast-lexer-gen.c"
yy518:
yych = *++lexer->cursor;
- if (yych == 'c') goto yy663;
- goto yy50;
-yy519:
- yych = *++lexer->cursor;
- if (yych == 'c') goto yy664;
- goto yy50;
-yy520:
- yych = *++lexer->cursor;
- if (yych == 'h') goto yy665;
- goto yy50;
+ if (yych != 'r') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 333 "src/ast-lexer.c"
+ { OPCODE(I32_XOR); RETURN(BINARY); }
+#line 2859 "src/prebuilt/ast-lexer-gen.c"
yy521:
++lexer->cursor;
- if ((yych = *lexer->cursor) <= ';') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
- } else {
- if (yych <= '"') goto yy522;
- if (yych <= '\'') goto yy49;
- }
- } else {
- if (yych <= '/') {
- if (yych != ',') goto yy49;
- } else {
- if (yych <= '9') goto yy523;
- if (yych <= ':') goto yy49;
- }
- }
- } else {
- if (yych <= 'x') {
- if (yych <= '\\') {
- if (yych != '[') goto yy49;
- } else {
- if (yych <= ']') goto yy522;
- if (yych <= 'w') goto yy49;
- goto yy666;
- }
- } else {
- if (yych <= '|') {
- if (yych != '{') goto yy49;
- } else {
- if (yych == '~') goto yy49;
- }
- }
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy522:
-#line 288 "src/ast-lexer.c"
- { TEXT_AT(6); RETURN(ALIGN_EQ_NAT); }
-#line 3675 "src/prebuilt/ast-lexer-gen.c"
+#line 331 "src/ast-lexer.c"
+ { OPCODE(I32_OR); RETURN(BINARY); }
+#line 2867 "src/prebuilt/ast-lexer-gen.c"
yy523:
+ yych = *++lexer->cursor;
+ if (yych == 'i') goto yy531;
+ if (yych == 'm') goto yy530;
+ goto yy83;
+yy524:
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych == 'l') goto yy526;
+ if (yych == 'r') goto yy528;
+ goto yy83;
+yy526:
++lexer->cursor;
- if (lexer->limit <= lexer->cursor) FILL(1);
- yych = *lexer->cursor;
- if (yych <= ':') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych <= ' ') goto yy522;
- goto yy49;
- } else {
- if (yych <= '"') goto yy522;
- if (yych <= '\'') goto yy49;
- goto yy522;
- }
- } else {
- if (yych <= ',') {
- if (yych <= '+') goto yy49;
- goto yy522;
- } else {
- if (yych <= '/') goto yy49;
- if (yych <= '9') goto yy523;
- goto yy49;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= 'Z') {
- if (yych <= ';') goto yy522;
- goto yy49;
- } else {
- if (yych == '\\') goto yy49;
- goto yy522;
- }
- } else {
- if (yych <= '|') {
- if (yych == '{') goto yy522;
- goto yy49;
- } else {
- if (yych == '~') goto yy49;
- goto yy522;
- }
- }
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy525:
+#line 341 "src/ast-lexer.c"
+ { OPCODE(I32_ROTL); RETURN(BINARY); }
+#line 2887 "src/prebuilt/ast-lexer-gen.c"
+yy528:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 241 "src/ast-lexer.c"
- { RETURN(ANYFUNC); }
-#line 3726 "src/prebuilt/ast-lexer-gen.c"
-yy527:
+#line 343 "src/ast-lexer.c"
+ { OPCODE(I32_ROTR); RETURN(BINARY); }
+#line 2895 "src/prebuilt/ast-lexer-gen.c"
+yy530:
yych = *++lexer->cursor;
- switch (yych) {
- case 'i': goto yy667;
- case 'm': goto yy668;
- case 'r': goto yy669;
- case 't': goto yy670;
- case 'u': goto yy671;
- default: goto yy50;
- }
-yy528:
+ if (yych == '_') goto yy545;
+ goto yy83;
+yy531:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy672;
- goto yy50;
-yy529:
+ if (yych != 'n') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'p') goto yy674;
- goto yy50;
-yy530:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'd') goto yy675;
- goto yy50;
-yy531:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == '_') goto yy676;
- goto yy50;
-yy532:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 303 "src/ast-lexer.c"
- { OPCODE(F32_ABS); RETURN(UNARY); }
-#line 3760 "src/prebuilt/ast-lexer-gen.c"
-yy534:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 345 "src/ast-lexer.c"
- { OPCODE(F32_ADD); RETURN(BINARY); }
-#line 3768 "src/prebuilt/ast-lexer-gen.c"
-yy536:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'l') goto yy677;
- goto yy50;
-yy537:
+ if (yych != 'p') goto yy83;
yych = *++lexer->cursor;
- if (yych == 's') goto yy679;
- if (yych == 'v') goto yy680;
- goto yy50;
-yy538:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'y') goto yy681;
- goto yy50;
-yy539:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy682;
- goto yy50;
-yy540:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 351 "src/ast-lexer.c"
- { OPCODE(F32_DIV); RETURN(BINARY); }
-#line 3793 "src/prebuilt/ast-lexer-gen.c"
-yy542:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy683;
- goto yy50;
-yy543:
+ if (yych != '/') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'd') goto yy684;
- goto yy50;
-yy544:
+ if (yych != 'f') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '3') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '2') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 355 "src/ast-lexer.c"
- { OPCODE(F32_MAX); RETURN(BINARY); }
-#line 3809 "src/prebuilt/ast-lexer-gen.c"
+#line 413 "src/ast-lexer.c"
+ { OPCODE(I32_REINTERPRET_F32); RETURN(CONVERT); }
+#line 2931 "src/prebuilt/ast-lexer-gen.c"
+yy545:
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy546;
+ if (yych == 'u') goto yy548;
+ goto yy83;
yy546:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 353 "src/ast-lexer.c"
- { OPCODE(F32_MIN); RETURN(BINARY); }
-#line 3817 "src/prebuilt/ast-lexer-gen.c"
+#line 325 "src/ast-lexer.c"
+ { OPCODE(I32_REM_S); RETURN(BINARY); }
+#line 2944 "src/prebuilt/ast-lexer-gen.c"
yy548:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 349 "src/ast-lexer.c"
- { OPCODE(F32_MUL); RETURN(BINARY); }
-#line 3825 "src/prebuilt/ast-lexer-gen.c"
+#line 327 "src/ast-lexer.c"
+ { OPCODE(I32_REM_U); RETURN(BINARY); }
+#line 2952 "src/prebuilt/ast-lexer-gen.c"
yy550:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy686;
- goto yy50;
-yy551:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 301 "src/ast-lexer.c"
- { OPCODE(F32_NEG); RETURN(UNARY); }
-#line 3837 "src/prebuilt/ast-lexer-gen.c"
-yy553:
+ if (yych != 'v') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'n') goto yy687;
- goto yy50;
-yy554:
+ if (yych != '_') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy688;
- goto yy50;
+ if (yych == 's') goto yy553;
+ if (yych == 'u') goto yy555;
+ goto yy83;
+yy553:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 321 "src/ast-lexer.c"
+ { OPCODE(I32_DIV_S); RETURN(BINARY); }
+#line 2969 "src/prebuilt/ast-lexer-gen.c"
yy555:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy690;
- goto yy50;
-yy556:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 347 "src/ast-lexer.c"
- { OPCODE(F32_SUB); RETURN(BINARY); }
-#line 3857 "src/prebuilt/ast-lexer-gen.c"
-yy558:
+#line 323 "src/ast-lexer.c"
+ { OPCODE(I32_DIV_U); RETURN(BINARY); }
+#line 2977 "src/prebuilt/ast-lexer-gen.c"
+yy557:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy691;
- goto yy50;
-yy559:
+ if (yych != 'l') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 304 "src/ast-lexer.c"
- { OPCODE(F64_ABS); RETURN(UNARY); }
-#line 3869 "src/prebuilt/ast-lexer-gen.c"
+#line 319 "src/ast-lexer.c"
+ { OPCODE(I32_MUL); RETURN(BINARY); }
+#line 2987 "src/prebuilt/ast-lexer-gen.c"
+yy560:
+ yych = *++lexer->cursor;
+ if (yych == 'd') goto yy564;
+ goto yy83;
yy561:
+ yych = *++lexer->cursor;
+ if (yych != 'd') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 346 "src/ast-lexer.c"
- { OPCODE(F64_ADD); RETURN(BINARY); }
-#line 3877 "src/prebuilt/ast-lexer-gen.c"
-yy563:
- yych = *++lexer->cursor;
- if (yych == 'l') goto yy692;
- goto yy50;
+#line 329 "src/ast-lexer.c"
+ { OPCODE(I32_AND); RETURN(BINARY); }
+#line 3001 "src/prebuilt/ast-lexer-gen.c"
yy564:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy694;
- if (yych == 'v') goto yy695;
- goto yy50;
-yy565:
- yych = *++lexer->cursor;
- if (yych == 'y') goto yy696;
- goto yy50;
-yy566:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 352 "src/ast-lexer.c"
- { OPCODE(F64_DIV); RETURN(BINARY); }
-#line 3898 "src/prebuilt/ast-lexer-gen.c"
-yy568:
+#line 315 "src/ast-lexer.c"
+ { OPCODE(I32_ADD); RETURN(BINARY); }
+#line 3009 "src/prebuilt/ast-lexer-gen.c"
+yy566:
yych = *++lexer->cursor;
- if (yych == 'o') goto yy697;
- goto yy50;
-yy569:
+ if (yych != 'p') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'd') goto yy698;
- goto yy50;
-yy570:
+ if (yych != 'c') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'n') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 356 "src/ast-lexer.c"
- { OPCODE(F64_MAX); RETURN(BINARY); }
-#line 3914 "src/prebuilt/ast-lexer-gen.c"
+#line 299 "src/ast-lexer.c"
+ { OPCODE(I32_POPCNT); RETURN(UNARY); }
+#line 3025 "src/prebuilt/ast-lexer-gen.c"
yy572:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if ((yych = *lexer->cursor) <= 'Z') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
+ } else {
+ if (yych <= '"') goto yy573;
+ if (yych <= '\'') goto yy82;
+ }
+ } else {
+ if (yych <= ',') {
+ if (yych <= '+') goto yy82;
+ } else {
+ if (yych != ';') goto yy82;
+ }
+ }
+ } else {
+ if (yych <= 'z') {
+ if (yych <= '\\') {
+ if (yych >= '\\') goto yy82;
+ } else {
+ if (yych <= ']') goto yy573;
+ if (yych <= 'y') goto yy82;
+ goto yy574;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych >= '|') goto yy82;
+ } else {
+ if (yych == '~') goto yy82;
+ }
+ }
}
-#line 354 "src/ast-lexer.c"
- { OPCODE(F64_MIN); RETURN(BINARY); }
-#line 3922 "src/prebuilt/ast-lexer-gen.c"
+yy573:
+#line 359 "src/ast-lexer.c"
+ { OPCODE(I32_EQ); RETURN(COMPARE); }
+#line 3063 "src/prebuilt/ast-lexer-gen.c"
yy574:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 350 "src/ast-lexer.c"
- { OPCODE(F64_MUL); RETURN(BINARY); }
-#line 3930 "src/prebuilt/ast-lexer-gen.c"
+#line 293 "src/ast-lexer.c"
+ { OPCODE(I32_EQZ); RETURN(CONVERT); }
+#line 3071 "src/prebuilt/ast-lexer-gen.c"
yy576:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy700;
- goto yy50;
+ if (yych == 'z') goto yy585;
+ goto yy83;
yy577:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 302 "src/ast-lexer.c"
- { OPCODE(F64_NEG); RETURN(UNARY); }
-#line 3942 "src/prebuilt/ast-lexer-gen.c"
-yy579:
yych = *++lexer->cursor;
- if (yych == 'm') goto yy701;
- goto yy50;
-yy580:
+ if (yych == 'n') goto yy581;
+ goto yy83;
+yy578:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy702;
- goto yy50;
+ if (yych != 'z') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 297 "src/ast-lexer.c"
+ { OPCODE(I32_CTZ); RETURN(UNARY); }
+#line 3089 "src/prebuilt/ast-lexer-gen.c"
yy581:
yych = *++lexer->cursor;
- if (yych == 't') goto yy703;
- goto yy50;
-yy582:
+ if (yych != 's') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy705;
- goto yy50;
-yy583:
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 348 "src/ast-lexer.c"
- { OPCODE(F64_SUB); RETURN(BINARY); }
-#line 3966 "src/prebuilt/ast-lexer-gen.c"
+#line 289 "src/ast-lexer.c"
+ { TYPE(I32); RETURN(CONST); }
+#line 3101 "src/prebuilt/ast-lexer-gen.c"
yy585:
- yych = *++lexer->cursor;
- if (yych == 'n') goto yy706;
- goto yy50;
-yy586:
- yych = *++lexer->cursor;
- if (yych == 'b') goto yy707;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 295 "src/ast-lexer.c"
+ { OPCODE(I32_CLZ); RETURN(UNARY); }
+#line 3109 "src/prebuilt/ast-lexer-gen.c"
yy587:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy708;
- goto yy50;
+ if (yych == 'l') goto yy601;
+ if (yych == 'r') goto yy603;
+ goto yy83;
yy588:
yych = *++lexer->cursor;
- if (yych == 'm') goto yy709;
- goto yy50;
+ if (yych == 'o') goto yy592;
+ goto yy83;
yy589:
+ yych = *++lexer->cursor;
+ if (yych != 'b') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 315 "src/ast-lexer.c"
- { OPCODE(I32_ADD); RETURN(BINARY); }
-#line 3990 "src/prebuilt/ast-lexer-gen.c"
-yy591:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 329 "src/ast-lexer.c"
- { OPCODE(I32_AND); RETURN(BINARY); }
-#line 3998 "src/prebuilt/ast-lexer-gen.c"
-yy593:
+#line 317 "src/ast-lexer.c"
+ { OPCODE(I32_SUB); RETURN(BINARY); }
+#line 3128 "src/prebuilt/ast-lexer-gen.c"
+yy592:
+ yych = *++lexer->cursor;
+ if (yych != 'r') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'e') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if ((yych = *lexer->cursor) <= '8') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
+ } else {
+ if (yych <= '"') goto yy595;
+ if (yych <= '\'') goto yy82;
+ }
+ } else {
+ if (yych <= '0') {
+ if (yych != ',') goto yy82;
+ } else {
+ if (yych <= '1') goto yy596;
+ if (yych <= '7') goto yy82;
+ goto yy597;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= 'Z') {
+ if (yych != ';') goto yy82;
+ } else {
+ if (yych == '\\') goto yy82;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych != '{') goto yy82;
+ } else {
+ if (yych == '~') goto yy82;
+ }
+ }
}
-#line 295 "src/ast-lexer.c"
- { OPCODE(I32_CLZ); RETURN(UNARY); }
-#line 4006 "src/prebuilt/ast-lexer-gen.c"
yy595:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy710;
- goto yy50;
+#line 268 "src/ast-lexer.c"
+ { OPCODE(I32_STORE); RETURN(STORE); }
+#line 3170 "src/prebuilt/ast-lexer-gen.c"
yy596:
+ yych = *++lexer->cursor;
+ if (yych == '6') goto yy599;
+ goto yy83;
+yy597:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 297 "src/ast-lexer.c"
- { OPCODE(I32_CTZ); RETURN(UNARY); }
-#line 4018 "src/prebuilt/ast-lexer-gen.c"
-yy598:
- yych = *++lexer->cursor;
- if (yych == '_') goto yy711;
- goto yy50;
+#line 282 "src/ast-lexer.c"
+ { OPCODE(I32_STORE8); RETURN(STORE); }
+#line 3182 "src/prebuilt/ast-lexer-gen.c"
yy599:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 293 "src/ast-lexer.c"
- { OPCODE(I32_EQZ); RETURN(CONVERT); }
-#line 4030 "src/prebuilt/ast-lexer-gen.c"
+#line 284 "src/ast-lexer.c"
+ { OPCODE(I32_STORE16); RETURN(STORE); }
+#line 3190 "src/prebuilt/ast-lexer-gen.c"
yy601:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy712;
- if (yych == 'u') goto yy714;
- goto yy50;
-yy602:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy716;
- if (yych == 'u') goto yy718;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 335 "src/ast-lexer.c"
+ { OPCODE(I32_SHL); RETURN(BINARY); }
+#line 3198 "src/prebuilt/ast-lexer-gen.c"
yy603:
yych = *++lexer->cursor;
- if (yych == 's') goto yy720;
- if (yych == 'u') goto yy722;
- goto yy50;
-yy604:
+ if (yych != '_') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'd') goto yy724;
- goto yy50;
+ if (yych == 's') goto yy605;
+ if (yych == 'u') goto yy607;
+ goto yy83;
yy605:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy726;
- if (yych == 'u') goto yy728;
- goto yy50;
-yy606:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 319 "src/ast-lexer.c"
- { OPCODE(I32_MUL); RETURN(BINARY); }
-#line 4062 "src/prebuilt/ast-lexer-gen.c"
-yy608:
- yych = *++lexer->cursor;
- if (yych == 'c') goto yy730;
- goto yy50;
+#line 337 "src/ast-lexer.c"
+ { OPCODE(I32_SHR_S); RETURN(BINARY); }
+#line 3213 "src/prebuilt/ast-lexer-gen.c"
+yy607:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 339 "src/ast-lexer.c"
+ { OPCODE(I32_SHR_U); RETURN(BINARY); }
+#line 3221 "src/prebuilt/ast-lexer-gen.c"
yy609:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy731;
- goto yy50;
+ if (yych == '_') goto yy633;
+ goto yy83;
yy610:
yych = *++lexer->cursor;
- if (yych == '_') goto yy732;
- goto yy50;
+ if (yych == 'a') goto yy617;
+ goto yy83;
yy611:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy733;
- if (yych == 'r') goto yy735;
- goto yy50;
-yy612:
+ if (yych != '_') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy613;
+ if (yych == 'u') goto yy615;
+ goto yy83;
+yy613:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 335 "src/ast-lexer.c"
- { OPCODE(I32_SHL); RETURN(BINARY); }
-#line 4087 "src/prebuilt/ast-lexer-gen.c"
-yy614:
- yych = *++lexer->cursor;
- if (yych == '_') goto yy737;
- goto yy50;
+#line 363 "src/ast-lexer.c"
+ { OPCODE(I32_LT_S); RETURN(COMPARE); }
+#line 3244 "src/prebuilt/ast-lexer-gen.c"
yy615:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy738;
- goto yy50;
-yy616:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 317 "src/ast-lexer.c"
- { OPCODE(I32_SUB); RETURN(BINARY); }
-#line 4103 "src/prebuilt/ast-lexer-gen.c"
-yy618:
- yych = *++lexer->cursor;
- if (yych == 'n') goto yy739;
- goto yy50;
-yy619:
+#line 365 "src/ast-lexer.c"
+ { OPCODE(I32_LT_U); RETURN(COMPARE); }
+#line 3252 "src/prebuilt/ast-lexer-gen.c"
+yy617:
yych = *++lexer->cursor;
- if (yych == 'p') goto yy740;
- goto yy50;
-yy620:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 333 "src/ast-lexer.c"
- { OPCODE(I32_XOR); RETURN(BINARY); }
-#line 4119 "src/prebuilt/ast-lexer-gen.c"
-yy622:
+ if (yych != 'd') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if ((yych = *lexer->cursor) <= '8') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
+ } else {
+ if (yych <= '"') goto yy619;
+ if (yych <= '\'') goto yy82;
+ }
+ } else {
+ if (yych <= '0') {
+ if (yych != ',') goto yy82;
+ } else {
+ if (yych <= '1') goto yy621;
+ if (yych <= '7') goto yy82;
+ goto yy620;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= 'Z') {
+ if (yych != ';') goto yy82;
+ } else {
+ if (yych == '\\') goto yy82;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych != '{') goto yy82;
+ } else {
+ if (yych == '~') goto yy82;
+ }
+ }
}
-#line 316 "src/ast-lexer.c"
- { OPCODE(I64_ADD); RETURN(BINARY); }
-#line 4127 "src/prebuilt/ast-lexer-gen.c"
+yy619:
+#line 264 "src/ast-lexer.c"
+ { OPCODE(I32_LOAD); RETURN(LOAD); }
+#line 3292 "src/prebuilt/ast-lexer-gen.c"
+yy620:
+ yych = *++lexer->cursor;
+ if (yych == '_') goto yy628;
+ goto yy83;
+yy621:
+ yych = *++lexer->cursor;
+ if (yych != '6') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '_') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy624;
+ if (yych == 'u') goto yy626;
+ goto yy83;
yy624:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 330 "src/ast-lexer.c"
- { OPCODE(I64_AND); RETURN(BINARY); }
-#line 4135 "src/prebuilt/ast-lexer-gen.c"
+#line 276 "src/ast-lexer.c"
+ { OPCODE(I32_LOAD16_S); RETURN(LOAD); }
+#line 3313 "src/prebuilt/ast-lexer-gen.c"
yy626:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 296 "src/ast-lexer.c"
- { OPCODE(I64_CLZ); RETURN(UNARY); }
-#line 4143 "src/prebuilt/ast-lexer-gen.c"
+#line 278 "src/ast-lexer.c"
+ { OPCODE(I32_LOAD16_U); RETURN(LOAD); }
+#line 3321 "src/prebuilt/ast-lexer-gen.c"
yy628:
yych = *++lexer->cursor;
- if (yych == 's') goto yy741;
- goto yy50;
+ if (yych == 's') goto yy629;
+ if (yych == 'u') goto yy631;
+ goto yy83;
yy629:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 298 "src/ast-lexer.c"
- { OPCODE(I64_CTZ); RETURN(UNARY); }
-#line 4155 "src/prebuilt/ast-lexer-gen.c"
+#line 272 "src/ast-lexer.c"
+ { OPCODE(I32_LOAD8_S); RETURN(LOAD); }
+#line 3334 "src/prebuilt/ast-lexer-gen.c"
yy631:
- yych = *++lexer->cursor;
- if (yych == '_') goto yy742;
- goto yy50;
-yy632:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 294 "src/ast-lexer.c"
- { OPCODE(I64_EQZ); RETURN(CONVERT); }
-#line 4167 "src/prebuilt/ast-lexer-gen.c"
-yy634:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy743;
- goto yy50;
-yy635:
+#line 274 "src/ast-lexer.c"
+ { OPCODE(I32_LOAD8_U); RETURN(LOAD); }
+#line 3342 "src/prebuilt/ast-lexer-gen.c"
+yy633:
yych = *++lexer->cursor;
- if (yych == 's') goto yy744;
- if (yych == 'u') goto yy746;
- goto yy50;
+ if (yych == 's') goto yy634;
+ if (yych == 'u') goto yy636;
+ goto yy83;
+yy634:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 367 "src/ast-lexer.c"
+ { OPCODE(I32_LE_S); RETURN(COMPARE); }
+#line 3355 "src/prebuilt/ast-lexer-gen.c"
yy636:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy748;
- if (yych == 'u') goto yy750;
- goto yy50;
-yy637:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy752;
- if (yych == 'u') goto yy754;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 369 "src/ast-lexer.c"
+ { OPCODE(I32_LE_U); RETURN(COMPARE); }
+#line 3363 "src/prebuilt/ast-lexer-gen.c"
yy638:
yych = *++lexer->cursor;
- if (yych == 'd') goto yy756;
- goto yy50;
+ if (yych == 't') goto yy656;
+ goto yy83;
yy639:
yych = *++lexer->cursor;
- if (yych == 's') goto yy758;
- if (yych == 'u') goto yy760;
- goto yy50;
+ if (yych == 'o') goto yy651;
+ goto yy83;
yy640:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 320 "src/ast-lexer.c"
- { OPCODE(I64_MUL); RETURN(BINARY); }
-#line 4203 "src/prebuilt/ast-lexer-gen.c"
-yy642:
yych = *++lexer->cursor;
- if (yych == 'c') goto yy762;
- goto yy50;
-yy643:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'n') goto yy763;
- goto yy50;
-yy644:
+ if (yych != 'w') goto yy83;
yych = *++lexer->cursor;
- if (yych == '_') goto yy764;
- goto yy50;
-yy645:
+ if (yych != '_') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'l') goto yy765;
- if (yych == 'r') goto yy767;
- goto yy50;
-yy646:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 336 "src/ast-lexer.c"
- { OPCODE(I64_SHL); RETURN(BINARY); }
-#line 4228 "src/prebuilt/ast-lexer-gen.c"
-yy648:
+ if (yych != 'm') goto yy83;
yych = *++lexer->cursor;
- if (yych == '_') goto yy769;
- goto yy50;
-yy649:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy770;
- goto yy50;
-yy650:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 318 "src/ast-lexer.c"
- { OPCODE(I64_SUB); RETURN(BINARY); }
-#line 4244 "src/prebuilt/ast-lexer-gen.c"
-yy652:
+ if (yych != 'm') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'n') goto yy771;
- goto yy50;
-yy653:
+ if (yych != 'r') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'y') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 334 "src/ast-lexer.c"
- { OPCODE(I64_XOR); RETURN(BINARY); }
-#line 4256 "src/prebuilt/ast-lexer-gen.c"
-yy655:
+#line 419 "src/ast-lexer.c"
+ { RETURN(GROW_MEMORY); }
+#line 3397 "src/prebuilt/ast-lexer-gen.c"
+yy651:
+ yych = *++lexer->cursor;
+ if (yych != 'b') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'a') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'l') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 246 "src/ast-lexer.c"
- { RETURN(IF); }
-#line 4264 "src/prebuilt/ast-lexer-gen.c"
-yy657:
- yych = *++lexer->cursor;
- if (yych == 'y') goto yy772;
- goto yy50;
-yy658:
+#line 425 "src/ast-lexer.c"
+ { RETURN(GLOBAL); }
+#line 3411 "src/prebuilt/ast-lexer-gen.c"
+yy656:
++lexer->cursor;
- if (lexer->limit <= lexer->cursor) FILL(1);
- yych = *lexer->cursor;
- if (yych <= '@') {
- if (yych <= '+') {
- if (yych <= '"') {
- if (yych == '!') goto yy49;
- goto yy196;
+ if ((yych = *lexer->cursor) <= 'Z') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
} else {
- if (yych <= '\'') goto yy49;
- if (yych <= ')') goto yy196;
- goto yy49;
+ if (yych <= '"') goto yy657;
+ if (yych <= '\'') goto yy82;
}
} else {
- if (yych <= '9') {
- if (yych <= ',') goto yy196;
- if (yych <= '/') goto yy49;
- goto yy658;
+ if (yych <= ',') {
+ if (yych <= '+') goto yy82;
} else {
- if (yych == ';') goto yy196;
- goto yy49;
+ if (yych != ';') goto yy82;
}
}
} else {
- if (yych <= '`') {
- if (yych <= '[') {
- if (yych <= 'F') goto yy658;
- if (yych <= 'Z') goto yy49;
- goto yy196;
+ if (yych <= '_') {
+ if (yych <= '\\') {
+ if (yych >= '\\') goto yy82;
} else {
- if (yych == ']') goto yy196;
- goto yy49;
+ if (yych <= ']') goto yy657;
+ if (yych <= '^') goto yy82;
+ goto yy658;
}
} else {
- if (yych <= '{') {
- if (yych <= 'f') goto yy658;
- if (yych <= 'z') goto yy49;
- goto yy196;
+ if (yych <= '|') {
+ if (yych != '{') goto yy82;
} else {
- if (yych == '}') goto yy196;
- if (yych <= '~') goto yy49;
- goto yy196;
+ if (yych == '~') goto yy82;
}
}
}
-yy660:
+yy657:
+#line 437 "src/ast-lexer.c"
+ { RETURN(GET); }
+#line 3449 "src/prebuilt/ast-lexer-gen.c"
+yy658:
yych = *++lexer->cursor;
- if (yych <= '/') goto yy50;
- if (yych <= '0') goto yy773;
- if (yych <= '9') goto yy775;
- goto yy50;
-yy661:
+ if (yych == 'g') goto yy660;
+ if (yych != 'l') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy777;
- goto yy50;
-yy662:
+ if (yych == 'o') goto yy667;
+ goto yy83;
+yy660:
yych = *++lexer->cursor;
- if (yych == 'b') goto yy779;
- goto yy50;
-yy663:
+ if (yych != 'l') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'a') goto yy780;
- goto yy50;
-yy664:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'a') goto yy781;
- goto yy50;
-yy665:
+ if (yych != 'b') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'a') goto yy782;
- goto yy50;
-yy666:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych <= '@') {
- if (yych <= '/') goto yy50;
- if (yych <= '9') goto yy783;
- goto yy50;
- } else {
- if (yych <= 'F') goto yy783;
- if (yych <= '`') goto yy50;
- if (yych <= 'f') goto yy783;
- goto yy50;
+ if (yych != 'l') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
+#line 262 "src/ast-lexer.c"
+ { RETURN(GET_GLOBAL); }
+#line 3474 "src/prebuilt/ast-lexer-gen.c"
yy667:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy785;
- goto yy50;
-yy668:
- yych = *++lexer->cursor;
- if (yych == 'a') goto yy786;
- goto yy50;
-yy669:
+ if (yych != 'c') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy787;
- goto yy50;
-yy670:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy788;
- goto yy50;
-yy671:
- yych = *++lexer->cursor;
- if (yych == 'n') goto yy789;
- goto yy50;
-yy672:
+ if (yych != 'l') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 252 "src/ast-lexer.c"
- { RETURN(BR_TABLE); }
-#line 4380 "src/prebuilt/ast-lexer-gen.c"
-yy674:
+#line 259 "src/ast-lexer.c"
+ { RETURN(GET_LOCAL); }
+#line 3488 "src/prebuilt/ast-lexer-gen.c"
+yy672:
yych = *++lexer->cursor;
- if (yych == 'o') goto yy790;
- goto yy50;
-yy675:
+ if (yych == '2') goto yy823;
+ goto yy83;
+yy673:
yych = *++lexer->cursor;
- if (yych == 'i') goto yy791;
- goto yy50;
-yy676:
+ if (yych == '4') goto yy678;
+ goto yy83;
+yy674:
yych = *++lexer->cursor;
- if (yych == 'm') goto yy792;
- goto yy50;
-yy677:
+ if (yych != 'n') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'c') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 421 "src/ast-lexer.c"
+ { RETURN(FUNC); }
+#line 3508 "src/prebuilt/ast-lexer-gen.c"
+yy678:
+ ++lexer->cursor;
+ if ((yych = *lexer->cursor) <= ':') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
+ } else {
+ if (yych <= '"') goto yy679;
+ if (yych <= '\'') goto yy82;
+ }
+ } else {
+ if (yych <= ',') {
+ if (yych <= '+') goto yy82;
+ } else {
+ if (yych == '.') goto yy680;
+ goto yy82;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= 'Z') {
+ if (yych >= '<') goto yy82;
+ } else {
+ if (yych == '\\') goto yy82;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych != '{') goto yy82;
+ } else {
+ if (yych == '~') goto yy82;
+ }
+ }
}
-#line 307 "src/ast-lexer.c"
- { OPCODE(F32_CEIL); RETURN(UNARY); }
-#line 4400 "src/prebuilt/ast-lexer-gen.c"
yy679:
- yych = *++lexer->cursor;
- if (yych == 't') goto yy793;
- goto yy50;
+#line 240 "src/ast-lexer.c"
+ { TYPE(F64); RETURN(VALUE_TYPE); }
+#line 3545 "src/prebuilt/ast-lexer-gen.c"
yy680:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy795;
- goto yy50;
+ switch (yych) {
+ case 'a': goto yy685;
+ case 'c': goto yy683;
+ case 'd': goto yy689;
+ case 'e': goto yy690;
+ case 'f': goto yy686;
+ case 'g': goto yy691;
+ case 'l': goto yy681;
+ case 'm': goto yy688;
+ case 'n': goto yy684;
+ case 'p': goto yy692;
+ case 'r': goto yy693;
+ case 's': goto yy682;
+ case 't': goto yy687;
+ default: goto yy83;
+ }
yy681:
yych = *++lexer->cursor;
- if (yych == 's') goto yy796;
- goto yy50;
+ if (yych <= 'n') {
+ if (yych == 'e') goto yy815;
+ goto yy83;
+ } else {
+ if (yych <= 'o') goto yy817;
+ if (yych == 't') goto yy818;
+ goto yy83;
+ }
yy682:
yych = *++lexer->cursor;
- if (yych == 't') goto yy797;
- goto yy50;
+ if (yych <= 's') {
+ if (yych == 'q') goto yy803;
+ goto yy83;
+ } else {
+ if (yych <= 't') goto yy804;
+ if (yych <= 'u') goto yy805;
+ goto yy83;
+ }
yy683:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy798;
- goto yy50;
+ if (yych == 'e') goto yy764;
+ if (yych == 'o') goto yy765;
+ goto yy83;
yy684:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 266 "src/ast-lexer.c"
- { OPCODE(F32_LOAD); RETURN(LOAD); }
-#line 4428 "src/prebuilt/ast-lexer-gen.c"
+ yych = *++lexer->cursor;
+ if (yych == 'e') goto yy754;
+ goto yy83;
+yy685:
+ yych = *++lexer->cursor;
+ if (yych == 'b') goto yy748;
+ if (yych == 'd') goto yy749;
+ goto yy83;
yy686:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy800;
- goto yy50;
+ if (yych == 'l') goto yy743;
+ goto yy83;
yy687:
yych = *++lexer->cursor;
- if (yych == 't') goto yy801;
- goto yy50;
+ if (yych == 'r') goto yy738;
+ goto yy83;
yy688:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ yych = *++lexer->cursor;
+ if (yych <= 'h') {
+ if (yych == 'a') goto yy729;
+ goto yy83;
+ } else {
+ if (yych <= 'i') goto yy730;
+ if (yych == 'u') goto yy731;
+ goto yy83;
}
-#line 305 "src/ast-lexer.c"
- { OPCODE(F32_SQRT); RETURN(UNARY); }
-#line 4444 "src/prebuilt/ast-lexer-gen.c"
+yy689:
+ yych = *++lexer->cursor;
+ if (yych == 'i') goto yy726;
+ goto yy83;
yy690:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy802;
- goto yy50;
+ if (yych == 'q') goto yy724;
+ goto yy83;
yy691:
yych = *++lexer->cursor;
- if (yych == 'c') goto yy804;
- goto yy50;
+ if (yych == 'e') goto yy720;
+ if (yych == 't') goto yy722;
+ goto yy83;
yy692:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 308 "src/ast-lexer.c"
- { OPCODE(F64_CEIL); RETURN(UNARY); }
-#line 4460 "src/prebuilt/ast-lexer-gen.c"
-yy694:
yych = *++lexer->cursor;
- if (yych == 't') goto yy806;
- goto yy50;
-yy695:
+ if (yych == 'r') goto yy709;
+ goto yy83;
+yy693:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy808;
- goto yy50;
-yy696:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 's') goto yy809;
- goto yy50;
-yy697:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy810;
- goto yy50;
-yy698:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 267 "src/ast-lexer.c"
- { OPCODE(F64_LOAD); RETURN(LOAD); }
-#line 4484 "src/prebuilt/ast-lexer-gen.c"
-yy700:
+ if (yych != 'n') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy812;
- goto yy50;
-yy701:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy813;
- goto yy50;
-yy702:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy814;
- goto yy50;
-yy703:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 306 "src/ast-lexer.c"
- { OPCODE(F64_SQRT); RETURN(UNARY); }
-#line 4504 "src/prebuilt/ast-lexer-gen.c"
-yy705:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy815;
- goto yy50;
-yy706:
+ if (yych != 'p') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'c') goto yy817;
- goto yy50;
-yy707:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'a') goto yy819;
- goto yy50;
-yy708:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'l') goto yy820;
- goto yy50;
-yy709:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy822;
- goto yy50;
-yy710:
+ if (yych != '/') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy823;
- goto yy50;
-yy711:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == 's') goto yy825;
- if (yych == 'u') goto yy827;
- goto yy50;
-yy712:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 375 "src/ast-lexer.c"
- { OPCODE(I32_GE_S); RETURN(COMPARE); }
-#line 4541 "src/prebuilt/ast-lexer-gen.c"
-yy714:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 377 "src/ast-lexer.c"
- { OPCODE(I32_GE_U); RETURN(COMPARE); }
-#line 4549 "src/prebuilt/ast-lexer-gen.c"
-yy716:
+ if (yych != '6') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '4') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 371 "src/ast-lexer.c"
- { OPCODE(I32_GT_S); RETURN(COMPARE); }
-#line 4557 "src/prebuilt/ast-lexer-gen.c"
-yy718:
+#line 414 "src/ast-lexer.c"
+ { OPCODE(F64_REINTERPRET_I64); RETURN(CONVERT); }
+#line 3668 "src/prebuilt/ast-lexer-gen.c"
+yy709:
+ yych = *++lexer->cursor;
+ if (yych != 'o') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'm') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'o') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'e') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '/') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'f') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '3') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '2') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 373 "src/ast-lexer.c"
- { OPCODE(I32_GT_U); RETURN(COMPARE); }
-#line 4565 "src/prebuilt/ast-lexer-gen.c"
+#line 410 "src/ast-lexer.c"
+ { OPCODE(F64_PROMOTE_F32); RETURN(CONVERT); }
+#line 3694 "src/prebuilt/ast-lexer-gen.c"
yy720:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 367 "src/ast-lexer.c"
- { OPCODE(I32_LE_S); RETURN(COMPARE); }
-#line 4573 "src/prebuilt/ast-lexer-gen.c"
+#line 390 "src/ast-lexer.c"
+ { OPCODE(F64_GE); RETURN(COMPARE); }
+#line 3702 "src/prebuilt/ast-lexer-gen.c"
yy722:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 369 "src/ast-lexer.c"
- { OPCODE(I32_LE_U); RETURN(COMPARE); }
-#line 4581 "src/prebuilt/ast-lexer-gen.c"
+#line 388 "src/ast-lexer.c"
+ { OPCODE(F64_GT); RETURN(COMPARE); }
+#line 3710 "src/prebuilt/ast-lexer-gen.c"
yy724:
++lexer->cursor;
- if ((yych = *lexer->cursor) <= '8') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
- } else {
- if (yych <= '"') goto yy725;
- if (yych <= '\'') goto yy49;
- }
- } else {
- if (yych <= '0') {
- if (yych != ',') goto yy49;
- } else {
- if (yych <= '1') goto yy829;
- if (yych <= '7') goto yy49;
- goto yy830;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= 'Z') {
- if (yych != ';') goto yy49;
- } else {
- if (yych == '\\') goto yy49;
- }
- } else {
- if (yych <= '|') {
- if (yych != '{') goto yy49;
- } else {
- if (yych == '~') goto yy49;
- }
- }
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-yy725:
-#line 264 "src/ast-lexer.c"
- { OPCODE(I32_LOAD); RETURN(LOAD); }
-#line 4619 "src/prebuilt/ast-lexer-gen.c"
+#line 380 "src/ast-lexer.c"
+ { OPCODE(F64_EQ); RETURN(COMPARE); }
+#line 3718 "src/prebuilt/ast-lexer-gen.c"
yy726:
+ yych = *++lexer->cursor;
+ if (yych != 'v') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 363 "src/ast-lexer.c"
- { OPCODE(I32_LT_S); RETURN(COMPARE); }
-#line 4627 "src/prebuilt/ast-lexer-gen.c"
-yy728:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 365 "src/ast-lexer.c"
- { OPCODE(I32_LT_U); RETURN(COMPARE); }
-#line 4635 "src/prebuilt/ast-lexer-gen.c"
+#line 352 "src/ast-lexer.c"
+ { OPCODE(F64_DIV); RETURN(BINARY); }
+#line 3728 "src/prebuilt/ast-lexer-gen.c"
+yy729:
+ yych = *++lexer->cursor;
+ if (yych == 'x') goto yy736;
+ goto yy83;
yy730:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy831;
- goto yy50;
+ if (yych == 'n') goto yy734;
+ goto yy83;
yy731:
yych = *++lexer->cursor;
- if (yych == 't') goto yy832;
- goto yy50;
-yy732:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy833;
- if (yych == 'u') goto yy835;
- goto yy50;
-yy733:
+ if (yych != 'l') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 341 "src/ast-lexer.c"
- { OPCODE(I32_ROTL); RETURN(BINARY); }
-#line 4656 "src/prebuilt/ast-lexer-gen.c"
-yy735:
+#line 350 "src/ast-lexer.c"
+ { OPCODE(F64_MUL); RETURN(BINARY); }
+#line 3746 "src/prebuilt/ast-lexer-gen.c"
+yy734:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 343 "src/ast-lexer.c"
- { OPCODE(I32_ROTR); RETURN(BINARY); }
-#line 4664 "src/prebuilt/ast-lexer-gen.c"
-yy737:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy837;
- if (yych == 'u') goto yy839;
- goto yy50;
+#line 354 "src/ast-lexer.c"
+ { OPCODE(F64_MIN); RETURN(BINARY); }
+#line 3754 "src/prebuilt/ast-lexer-gen.c"
+yy736:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 356 "src/ast-lexer.c"
+ { OPCODE(F64_MAX); RETURN(BINARY); }
+#line 3762 "src/prebuilt/ast-lexer-gen.c"
yy738:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy841;
- goto yy50;
-yy739:
+ if (yych != 'u') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'c') goto yy843;
- goto yy50;
-yy740:
+ if (yych != 'n') goto yy83;
yych = *++lexer->cursor;
- if (yych == '/') goto yy844;
- goto yy50;
-yy741:
+ if (yych != 'c') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 312 "src/ast-lexer.c"
+ { OPCODE(F64_TRUNC); RETURN(UNARY); }
+#line 3776 "src/prebuilt/ast-lexer-gen.c"
+yy743:
yych = *++lexer->cursor;
- if (yych == 't') goto yy845;
- goto yy50;
-yy742:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == 's') goto yy847;
- if (yych == 'u') goto yy849;
- goto yy50;
-yy743:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'n') goto yy851;
- goto yy50;
-yy744:
+ if (yych != 'r') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 376 "src/ast-lexer.c"
- { OPCODE(I64_GE_S); RETURN(COMPARE); }
-#line 4702 "src/prebuilt/ast-lexer-gen.c"
-yy746:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 378 "src/ast-lexer.c"
- { OPCODE(I64_GE_U); RETURN(COMPARE); }
-#line 4710 "src/prebuilt/ast-lexer-gen.c"
+#line 310 "src/ast-lexer.c"
+ { OPCODE(F64_FLOOR); RETURN(UNARY); }
+#line 3790 "src/prebuilt/ast-lexer-gen.c"
yy748:
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy752;
+ goto yy83;
+yy749:
+ yych = *++lexer->cursor;
+ if (yych != 'd') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 372 "src/ast-lexer.c"
- { OPCODE(I64_GT_S); RETURN(COMPARE); }
-#line 4718 "src/prebuilt/ast-lexer-gen.c"
-yy750:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 374 "src/ast-lexer.c"
- { OPCODE(I64_GT_U); RETURN(COMPARE); }
-#line 4726 "src/prebuilt/ast-lexer-gen.c"
+#line 346 "src/ast-lexer.c"
+ { OPCODE(F64_ADD); RETURN(BINARY); }
+#line 3804 "src/prebuilt/ast-lexer-gen.c"
yy752:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 368 "src/ast-lexer.c"
- { OPCODE(I64_LE_S); RETURN(COMPARE); }
-#line 4734 "src/prebuilt/ast-lexer-gen.c"
+#line 304 "src/ast-lexer.c"
+ { OPCODE(F64_ABS); RETURN(UNARY); }
+#line 3812 "src/prebuilt/ast-lexer-gen.c"
yy754:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 370 "src/ast-lexer.c"
- { OPCODE(I64_LE_U); RETURN(COMPARE); }
-#line 4742 "src/prebuilt/ast-lexer-gen.c"
-yy756:
- ++lexer->cursor;
- if ((yych = *lexer->cursor) <= '7') {
- if (yych <= '+') {
- if (yych <= '"') {
- if (yych == '!') goto yy49;
+ if ((yych = *lexer->cursor) <= '[') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
} else {
- if (yych <= '\'') goto yy49;
- if (yych >= '*') goto yy49;
+ if (yych <= '"') goto yy755;
+ if (yych <= '\'') goto yy82;
}
} else {
- if (yych <= '1') {
- if (yych <= ',') goto yy757;
- if (yych <= '0') goto yy49;
- goto yy852;
+ if (yych <= ':') {
+ if (yych != ',') goto yy82;
} else {
- if (yych == '3') goto yy853;
- goto yy49;
+ if (yych <= ';') goto yy755;
+ if (yych <= 'Z') goto yy82;
}
}
} else {
- if (yych <= '\\') {
- if (yych <= ';') {
- if (yych <= '8') goto yy854;
- if (yych <= ':') goto yy49;
+ if (yych <= 'g') {
+ if (yych <= '`') {
+ if (yych != ']') goto yy82;
} else {
- if (yych != '[') goto yy49;
+ if (yych <= 'a') goto yy758;
+ if (yych <= 'f') goto yy82;
+ goto yy756;
}
} else {
- if (yych <= '{') {
- if (yych <= ']') goto yy757;
- if (yych <= 'z') goto yy49;
+ if (yych <= '|') {
+ if (yych != '{') goto yy82;
} else {
- if (yych == '}') goto yy757;
- if (yych <= '~') goto yy49;
+ if (yych == '~') goto yy82;
}
}
}
-yy757:
-#line 265 "src/ast-lexer.c"
- { OPCODE(I64_LOAD); RETURN(LOAD); }
-#line 4784 "src/prebuilt/ast-lexer-gen.c"
-yy758:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 364 "src/ast-lexer.c"
- { OPCODE(I64_LT_S); RETURN(COMPARE); }
-#line 4792 "src/prebuilt/ast-lexer-gen.c"
-yy760:
+yy755:
+#line 382 "src/ast-lexer.c"
+ { OPCODE(F64_NE); RETURN(COMPARE); }
+#line 3851 "src/prebuilt/ast-lexer-gen.c"
+yy756:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 366 "src/ast-lexer.c"
- { OPCODE(I64_LT_U); RETURN(COMPARE); }
-#line 4800 "src/prebuilt/ast-lexer-gen.c"
-yy762:
+#line 302 "src/ast-lexer.c"
+ { OPCODE(F64_NEG); RETURN(UNARY); }
+#line 3859 "src/prebuilt/ast-lexer-gen.c"
+yy758:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy855;
- goto yy50;
-yy763:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy856;
- goto yy50;
-yy764:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 's') goto yy857;
- if (yych == 'u') goto yy859;
- goto yy50;
-yy765:
+ if (yych != 's') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 342 "src/ast-lexer.c"
- { OPCODE(I64_ROTL); RETURN(BINARY); }
-#line 4821 "src/prebuilt/ast-lexer-gen.c"
+#line 314 "src/ast-lexer.c"
+ { OPCODE(F64_NEAREST); RETURN(UNARY); }
+#line 3875 "src/prebuilt/ast-lexer-gen.c"
+yy764:
+ yych = *++lexer->cursor;
+ if (yych == 'i') goto yy800;
+ goto yy83;
+yy765:
+ yych = *++lexer->cursor;
+ if (yych == 'n') goto yy766;
+ if (yych == 'p') goto yy767;
+ goto yy83;
+yy766:
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy774;
+ if (yych == 'v') goto yy775;
+ goto yy83;
yy767:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 344 "src/ast-lexer.c"
- { OPCODE(I64_ROTR); RETURN(BINARY); }
-#line 4829 "src/prebuilt/ast-lexer-gen.c"
-yy769:
yych = *++lexer->cursor;
- if (yych == 's') goto yy861;
- if (yych == 'u') goto yy863;
- goto yy50;
-yy770:
+ if (yych != 'y') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy865;
- goto yy50;
-yy771:
+ if (yych != 's') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'c') goto yy867;
- goto yy50;
-yy772:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yybm[0+yych] & 16) {
- goto yy49;
- }
- goto yy186;
-yy773:
+ if (yych != 'g') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'n') goto yy83;
++lexer->cursor;
- if ((yych = *lexer->cursor) <= ';') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych >= '!') goto yy49;
- } else {
- if (yych <= '"') goto yy774;
- if (yych <= '\'') goto yy49;
- }
- } else {
- if (yych <= '/') {
- if (yych != ',') goto yy49;
- } else {
- if (yych <= '9') goto yy775;
- if (yych <= ':') goto yy49;
- }
- }
- } else {
- if (yych <= 'x') {
- if (yych <= '\\') {
- if (yych != '[') goto yy49;
- } else {
- if (yych <= ']') goto yy774;
- if (yych <= 'w') goto yy49;
- goto yy868;
- }
- } else {
- if (yych <= '|') {
- if (yych != '{') goto yy49;
- } else {
- if (yych == '~') goto yy49;
- }
- }
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
+#line 358 "src/ast-lexer.c"
+ { OPCODE(F64_COPYSIGN); RETURN(BINARY); }
+#line 3907 "src/prebuilt/ast-lexer-gen.c"
yy774:
-#line 287 "src/ast-lexer.c"
- { TEXT_AT(7); RETURN(OFFSET_EQ_NAT); }
-#line 4887 "src/prebuilt/ast-lexer-gen.c"
+ yych = *++lexer->cursor;
+ if (yych == 't') goto yy798;
+ goto yy83;
yy775:
- ++lexer->cursor;
- if (lexer->limit <= lexer->cursor) FILL(1);
- yych = *lexer->cursor;
- if (yych <= ':') {
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych <= ' ') goto yy774;
- goto yy49;
- } else {
- if (yych <= '"') goto yy774;
- if (yych <= '\'') goto yy49;
- goto yy774;
- }
- } else {
- if (yych <= ',') {
- if (yych <= '+') goto yy49;
- goto yy774;
- } else {
- if (yych <= '/') goto yy49;
- if (yych <= '9') goto yy775;
- goto yy49;
- }
- }
- } else {
- if (yych <= ']') {
- if (yych <= 'Z') {
- if (yych <= ';') goto yy774;
- goto yy49;
- } else {
- if (yych == '\\') goto yy49;
- goto yy774;
- }
- } else {
- if (yych <= '|') {
- if (yych == '{') goto yy774;
- goto yy49;
- } else {
- if (yych == '~') goto yy49;
- goto yy774;
- }
- }
- }
-yy777:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 435 "src/ast-lexer.c"
- { RETURN(REGISTER); }
-#line 4938 "src/prebuilt/ast-lexer-gen.c"
-yy779:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy869;
- goto yy50;
+ if (yych != 'e') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'r') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '_') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy780;
+ if (yych == 'u') goto yy781;
+ goto yy83;
yy780:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy870;
- goto yy50;
+ if (yych == '/') goto yy790;
+ goto yy83;
yy781:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy872;
- goto yy50;
-yy782:
+ if (yych != '/') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'b') goto yy874;
- goto yy50;
-yy783:
- ++lexer->cursor;
- if (lexer->limit <= lexer->cursor) FILL(1);
- yych = *lexer->cursor;
- if (yych <= '@') {
- if (yych <= '+') {
- if (yych <= '"') {
- if (yych == '!') goto yy49;
- goto yy522;
- } else {
- if (yych <= '\'') goto yy49;
- if (yych <= ')') goto yy522;
- goto yy49;
- }
- } else {
- if (yych <= '9') {
- if (yych <= ',') goto yy522;
- if (yych <= '/') goto yy49;
- goto yy783;
- } else {
- if (yych == ';') goto yy522;
- goto yy49;
- }
- }
- } else {
- if (yych <= '`') {
- if (yych <= '[') {
- if (yych <= 'F') goto yy783;
- if (yych <= 'Z') goto yy49;
- goto yy522;
- } else {
- if (yych == ']') goto yy522;
- goto yy49;
- }
- } else {
- if (yych <= '{') {
- if (yych <= 'f') goto yy783;
- if (yych <= 'z') goto yy49;
- goto yy522;
- } else {
- if (yych == '}') goto yy522;
- if (yych <= '~') goto yy49;
- goto yy522;
- }
- }
- }
-yy785:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'v') goto yy875;
- goto yy50;
-yy786:
+ if (yych == '3') goto yy784;
+ if (yych == '6') goto yy785;
+ goto yy83;
+yy784:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy876;
- goto yy50;
-yy787:
+ if (yych == '2') goto yy788;
+ goto yy83;
+yy785:
yych = *++lexer->cursor;
- if (yych == 't') goto yy877;
- goto yy50;
+ if (yych != '4') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 409 "src/ast-lexer.c"
+ { OPCODE(F64_CONVERT_U_I64); RETURN(CONVERT); }
+#line 3951 "src/prebuilt/ast-lexer-gen.c"
yy788:
- yych = *++lexer->cursor;
- if (yych == 'a') goto yy878;
- goto yy50;
-yy789:
- yych = *++lexer->cursor;
- if (yych == 'l') goto yy879;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 407 "src/ast-lexer.c"
+ { OPCODE(F64_CONVERT_U_I32); RETURN(CONVERT); }
+#line 3959 "src/prebuilt/ast-lexer-gen.c"
yy790:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy880;
- goto yy50;
-yy791:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy881;
- goto yy50;
+ if (yych == '3') goto yy792;
+ if (yych == '6') goto yy793;
+ goto yy83;
yy792:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy882;
- goto yy50;
+ if (yych == '2') goto yy796;
+ goto yy83;
yy793:
+ yych = *++lexer->cursor;
+ if (yych != '4') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 291 "src/ast-lexer.c"
- { TYPE(F32); RETURN(CONST); }
-#line 5040 "src/prebuilt/ast-lexer-gen.c"
-yy795:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy883;
- goto yy50;
+#line 405 "src/ast-lexer.c"
+ { OPCODE(F64_CONVERT_S_I64); RETURN(CONVERT); }
+#line 3980 "src/prebuilt/ast-lexer-gen.c"
yy796:
- yych = *++lexer->cursor;
- if (yych == 'i') goto yy884;
- goto yy50;
-yy797:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy885;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 403 "src/ast-lexer.c"
+ { OPCODE(F64_CONVERT_S_I32); RETURN(CONVERT); }
+#line 3988 "src/prebuilt/ast-lexer-gen.c"
yy798:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 309 "src/ast-lexer.c"
- { OPCODE(F32_FLOOR); RETURN(UNARY); }
-#line 5060 "src/prebuilt/ast-lexer-gen.c"
+#line 292 "src/ast-lexer.c"
+ { TYPE(F64); RETURN(CONST); }
+#line 3996 "src/prebuilt/ast-lexer-gen.c"
yy800:
yych = *++lexer->cursor;
- if (yych == 's') goto yy886;
- goto yy50;
-yy801:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy887;
- goto yy50;
-yy802:
+ if (yych != 'l') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 270 "src/ast-lexer.c"
- { OPCODE(F32_STORE); RETURN(STORE); }
-#line 5076 "src/prebuilt/ast-lexer-gen.c"
+#line 308 "src/ast-lexer.c"
+ { OPCODE(F64_CEIL); RETURN(UNARY); }
+#line 4006 "src/prebuilt/ast-lexer-gen.c"
+yy803:
+ yych = *++lexer->cursor;
+ if (yych == 'r') goto yy812;
+ goto yy83;
yy804:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 311 "src/ast-lexer.c"
- { OPCODE(F32_TRUNC); RETURN(UNARY); }
-#line 5084 "src/prebuilt/ast-lexer-gen.c"
-yy806:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 292 "src/ast-lexer.c"
- { TYPE(F64); RETURN(CONST); }
-#line 5092 "src/prebuilt/ast-lexer-gen.c"
-yy808:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy888;
- goto yy50;
-yy809:
+ if (yych == 'o') goto yy808;
+ goto yy83;
+yy805:
yych = *++lexer->cursor;
- if (yych == 'i') goto yy889;
- goto yy50;
-yy810:
+ if (yych != 'b') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 310 "src/ast-lexer.c"
- { OPCODE(F64_FLOOR); RETURN(UNARY); }
-#line 5108 "src/prebuilt/ast-lexer-gen.c"
-yy812:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy890;
- goto yy50;
-yy813:
+#line 348 "src/ast-lexer.c"
+ { OPCODE(F64_SUB); RETURN(BINARY); }
+#line 4024 "src/prebuilt/ast-lexer-gen.c"
+yy808:
yych = *++lexer->cursor;
- if (yych == 't') goto yy891;
- goto yy50;
-yy814:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy892;
- goto yy50;
-yy815:
+ if (yych != 'e') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
#line 271 "src/ast-lexer.c"
{ OPCODE(F64_STORE); RETURN(STORE); }
-#line 5128 "src/prebuilt/ast-lexer-gen.c"
-yy817:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 312 "src/ast-lexer.c"
- { OPCODE(F64_TRUNC); RETURN(UNARY); }
-#line 5136 "src/prebuilt/ast-lexer-gen.c"
-yy819:
- yych = *++lexer->cursor;
- if (yych == 'l') goto yy893;
- goto yy50;
-yy820:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 259 "src/ast-lexer.c"
- { RETURN(GET_LOCAL); }
-#line 5148 "src/prebuilt/ast-lexer-gen.c"
-yy822:
+#line 4036 "src/prebuilt/ast-lexer-gen.c"
+yy812:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy895;
- goto yy50;
-yy823:
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 289 "src/ast-lexer.c"
- { TYPE(I32); RETURN(CONST); }
-#line 5160 "src/prebuilt/ast-lexer-gen.c"
-yy825:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 321 "src/ast-lexer.c"
- { OPCODE(I32_DIV_S); RETURN(BINARY); }
-#line 5168 "src/prebuilt/ast-lexer-gen.c"
-yy827:
+#line 306 "src/ast-lexer.c"
+ { OPCODE(F64_SQRT); RETURN(UNARY); }
+#line 4046 "src/prebuilt/ast-lexer-gen.c"
+yy815:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 323 "src/ast-lexer.c"
- { OPCODE(I32_DIV_U); RETURN(BINARY); }
-#line 5176 "src/prebuilt/ast-lexer-gen.c"
-yy829:
- yych = *++lexer->cursor;
- if (yych == '6') goto yy896;
- goto yy50;
-yy830:
- yych = *++lexer->cursor;
- if (yych == '_') goto yy897;
- goto yy50;
-yy831:
- yych = *++lexer->cursor;
- if (yych == 't') goto yy898;
- goto yy50;
-yy832:
+#line 386 "src/ast-lexer.c"
+ { OPCODE(F64_LE); RETURN(COMPARE); }
+#line 4054 "src/prebuilt/ast-lexer-gen.c"
+yy817:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy900;
- goto yy50;
-yy833:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 325 "src/ast-lexer.c"
- { OPCODE(I32_REM_S); RETURN(BINARY); }
-#line 5200 "src/prebuilt/ast-lexer-gen.c"
-yy835:
+ if (yych == 'a') goto yy820;
+ goto yy83;
+yy818:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 327 "src/ast-lexer.c"
- { OPCODE(I32_REM_U); RETURN(BINARY); }
-#line 5208 "src/prebuilt/ast-lexer-gen.c"
-yy837:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 337 "src/ast-lexer.c"
- { OPCODE(I32_SHR_S); RETURN(BINARY); }
-#line 5216 "src/prebuilt/ast-lexer-gen.c"
-yy839:
+#line 384 "src/ast-lexer.c"
+ { OPCODE(F64_LT); RETURN(COMPARE); }
+#line 4066 "src/prebuilt/ast-lexer-gen.c"
+yy820:
+ yych = *++lexer->cursor;
+ if (yych != 'd') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 339 "src/ast-lexer.c"
- { OPCODE(I32_SHR_U); RETURN(BINARY); }
-#line 5224 "src/prebuilt/ast-lexer-gen.c"
-yy841:
+#line 267 "src/ast-lexer.c"
+ { OPCODE(F64_LOAD); RETURN(LOAD); }
+#line 4076 "src/prebuilt/ast-lexer-gen.c"
+yy823:
++lexer->cursor;
- if ((yych = *lexer->cursor) <= '8') {
+ if ((yych = *lexer->cursor) <= ':') {
if (yych <= ')') {
if (yych <= '!') {
- if (yych >= '!') goto yy49;
+ if (yych >= '!') goto yy82;
} else {
- if (yych <= '"') goto yy842;
- if (yych <= '\'') goto yy49;
+ if (yych <= '"') goto yy824;
+ if (yych <= '\'') goto yy82;
}
} else {
- if (yych <= '0') {
- if (yych != ',') goto yy49;
+ if (yych <= ',') {
+ if (yych <= '+') goto yy82;
} else {
- if (yych <= '1') goto yy901;
- if (yych <= '7') goto yy49;
- goto yy902;
+ if (yych == '.') goto yy825;
+ goto yy82;
}
}
} else {
if (yych <= ']') {
if (yych <= 'Z') {
- if (yych != ';') goto yy49;
+ if (yych >= '<') goto yy82;
} else {
- if (yych == '\\') goto yy49;
+ if (yych == '\\') goto yy82;
}
} else {
if (yych <= '|') {
- if (yych != '{') goto yy49;
+ if (yych != '{') goto yy82;
} else {
- if (yych == '~') goto yy49;
+ if (yych == '~') goto yy82;
}
}
}
-yy842:
-#line 268 "src/ast-lexer.c"
- { OPCODE(I32_STORE); RETURN(STORE); }
-#line 5262 "src/prebuilt/ast-lexer-gen.c"
-yy843:
+yy824:
+#line 239 "src/ast-lexer.c"
+ { TYPE(F32); RETURN(VALUE_TYPE); }
+#line 4113 "src/prebuilt/ast-lexer-gen.c"
+yy825:
yych = *++lexer->cursor;
- if (yych == '_') goto yy904;
- goto yy50;
-yy844:
+ switch (yych) {
+ case 'a': goto yy830;
+ case 'c': goto yy828;
+ case 'd': goto yy834;
+ case 'e': goto yy835;
+ case 'f': goto yy831;
+ case 'g': goto yy836;
+ case 'l': goto yy826;
+ case 'm': goto yy833;
+ case 'n': goto yy829;
+ case 'r': goto yy837;
+ case 's': goto yy827;
+ case 't': goto yy832;
+ default: goto yy83;
+ }
+yy826:
yych = *++lexer->cursor;
- if (yych == 'i') goto yy905;
- goto yy50;
-yy845:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 290 "src/ast-lexer.c"
- { TYPE(I64); RETURN(CONST); }
-#line 5278 "src/prebuilt/ast-lexer-gen.c"
-yy847:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yych <= 'n') {
+ if (yych == 'e') goto yy958;
+ goto yy83;
+ } else {
+ if (yych <= 'o') goto yy960;
+ if (yych == 't') goto yy961;
+ goto yy83;
}
-#line 322 "src/ast-lexer.c"
- { OPCODE(I64_DIV_S); RETURN(BINARY); }
-#line 5286 "src/prebuilt/ast-lexer-gen.c"
-yy849:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+yy827:
+ yych = *++lexer->cursor;
+ if (yych <= 's') {
+ if (yych == 'q') goto yy946;
+ goto yy83;
+ } else {
+ if (yych <= 't') goto yy947;
+ if (yych <= 'u') goto yy948;
+ goto yy83;
}
-#line 324 "src/ast-lexer.c"
- { OPCODE(I64_DIV_U); RETURN(BINARY); }
-#line 5294 "src/prebuilt/ast-lexer-gen.c"
-yy851:
+yy828:
yych = *++lexer->cursor;
- if (yych == 'd') goto yy906;
- goto yy50;
-yy852:
+ if (yych == 'e') goto yy907;
+ if (yych == 'o') goto yy908;
+ goto yy83;
+yy829:
yych = *++lexer->cursor;
- if (yych == '6') goto yy907;
- goto yy50;
-yy853:
+ if (yych == 'e') goto yy897;
+ goto yy83;
+yy830:
yych = *++lexer->cursor;
- if (yych == '2') goto yy908;
- goto yy50;
-yy854:
+ if (yych == 'b') goto yy891;
+ if (yych == 'd') goto yy892;
+ goto yy83;
+yy831:
yych = *++lexer->cursor;
- if (yych == '_') goto yy909;
- goto yy50;
-yy855:
+ if (yych == 'l') goto yy886;
+ goto yy83;
+yy832:
yych = *++lexer->cursor;
- if (yych == 't') goto yy910;
- goto yy50;
-yy856:
+ if (yych == 'r') goto yy881;
+ goto yy83;
+yy833:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy912;
- goto yy50;
-yy857:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 326 "src/ast-lexer.c"
- { OPCODE(I64_REM_S); RETURN(BINARY); }
-#line 5326 "src/prebuilt/ast-lexer-gen.c"
-yy859:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 328 "src/ast-lexer.c"
- { OPCODE(I64_REM_U); RETURN(BINARY); }
-#line 5334 "src/prebuilt/ast-lexer-gen.c"
-yy861:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 338 "src/ast-lexer.c"
- { OPCODE(I64_SHR_S); RETURN(BINARY); }
-#line 5342 "src/prebuilt/ast-lexer-gen.c"
-yy863:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 340 "src/ast-lexer.c"
- { OPCODE(I64_SHR_U); RETURN(BINARY); }
-#line 5350 "src/prebuilt/ast-lexer-gen.c"
-yy865:
- ++lexer->cursor;
- if ((yych = *lexer->cursor) <= '7') {
- if (yych <= '+') {
- if (yych <= '"') {
- if (yych == '!') goto yy49;
- } else {
- if (yych <= '\'') goto yy49;
- if (yych >= '*') goto yy49;
- }
- } else {
- if (yych <= '1') {
- if (yych <= ',') goto yy866;
- if (yych <= '0') goto yy49;
- goto yy913;
- } else {
- if (yych == '3') goto yy914;
- goto yy49;
- }
- }
+ if (yych <= 'h') {
+ if (yych == 'a') goto yy872;
+ goto yy83;
} else {
- if (yych <= '\\') {
- if (yych <= ';') {
- if (yych <= '8') goto yy915;
- if (yych <= ':') goto yy49;
- } else {
- if (yych != '[') goto yy49;
- }
- } else {
- if (yych <= '{') {
- if (yych <= ']') goto yy866;
- if (yych <= 'z') goto yy49;
- } else {
- if (yych == '}') goto yy866;
- if (yych <= '~') goto yy49;
- }
- }
+ if (yych <= 'i') goto yy873;
+ if (yych == 'u') goto yy874;
+ goto yy83;
}
-yy866:
-#line 269 "src/ast-lexer.c"
- { OPCODE(I64_STORE); RETURN(STORE); }
-#line 5392 "src/prebuilt/ast-lexer-gen.c"
-yy867:
+yy834:
yych = *++lexer->cursor;
- if (yych == '_') goto yy917;
- goto yy50;
-yy868:
+ if (yych == 'e') goto yy859;
+ if (yych == 'i') goto yy860;
+ goto yy83;
+yy835:
yych = *++lexer->cursor;
- if (yych <= '@') {
- if (yych <= '/') goto yy50;
- if (yych <= '9') goto yy918;
- goto yy50;
- } else {
- if (yych <= 'F') goto yy918;
- if (yych <= '`') goto yy50;
- if (yych <= 'f') goto yy918;
- goto yy50;
- }
-yy869:
+ if (yych == 'q') goto yy857;
+ goto yy83;
+yy836:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy920;
- goto yy50;
-yy870:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 260 "src/ast-lexer.c"
- { RETURN(SET_LOCAL); }
-#line 5420 "src/prebuilt/ast-lexer-gen.c"
-yy872:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 261 "src/ast-lexer.c"
- { RETURN(TEE_LOCAL); }
-#line 5428 "src/prebuilt/ast-lexer-gen.c"
-yy874:
+ if (yych == 'e') goto yy853;
+ if (yych == 't') goto yy855;
+ goto yy83;
+yy837:
yych = *++lexer->cursor;
- if (yych == 'l') goto yy922;
- goto yy50;
-yy875:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'a') goto yy923;
- goto yy50;
-yy876:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'f') goto yy924;
- goto yy50;
-yy877:
+ if (yych != 'n') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'u') goto yy925;
- goto yy50;
-yy878:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'p') goto yy926;
- goto yy50;
-yy879:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'i') goto yy928;
- goto yy50;
-yy880:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy929;
- goto yy50;
-yy881:
+ if (yych != 'p') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy931;
- goto yy50;
-yy882:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'm') goto yy932;
- goto yy50;
-yy883:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy933;
- goto yy50;
-yy884:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'g') goto yy934;
- goto yy50;
-yy885:
+ if (yych != '/') goto yy83;
yych = *++lexer->cursor;
- if (yych == '/') goto yy935;
- goto yy50;
-yy886:
+ if (yych != 'i') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '3') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '2') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 412 "src/ast-lexer.c"
+ { OPCODE(F32_REINTERPRET_I32); RETURN(CONVERT); }
+#line 4232 "src/prebuilt/ast-lexer-gen.c"
+yy853:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 389 "src/ast-lexer.c"
+ { OPCODE(F32_GE); RETURN(COMPARE); }
+#line 4240 "src/prebuilt/ast-lexer-gen.c"
+yy855:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 387 "src/ast-lexer.c"
+ { OPCODE(F32_GT); RETURN(COMPARE); }
+#line 4248 "src/prebuilt/ast-lexer-gen.c"
+yy857:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 379 "src/ast-lexer.c"
+ { OPCODE(F32_EQ); RETURN(COMPARE); }
+#line 4256 "src/prebuilt/ast-lexer-gen.c"
+yy859:
yych = *++lexer->cursor;
- if (yych == 't') goto yy936;
- goto yy50;
-yy887:
+ if (yych == 'm') goto yy863;
+ goto yy83;
+yy860:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy938;
- goto yy50;
-yy888:
+ if (yych != 'v') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 351 "src/ast-lexer.c"
+ { OPCODE(F32_DIV); RETURN(BINARY); }
+#line 4270 "src/prebuilt/ast-lexer-gen.c"
+yy863:
yych = *++lexer->cursor;
- if (yych == 't') goto yy939;
- goto yy50;
-yy889:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'g') goto yy940;
- goto yy50;
-yy890:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy941;
- goto yy50;
-yy891:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy943;
- goto yy50;
-yy892:
+ if (yych != '/') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'f') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '6') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy944;
- goto yy50;
-yy893:
+ if (yych != '4') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 262 "src/ast-lexer.c"
- { RETURN(GET_GLOBAL); }
-#line 5512 "src/prebuilt/ast-lexer-gen.c"
-yy895:
+#line 411 "src/ast-lexer.c"
+ { OPCODE(F32_DEMOTE_F64); RETURN(CONVERT); }
+#line 4292 "src/prebuilt/ast-lexer-gen.c"
+yy872:
yych = *++lexer->cursor;
- if (yych == 'y') goto yy945;
- goto yy50;
-yy896:
+ if (yych == 'x') goto yy879;
+ goto yy83;
+yy873:
yych = *++lexer->cursor;
- if (yych == '_') goto yy947;
- goto yy50;
-yy897:
+ if (yych == 'n') goto yy877;
+ goto yy83;
+yy874:
yych = *++lexer->cursor;
- if (yych == 's') goto yy948;
- if (yych == 'u') goto yy950;
- goto yy50;
-yy898:
+ if (yych != 'l') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 299 "src/ast-lexer.c"
- { OPCODE(I32_POPCNT); RETURN(UNARY); }
-#line 5533 "src/prebuilt/ast-lexer-gen.c"
-yy900:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy952;
- goto yy50;
-yy901:
- yych = *++lexer->cursor;
- if (yych == '6') goto yy953;
- goto yy50;
-yy902:
+#line 349 "src/ast-lexer.c"
+ { OPCODE(F32_MUL); RETURN(BINARY); }
+#line 4310 "src/prebuilt/ast-lexer-gen.c"
+yy877:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 282 "src/ast-lexer.c"
- { OPCODE(I32_STORE8); RETURN(STORE); }
-#line 5549 "src/prebuilt/ast-lexer-gen.c"
-yy904:
+#line 353 "src/ast-lexer.c"
+ { OPCODE(F32_MIN); RETURN(BINARY); }
+#line 4318 "src/prebuilt/ast-lexer-gen.c"
+yy879:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 355 "src/ast-lexer.c"
+ { OPCODE(F32_MAX); RETURN(BINARY); }
+#line 4326 "src/prebuilt/ast-lexer-gen.c"
+yy881:
yych = *++lexer->cursor;
- if (yych == 's') goto yy955;
- if (yych == 'u') goto yy956;
- goto yy50;
-yy905:
+ if (yych != 'u') goto yy83;
yych = *++lexer->cursor;
- if (yych == '6') goto yy957;
- goto yy50;
-yy906:
+ if (yych != 'n') goto yy83;
yych = *++lexer->cursor;
- if (yych == '_') goto yy958;
- goto yy50;
-yy907:
+ if (yych != 'c') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 311 "src/ast-lexer.c"
+ { OPCODE(F32_TRUNC); RETURN(UNARY); }
+#line 4340 "src/prebuilt/ast-lexer-gen.c"
+yy886:
yych = *++lexer->cursor;
- if (yych == '_') goto yy959;
- goto yy50;
-yy908:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == '_') goto yy960;
- goto yy50;
-yy909:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == 's') goto yy961;
- if (yych == 'u') goto yy963;
- goto yy50;
-yy910:
+ if (yych != 'r') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 300 "src/ast-lexer.c"
- { OPCODE(I64_POPCNT); RETURN(UNARY); }
-#line 5583 "src/prebuilt/ast-lexer-gen.c"
-yy912:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy965;
- goto yy50;
-yy913:
+#line 309 "src/ast-lexer.c"
+ { OPCODE(F32_FLOOR); RETURN(UNARY); }
+#line 4354 "src/prebuilt/ast-lexer-gen.c"
+yy891:
yych = *++lexer->cursor;
- if (yych == '6') goto yy966;
- goto yy50;
-yy914:
+ if (yych == 's') goto yy895;
+ goto yy83;
+yy892:
yych = *++lexer->cursor;
- if (yych == '2') goto yy968;
- goto yy50;
-yy915:
+ if (yych != 'd') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 283 "src/ast-lexer.c"
- { OPCODE(I64_STORE8); RETURN(STORE); }
-#line 5603 "src/prebuilt/ast-lexer-gen.c"
-yy917:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy970;
- if (yych == 'u') goto yy971;
- goto yy50;
-yy918:
+#line 345 "src/ast-lexer.c"
+ { OPCODE(F32_ADD); RETURN(BINARY); }
+#line 4368 "src/prebuilt/ast-lexer-gen.c"
+yy895:
++lexer->cursor;
- if (lexer->limit <= lexer->cursor) FILL(1);
- yych = *lexer->cursor;
- if (yych <= '@') {
- if (yych <= '+') {
- if (yych <= '"') {
- if (yych == '!') goto yy49;
- goto yy774;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 303 "src/ast-lexer.c"
+ { OPCODE(F32_ABS); RETURN(UNARY); }
+#line 4376 "src/prebuilt/ast-lexer-gen.c"
+yy897:
+ ++lexer->cursor;
+ if ((yych = *lexer->cursor) <= '[') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
} else {
- if (yych <= '\'') goto yy49;
- if (yych <= ')') goto yy774;
- goto yy49;
+ if (yych <= '"') goto yy898;
+ if (yych <= '\'') goto yy82;
}
} else {
- if (yych <= '9') {
- if (yych <= ',') goto yy774;
- if (yych <= '/') goto yy49;
- goto yy918;
+ if (yych <= ':') {
+ if (yych != ',') goto yy82;
} else {
- if (yych == ';') goto yy774;
- goto yy49;
+ if (yych <= ';') goto yy898;
+ if (yych <= 'Z') goto yy82;
}
}
} else {
- if (yych <= '`') {
- if (yych <= '[') {
- if (yych <= 'F') goto yy918;
- if (yych <= 'Z') goto yy49;
- goto yy774;
+ if (yych <= 'g') {
+ if (yych <= '`') {
+ if (yych != ']') goto yy82;
} else {
- if (yych == ']') goto yy774;
- goto yy49;
+ if (yych <= 'a') goto yy901;
+ if (yych <= 'f') goto yy82;
+ goto yy899;
}
} else {
- if (yych <= '{') {
- if (yych <= 'f') goto yy918;
- if (yych <= 'z') goto yy49;
- goto yy774;
+ if (yych <= '|') {
+ if (yych != '{') goto yy82;
} else {
- if (yych == '}') goto yy774;
- if (yych <= '~') goto yy49;
- goto yy774;
+ if (yych == '~') goto yy82;
}
}
}
-yy920:
+yy898:
+#line 381 "src/ast-lexer.c"
+ { OPCODE(F32_NE); RETURN(COMPARE); }
+#line 4415 "src/prebuilt/ast-lexer-gen.c"
+yy899:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 263 "src/ast-lexer.c"
- { RETURN(SET_GLOBAL); }
-#line 5662 "src/prebuilt/ast-lexer-gen.c"
-yy922:
+#line 301 "src/ast-lexer.c"
+ { OPCODE(F32_NEG); RETURN(UNARY); }
+#line 4423 "src/prebuilt/ast-lexer-gen.c"
+yy901:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy972;
- goto yy50;
-yy923:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'l') goto yy974;
- goto yy50;
-yy924:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy975;
- goto yy50;
-yy925:
+ if (yych != 's') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy976;
- goto yy50;
-yy926:
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 443 "src/ast-lexer.c"
- { RETURN(ASSERT_TRAP); }
-#line 5686 "src/prebuilt/ast-lexer-gen.c"
-yy928:
+#line 313 "src/ast-lexer.c"
+ { OPCODE(F32_NEAREST); RETURN(UNARY); }
+#line 4439 "src/prebuilt/ast-lexer-gen.c"
+yy907:
+ yych = *++lexer->cursor;
+ if (yych == 'i') goto yy943;
+ goto yy83;
+yy908:
+ yych = *++lexer->cursor;
+ if (yych == 'n') goto yy909;
+ if (yych == 'p') goto yy910;
+ goto yy83;
+yy909:
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy917;
+ if (yych == 'v') goto yy918;
+ goto yy83;
+yy910:
+ yych = *++lexer->cursor;
+ if (yych != 'y') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 's') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'n') goto yy977;
- goto yy50;
-yy929:
+ if (yych != 'i') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'g') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'n') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 254 "src/ast-lexer.c"
- { RETURN(CALL_IMPORT); }
-#line 5698 "src/prebuilt/ast-lexer-gen.c"
-yy931:
+#line 357 "src/ast-lexer.c"
+ { OPCODE(F32_COPYSIGN); RETURN(BINARY); }
+#line 4471 "src/prebuilt/ast-lexer-gen.c"
+yy917:
+ yych = *++lexer->cursor;
+ if (yych == 't') goto yy941;
+ goto yy83;
+yy918:
+ yych = *++lexer->cursor;
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'c') goto yy978;
- goto yy50;
-yy932:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'o') goto yy979;
- goto yy50;
+ if (yych != 't') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '_') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych == 's') goto yy923;
+ if (yych == 'u') goto yy924;
+ goto yy83;
+yy923:
+ yych = *++lexer->cursor;
+ if (yych == '/') goto yy933;
+ goto yy83;
+yy924:
+ yych = *++lexer->cursor;
+ if (yych != '/') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'i') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych == '3') goto yy927;
+ if (yych == '6') goto yy928;
+ goto yy83;
+yy927:
+ yych = *++lexer->cursor;
+ if (yych == '2') goto yy931;
+ goto yy83;
+yy928:
+ yych = *++lexer->cursor;
+ if (yych != '4') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 408 "src/ast-lexer.c"
+ { OPCODE(F32_CONVERT_U_I64); RETURN(CONVERT); }
+#line 4515 "src/prebuilt/ast-lexer-gen.c"
+yy931:
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 406 "src/ast-lexer.c"
+ { OPCODE(F32_CONVERT_U_I32); RETURN(CONVERT); }
+#line 4523 "src/prebuilt/ast-lexer-gen.c"
yy933:
yych = *++lexer->cursor;
- if (yych == '_') goto yy980;
- goto yy50;
-yy934:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'n') goto yy981;
- goto yy50;
+ if (yych == '3') goto yy935;
+ if (yych == '6') goto yy936;
+ goto yy83;
yy935:
yych = *++lexer->cursor;
- if (yych == 'f') goto yy983;
- goto yy50;
+ if (yych == '2') goto yy939;
+ goto yy83;
yy936:
+ yych = *++lexer->cursor;
+ if (yych != '4') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 313 "src/ast-lexer.c"
- { OPCODE(F32_NEAREST); RETURN(UNARY); }
-#line 5726 "src/prebuilt/ast-lexer-gen.c"
-yy938:
- yych = *++lexer->cursor;
- if (yych == 'p') goto yy984;
- goto yy50;
+#line 404 "src/ast-lexer.c"
+ { OPCODE(F32_CONVERT_S_I64); RETURN(CONVERT); }
+#line 4544 "src/prebuilt/ast-lexer-gen.c"
yy939:
- yych = *++lexer->cursor;
- if (yych == '_') goto yy985;
- goto yy50;
-yy940:
- yych = *++lexer->cursor;
- if (yych == 'n') goto yy986;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 402 "src/ast-lexer.c"
+ { OPCODE(F32_CONVERT_S_I32); RETURN(CONVERT); }
+#line 4552 "src/prebuilt/ast-lexer-gen.c"
yy941:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 314 "src/ast-lexer.c"
- { OPCODE(F64_NEAREST); RETURN(UNARY); }
-#line 5746 "src/prebuilt/ast-lexer-gen.c"
+#line 291 "src/ast-lexer.c"
+ { TYPE(F32); RETURN(CONST); }
+#line 4560 "src/prebuilt/ast-lexer-gen.c"
yy943:
yych = *++lexer->cursor;
- if (yych == '/') goto yy988;
- goto yy50;
-yy944:
- yych = *++lexer->cursor;
- if (yych == 'p') goto yy989;
- goto yy50;
-yy945:
+ if (yych != 'l') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 419 "src/ast-lexer.c"
- { RETURN(GROW_MEMORY); }
-#line 5762 "src/prebuilt/ast-lexer-gen.c"
+#line 307 "src/ast-lexer.c"
+ { OPCODE(F32_CEIL); RETURN(UNARY); }
+#line 4570 "src/prebuilt/ast-lexer-gen.c"
+yy946:
+ yych = *++lexer->cursor;
+ if (yych == 'r') goto yy955;
+ goto yy83;
yy947:
yych = *++lexer->cursor;
- if (yych == 's') goto yy990;
- if (yych == 'u') goto yy992;
- goto yy50;
+ if (yych == 'o') goto yy951;
+ goto yy83;
yy948:
+ yych = *++lexer->cursor;
+ if (yych != 'b') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 272 "src/ast-lexer.c"
- { OPCODE(I32_LOAD8_S); RETURN(LOAD); }
-#line 5775 "src/prebuilt/ast-lexer-gen.c"
-yy950:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 274 "src/ast-lexer.c"
- { OPCODE(I32_LOAD8_U); RETURN(LOAD); }
-#line 5783 "src/prebuilt/ast-lexer-gen.c"
-yy952:
+#line 347 "src/ast-lexer.c"
+ { OPCODE(F32_SUB); RETURN(BINARY); }
+#line 4588 "src/prebuilt/ast-lexer-gen.c"
+yy951:
yych = *++lexer->cursor;
- if (yych == 'p') goto yy994;
- goto yy50;
-yy953:
+ if (yych != 'r') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'e') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 284 "src/ast-lexer.c"
- { OPCODE(I32_STORE16); RETURN(STORE); }
-#line 5795 "src/prebuilt/ast-lexer-gen.c"
+#line 270 "src/ast-lexer.c"
+ { OPCODE(F32_STORE); RETURN(STORE); }
+#line 4600 "src/prebuilt/ast-lexer-gen.c"
yy955:
yych = *++lexer->cursor;
- if (yych == '/') goto yy995;
- goto yy50;
-yy956:
- yych = *++lexer->cursor;
- if (yych == '/') goto yy996;
- goto yy50;
-yy957:
- yych = *++lexer->cursor;
- if (yych == '4') goto yy997;
- goto yy50;
+ if (yych != 't') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 305 "src/ast-lexer.c"
+ { OPCODE(F32_SQRT); RETURN(UNARY); }
+#line 4610 "src/prebuilt/ast-lexer-gen.c"
yy958:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy999;
- if (yych == 'u') goto yy1000;
- goto yy50;
-yy959:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy1001;
- if (yych == 'u') goto yy1003;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 385 "src/ast-lexer.c"
+ { OPCODE(F32_LE); RETURN(COMPARE); }
+#line 4618 "src/prebuilt/ast-lexer-gen.c"
yy960:
yych = *++lexer->cursor;
- if (yych == 's') goto yy1005;
- if (yych == 'u') goto yy1007;
- goto yy50;
+ if (yych == 'a') goto yy963;
+ goto yy83;
yy961:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 273 "src/ast-lexer.c"
- { OPCODE(I64_LOAD8_S); RETURN(LOAD); }
-#line 5830 "src/prebuilt/ast-lexer-gen.c"
+#line 383 "src/ast-lexer.c"
+ { OPCODE(F32_LT); RETURN(COMPARE); }
+#line 4630 "src/prebuilt/ast-lexer-gen.c"
yy963:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 275 "src/ast-lexer.c"
- { OPCODE(I64_LOAD8_U); RETURN(LOAD); }
-#line 5838 "src/prebuilt/ast-lexer-gen.c"
-yy965:
yych = *++lexer->cursor;
- if (yych == 'p') goto yy1009;
- goto yy50;
-yy966:
+ if (yych != 'd') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 285 "src/ast-lexer.c"
- { OPCODE(I64_STORE16); RETURN(STORE); }
-#line 5850 "src/prebuilt/ast-lexer-gen.c"
+#line 266 "src/ast-lexer.c"
+ { OPCODE(F32_LOAD); RETURN(LOAD); }
+#line 4640 "src/prebuilt/ast-lexer-gen.c"
+yy966:
+ yych = *++lexer->cursor;
+ if (yych == 'e') goto yy977;
+ if (yych == 's') goto yy976;
+ goto yy83;
+yy967:
+ yych = *++lexer->cursor;
+ if (yych == 'd') goto yy974;
+ goto yy83;
yy968:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 286 "src/ast-lexer.c"
- { OPCODE(I64_STORE32); RETURN(STORE); }
-#line 5858 "src/prebuilt/ast-lexer-gen.c"
-yy970:
yych = *++lexer->cursor;
- if (yych == '/') goto yy1010;
- goto yy50;
-yy971:
+ if (yych != 'p') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == '/') goto yy1011;
- goto yy50;
-yy972:
+ if (yych != 'r') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 417 "src/ast-lexer.c"
- { RETURN(UNREACHABLE); }
-#line 5874 "src/prebuilt/ast-lexer-gen.c"
+#line 434 "src/ast-lexer.c"
+ { RETURN(EXPORT); }
+#line 4665 "src/prebuilt/ast-lexer-gen.c"
yy974:
- yych = *++lexer->cursor;
- if (yych == 'i') goto yy1012;
- goto yy50;
-yy975:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy1013;
- goto yy50;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 257 "src/ast-lexer.c"
+ { RETURN(END); }
+#line 4673 "src/prebuilt/ast-lexer-gen.c"
yy976:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy1014;
- goto yy50;
+ if (yych == 'e') goto yy980;
+ goto yy83;
yy977:
yych = *++lexer->cursor;
- if (yych == 'k') goto yy1016;
- goto yy50;
-yy978:
- yych = *++lexer->cursor;
- if (yych == 't') goto yy1017;
- goto yy50;
-yy979:
- yych = *++lexer->cursor;
- if (yych == 'r') goto yy1019;
- goto yy50;
+ if (yych != 'm') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 430 "src/ast-lexer.c"
+ { RETURN(ELEM); }
+#line 4687 "src/prebuilt/ast-lexer-gen.c"
yy980:
- yych = *++lexer->cursor;
- if (yych == 's') goto yy1020;
- if (yych == 'u') goto yy1021;
- goto yy50;
-yy981:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 357 "src/ast-lexer.c"
- { OPCODE(F32_COPYSIGN); RETURN(BINARY); }
-#line 5911 "src/prebuilt/ast-lexer-gen.c"
-yy983:
+#line 248 "src/ast-lexer.c"
+ { RETURN(ELSE); }
+#line 4695 "src/prebuilt/ast-lexer-gen.c"
+yy982:
yych = *++lexer->cursor;
- if (yych == '6') goto yy1022;
- goto yy50;
-yy984:
+ if (yych == 't') goto yy987;
+ goto yy83;
+yy983:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy1023;
- goto yy50;
-yy985:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == 's') goto yy1024;
- if (yych == 'u') goto yy1025;
- goto yy50;
-yy986:
+ if (yych != 'p') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 358 "src/ast-lexer.c"
- { OPCODE(F64_COPYSIGN); RETURN(BINARY); }
-#line 5932 "src/prebuilt/ast-lexer-gen.c"
-yy988:
- yych = *++lexer->cursor;
- if (yych == 'f') goto yy1026;
- goto yy50;
-yy989:
+#line 256 "src/ast-lexer.c"
+ { RETURN(DROP); }
+#line 4711 "src/prebuilt/ast-lexer-gen.c"
+yy987:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy1027;
- goto yy50;
-yy990:
+ if (yych != 'a') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 276 "src/ast-lexer.c"
- { OPCODE(I32_LOAD16_S); RETURN(LOAD); }
-#line 5948 "src/prebuilt/ast-lexer-gen.c"
-yy992:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 278 "src/ast-lexer.c"
- { OPCODE(I32_LOAD16_U); RETURN(LOAD); }
-#line 5956 "src/prebuilt/ast-lexer-gen.c"
-yy994:
+#line 431 "src/ast-lexer.c"
+ { RETURN(DATA); }
+#line 4721 "src/prebuilt/ast-lexer-gen.c"
+yy990:
yych = *++lexer->cursor;
- if (yych == 'r') goto yy1028;
- goto yy50;
-yy995:
+ if (yych == 'l') goto yy1005;
+ goto yy83;
+yy991:
yych = *++lexer->cursor;
- if (yych == 'f') goto yy1029;
- goto yy50;
-yy996:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'f') goto yy1030;
- goto yy50;
-yy997:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 393 "src/ast-lexer.c"
- { OPCODE(I32_WRAP_I64); RETURN(CONVERT); }
-#line 5976 "src/prebuilt/ast-lexer-gen.c"
-yy999:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == '/') goto yy1031;
- goto yy50;
-yy1000:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == '/') goto yy1032;
- goto yy50;
-yy1001:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 277 "src/ast-lexer.c"
- { OPCODE(I64_LOAD16_S); RETURN(LOAD); }
-#line 5992 "src/prebuilt/ast-lexer-gen.c"
-yy1003:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 279 "src/ast-lexer.c"
- { OPCODE(I64_LOAD16_U); RETURN(LOAD); }
-#line 6000 "src/prebuilt/ast-lexer-gen.c"
-yy1005:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 280 "src/ast-lexer.c"
- { OPCODE(I64_LOAD32_S); RETURN(LOAD); }
-#line 6008 "src/prebuilt/ast-lexer-gen.c"
-yy1007:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 281 "src/ast-lexer.c"
- { OPCODE(I64_LOAD32_U); RETURN(LOAD); }
-#line 6016 "src/prebuilt/ast-lexer-gen.c"
-yy1009:
+ if (yych != 'n') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'r') goto yy1033;
- goto yy50;
-yy1010:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'f') goto yy1034;
- goto yy50;
-yy1011:
+ if (yych != '_') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'f') goto yy1035;
- goto yy50;
-yy1012:
+ if (yych != 'm') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'e') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'm') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'd') goto yy1036;
- goto yy50;
-yy1013:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'm') goto yy1038;
- goto yy50;
-yy1014:
+ if (yych != 'r') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'y') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 418 "src/ast-lexer.c"
+ { RETURN(CURRENT_MEMORY); }
+#line 4757 "src/prebuilt/ast-lexer-gen.c"
+yy1005:
+ yych = *++lexer->cursor;
+ if (yych != 'l') goto yy83;
++lexer->cursor;
if ((yych = *lexer->cursor) <= 'Z') {
if (yych <= ')') {
if (yych <= '!') {
- if (yych >= '!') goto yy49;
+ if (yych >= '!') goto yy82;
} else {
- if (yych <= '"') goto yy1015;
- if (yych <= '\'') goto yy49;
+ if (yych <= '"') goto yy1007;
+ if (yych <= '\'') goto yy82;
}
} else {
if (yych <= ',') {
- if (yych <= '+') goto yy49;
+ if (yych <= '+') goto yy82;
} else {
- if (yych != ';') goto yy49;
+ if (yych != ';') goto yy82;
}
}
} else {
if (yych <= '_') {
if (yych <= '\\') {
- if (yych >= '\\') goto yy49;
+ if (yych >= '\\') goto yy82;
} else {
- if (yych <= ']') goto yy1015;
- if (yych <= '^') goto yy49;
- goto yy1039;
+ if (yych <= ']') goto yy1007;
+ if (yych <= '^') goto yy82;
+ goto yy1008;
}
} else {
if (yych <= '|') {
- if (yych != '{') goto yy49;
+ if (yych != '{') goto yy82;
} else {
- if (yych == '~') goto yy49;
+ if (yych == '~') goto yy82;
}
}
}
-yy1015:
-#line 441 "src/ast-lexer.c"
- { RETURN(ASSERT_RETURN); }
-#line 6074 "src/prebuilt/ast-lexer-gen.c"
-yy1016:
+yy1007:
+#line 253 "src/ast-lexer.c"
+ { RETURN(CALL); }
+#line 4797 "src/prebuilt/ast-lexer-gen.c"
+yy1008:
+ yych = *++lexer->cursor;
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'a') goto yy1040;
- goto yy50;
-yy1017:
+ if (yych <= 'l') goto yy83;
+ if (yych <= 'm') goto yy1010;
+ if (yych <= 'n') goto yy1011;
+ goto yy83;
+yy1010:
+ yych = *++lexer->cursor;
+ if (yych == 'p') goto yy1019;
+ goto yy83;
+yy1011:
+ yych = *++lexer->cursor;
+ if (yych != 'd') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'i') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'r') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'e') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'c') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 't') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
#line 255 "src/ast-lexer.c"
{ RETURN(CALL_INDIRECT); }
-#line 6086 "src/prebuilt/ast-lexer-gen.c"
+#line 4829 "src/prebuilt/ast-lexer-gen.c"
yy1019:
yych = *++lexer->cursor;
- if (yych == 'y') goto yy1041;
- goto yy50;
-yy1020:
- yych = *++lexer->cursor;
- if (yych == '/') goto yy1043;
- goto yy50;
-yy1021:
- yych = *++lexer->cursor;
- if (yych == '/') goto yy1044;
- goto yy50;
-yy1022:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == '4') goto yy1045;
- goto yy50;
-yy1023:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy1047;
- goto yy50;
+ if (yych != 't') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 254 "src/ast-lexer.c"
+ { RETURN(CALL_IMPORT); }
+#line 4843 "src/prebuilt/ast-lexer-gen.c"
yy1024:
yych = *++lexer->cursor;
- if (yych == '/') goto yy1048;
- goto yy50;
+ if (yych == 'o') goto yy1037;
+ goto yy83;
yy1025:
- yych = *++lexer->cursor;
- if (yych == '/') goto yy1049;
- goto yy50;
+ ++lexer->cursor;
+ if ((yych = *lexer->cursor) <= 'Z') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
+ } else {
+ if (yych <= '"') goto yy1026;
+ if (yych <= '\'') goto yy82;
+ }
+ } else {
+ if (yych <= ',') {
+ if (yych <= '+') goto yy82;
+ } else {
+ if (yych != ';') goto yy82;
+ }
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= '\\') {
+ if (yych >= '\\') goto yy82;
+ } else {
+ if (yych <= ']') goto yy1026;
+ if (yych <= '^') goto yy82;
+ goto yy1027;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych != '{') goto yy82;
+ } else {
+ if (yych == '~') goto yy82;
+ }
+ }
+ }
yy1026:
- yych = *++lexer->cursor;
- if (yych == '3') goto yy1050;
- goto yy50;
+#line 250 "src/ast-lexer.c"
+ { RETURN(BR); }
+#line 4885 "src/prebuilt/ast-lexer-gen.c"
yy1027:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy1051;
- goto yy50;
+ if (yych == 'i') goto yy1028;
+ if (yych == 't') goto yy1029;
+ goto yy83;
yy1028:
yych = *++lexer->cursor;
- if (yych == 'e') goto yy1052;
- goto yy50;
+ if (yych == 'f') goto yy1035;
+ goto yy83;
yy1029:
yych = *++lexer->cursor;
- if (yych == '3') goto yy1053;
- if (yych == '6') goto yy1054;
- goto yy50;
-yy1030:
- yych = *++lexer->cursor;
- if (yych == '3') goto yy1055;
- if (yych == '6') goto yy1056;
- goto yy50;
-yy1031:
- yych = *++lexer->cursor;
- if (yych == 'i') goto yy1057;
- goto yy50;
-yy1032:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'i') goto yy1058;
- goto yy50;
-yy1033:
+ if (yych != 'b') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy1059;
- goto yy50;
-yy1034:
+ if (yych != 'l') goto yy83;
yych = *++lexer->cursor;
- if (yych == '3') goto yy1060;
- if (yych == '6') goto yy1061;
- goto yy50;
+ if (yych != 'e') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 252 "src/ast-lexer.c"
+ { RETURN(BR_TABLE); }
+#line 4910 "src/prebuilt/ast-lexer-gen.c"
yy1035:
- yych = *++lexer->cursor;
- if (yych == '3') goto yy1062;
- if (yych == '6') goto yy1063;
- goto yy50;
-yy1036:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 439 "src/ast-lexer.c"
- { RETURN(ASSERT_INVALID); }
-#line 6166 "src/prebuilt/ast-lexer-gen.c"
-yy1038:
- yych = *++lexer->cursor;
- if (yych == 'e') goto yy1064;
- goto yy50;
-yy1039:
+#line 251 "src/ast-lexer.c"
+ { RETURN(BR_IF); }
+#line 4918 "src/prebuilt/ast-lexer-gen.c"
+yy1037:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy1065;
- goto yy50;
-yy1040:
+ if (yych != 'c') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'b') goto yy1066;
- goto yy50;
-yy1041:
+ if (yych != 'k') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 418 "src/ast-lexer.c"
- { RETURN(CURRENT_MEMORY); }
-#line 6186 "src/prebuilt/ast-lexer-gen.c"
+#line 244 "src/ast-lexer.c"
+ { RETURN(BLOCK); }
+#line 4930 "src/prebuilt/ast-lexer-gen.c"
+yy1041:
+ yych = *++lexer->cursor;
+ if (yych == 'i') goto yy1112;
+ goto yy83;
+yy1042:
+ yych = *++lexer->cursor;
+ if (yych == 'y') goto yy1106;
+ goto yy83;
yy1043:
yych = *++lexer->cursor;
- if (yych == 'i') goto yy1067;
- goto yy50;
-yy1044:
+ if (yych != 's') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'i') goto yy1068;
- goto yy50;
-yy1045:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 411 "src/ast-lexer.c"
- { OPCODE(F32_DEMOTE_F64); RETURN(CONVERT); }
-#line 6202 "src/prebuilt/ast-lexer-gen.c"
-yy1047:
+ if (yych != 'e') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy1069;
- goto yy50;
-yy1048:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'i') goto yy1070;
- goto yy50;
+ if (yych != 't') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '_') goto yy83;
+ yych = *++lexer->cursor;
+ switch (yych) {
+ case 'e': goto yy1049;
+ case 'i': goto yy1050;
+ case 'm': goto yy1051;
+ case 'r': goto yy1052;
+ case 't': goto yy1053;
+ case 'u': goto yy1054;
+ default: goto yy83;
+ }
yy1049:
yych = *++lexer->cursor;
- if (yych == 'i') goto yy1071;
- goto yy50;
+ if (yych == 'x') goto yy1096;
+ goto yy83;
yy1050:
yych = *++lexer->cursor;
- if (yych == '2') goto yy1072;
- goto yy50;
+ if (yych == 'n') goto yy1089;
+ goto yy83;
yy1051:
yych = *++lexer->cursor;
- if (yych == 't') goto yy1074;
- goto yy50;
+ if (yych == 'a') goto yy1080;
+ goto yy83;
yy1052:
yych = *++lexer->cursor;
- if (yych == 't') goto yy1075;
- goto yy50;
+ if (yych == 'e') goto yy1069;
+ goto yy83;
yy1053:
yych = *++lexer->cursor;
- if (yych == '2') goto yy1076;
- goto yy50;
+ if (yych == 'r') goto yy1065;
+ goto yy83;
yy1054:
yych = *++lexer->cursor;
- if (yych == '4') goto yy1078;
- goto yy50;
-yy1055:
- yych = *++lexer->cursor;
- if (yych == '2') goto yy1080;
- goto yy50;
-yy1056:
- yych = *++lexer->cursor;
- if (yych == '4') goto yy1082;
- goto yy50;
-yy1057:
+ if (yych != 'n') goto yy83;
yych = *++lexer->cursor;
- if (yych == '3') goto yy1084;
- goto yy50;
-yy1058:
+ if (yych != 'l') goto yy83;
yych = *++lexer->cursor;
- if (yych == '3') goto yy1085;
- goto yy50;
-yy1059:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == 't') goto yy1086;
- goto yy50;
-yy1060:
+ if (yych != 'n') goto yy83;
yych = *++lexer->cursor;
- if (yych == '2') goto yy1087;
- goto yy50;
-yy1061:
+ if (yych != 'k') goto yy83;
yych = *++lexer->cursor;
- if (yych == '4') goto yy1089;
- goto yy50;
-yy1062:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych == '2') goto yy1091;
- goto yy50;
-yy1063:
+ if (yych != 'b') goto yy83;
yych = *++lexer->cursor;
- if (yych == '4') goto yy1093;
- goto yy50;
-yy1064:
+ if (yych != 'l') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'd') goto yy1095;
- goto yy50;
+ if (yych != 'e') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 440 "src/ast-lexer.c"
+ { RETURN(ASSERT_UNLINKABLE); }
+#line 5005 "src/prebuilt/ast-lexer-gen.c"
yy1065:
yych = *++lexer->cursor;
- if (yych == 'a') goto yy1097;
- goto yy50;
-yy1066:
- yych = *++lexer->cursor;
- if (yych == 'l') goto yy1098;
- goto yy50;
-yy1067:
- yych = *++lexer->cursor;
- if (yych == '3') goto yy1099;
- if (yych == '6') goto yy1100;
- goto yy50;
-yy1068:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych == '3') goto yy1101;
- if (yych == '6') goto yy1102;
- goto yy50;
+ if (yych != 'p') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 443 "src/ast-lexer.c"
+ { RETURN(ASSERT_TRAP); }
+#line 5017 "src/prebuilt/ast-lexer-gen.c"
yy1069:
yych = *++lexer->cursor;
- if (yych == '/') goto yy1103;
- goto yy50;
-yy1070:
+ if (yych != 't') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'u') goto yy83;
yych = *++lexer->cursor;
- if (yych == '3') goto yy1104;
- if (yych == '6') goto yy1105;
- goto yy50;
-yy1071:
+ if (yych != 'r') goto yy83;
yych = *++lexer->cursor;
- if (yych == '3') goto yy1106;
- if (yych == '6') goto yy1107;
- goto yy50;
-yy1072:
+ if (yych != 'n') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if ((yych = *lexer->cursor) <= 'Z') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
+ } else {
+ if (yych <= '"') goto yy1074;
+ if (yych <= '\'') goto yy82;
+ }
+ } else {
+ if (yych <= ',') {
+ if (yych <= '+') goto yy82;
+ } else {
+ if (yych != ';') goto yy82;
+ }
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= '\\') {
+ if (yych >= '\\') goto yy82;
+ } else {
+ if (yych <= ']') goto yy1074;
+ if (yych <= '^') goto yy82;
+ goto yy1075;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych != '{') goto yy82;
+ } else {
+ if (yych == '~') goto yy82;
+ }
+ }
}
-#line 410 "src/ast-lexer.c"
- { OPCODE(F64_PROMOTE_F32); RETURN(CONVERT); }
-#line 6314 "src/prebuilt/ast-lexer-gen.c"
yy1074:
- yych = *++lexer->cursor;
- if (yych == '/') goto yy1108;
- goto yy50;
+#line 441 "src/ast-lexer.c"
+ { RETURN(ASSERT_RETURN); }
+#line 5063 "src/prebuilt/ast-lexer-gen.c"
yy1075:
yych = *++lexer->cursor;
- if (yych == '/') goto yy1109;
- goto yy50;
-yy1076:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 394 "src/ast-lexer.c"
- { OPCODE(I32_TRUNC_S_F32); RETURN(CONVERT); }
-#line 6330 "src/prebuilt/ast-lexer-gen.c"
-yy1078:
+ if (yych != 'n') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'a') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'n') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 396 "src/ast-lexer.c"
- { OPCODE(I32_TRUNC_S_F64); RETURN(CONVERT); }
-#line 6338 "src/prebuilt/ast-lexer-gen.c"
+#line 442 "src/ast-lexer.c"
+ { RETURN(ASSERT_RETURN_NAN); }
+#line 5077 "src/prebuilt/ast-lexer-gen.c"
yy1080:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 398 "src/ast-lexer.c"
- { OPCODE(I32_TRUNC_U_F32); RETURN(CONVERT); }
-#line 6346 "src/prebuilt/ast-lexer-gen.c"
-yy1082:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 400 "src/ast-lexer.c"
- { OPCODE(I32_TRUNC_U_F64); RETURN(CONVERT); }
-#line 6354 "src/prebuilt/ast-lexer-gen.c"
-yy1084:
yych = *++lexer->cursor;
- if (yych == '2') goto yy1110;
- goto yy50;
-yy1085:
+ if (yych != 'l') goto yy83;
yych = *++lexer->cursor;
- if (yych == '2') goto yy1112;
- goto yy50;
-yy1086:
+ if (yych != 'f') goto yy83;
yych = *++lexer->cursor;
- if (yych == '/') goto yy1114;
- goto yy50;
-yy1087:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 395 "src/ast-lexer.c"
- { OPCODE(I64_TRUNC_S_F32); RETURN(CONVERT); }
-#line 6374 "src/prebuilt/ast-lexer-gen.c"
-yy1089:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 397 "src/ast-lexer.c"
- { OPCODE(I64_TRUNC_S_F64); RETURN(CONVERT); }
-#line 6382 "src/prebuilt/ast-lexer-gen.c"
-yy1091:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 399 "src/ast-lexer.c"
- { OPCODE(I64_TRUNC_U_F32); RETURN(CONVERT); }
-#line 6390 "src/prebuilt/ast-lexer-gen.c"
-yy1093:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 401 "src/ast-lexer.c"
- { OPCODE(I64_TRUNC_U_F64); RETURN(CONVERT); }
-#line 6398 "src/prebuilt/ast-lexer-gen.c"
-yy1095:
+ if (yych != 'o') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'r') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'm') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'e') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'd') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
#line 438 "src/ast-lexer.c"
{ RETURN(ASSERT_MALFORMED); }
-#line 6406 "src/prebuilt/ast-lexer-gen.c"
-yy1097:
+#line 5099 "src/prebuilt/ast-lexer-gen.c"
+yy1089:
yych = *++lexer->cursor;
- if (yych == 'n') goto yy1115;
- goto yy50;
-yy1098:
+ if (yych != 'v') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'e') goto yy1117;
- goto yy50;
-yy1099:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych == '2') goto yy1119;
- goto yy50;
-yy1100:
+ if (yych != 'l') goto yy83;
yych = *++lexer->cursor;
- if (yych == '4') goto yy1121;
- goto yy50;
-yy1101:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == '2') goto yy1123;
- goto yy50;
-yy1102:
+ if (yych != 'd') goto yy83;
+ ++lexer->cursor;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
+ }
+#line 439 "src/ast-lexer.c"
+ { RETURN(ASSERT_INVALID); }
+#line 5117 "src/prebuilt/ast-lexer-gen.c"
+yy1096:
yych = *++lexer->cursor;
- if (yych == '4') goto yy1125;
- goto yy50;
-yy1103:
+ if (yych != 'h') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'i') goto yy1127;
- goto yy50;
-yy1104:
+ if (yych != 'a') goto yy83;
yych = *++lexer->cursor;
- if (yych == '2') goto yy1128;
- goto yy50;
-yy1105:
+ if (yych != 'u') goto yy83;
yych = *++lexer->cursor;
- if (yych == '4') goto yy1130;
- goto yy50;
-yy1106:
+ if (yych != 's') goto yy83;
yych = *++lexer->cursor;
- if (yych == '2') goto yy1132;
- goto yy50;
-yy1107:
+ if (yych != 't') goto yy83;
yych = *++lexer->cursor;
- if (yych == '4') goto yy1134;
- goto yy50;
-yy1108:
+ if (yych != 'i') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'i') goto yy1136;
- goto yy50;
-yy1109:
+ if (yych != 'o') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'f') goto yy1137;
- goto yy50;
-yy1110:
+ if (yych != 'n') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 391 "src/ast-lexer.c"
- { OPCODE(I64_EXTEND_S_I32); RETURN(CONVERT); }
-#line 6466 "src/prebuilt/ast-lexer-gen.c"
-yy1112:
+#line 444 "src/ast-lexer.c"
+ { RETURN(ASSERT_EXHAUSTION); }
+#line 5141 "src/prebuilt/ast-lexer-gen.c"
+yy1106:
+ yych = *++lexer->cursor;
+ if (yych != 'f') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'u') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'n') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'c') goto yy83;
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (yybm[0+(yych = *lexer->cursor)] & 8) {
+ goto yy82;
}
-#line 392 "src/ast-lexer.c"
- { OPCODE(I64_EXTEND_U_I32); RETURN(CONVERT); }
-#line 6474 "src/prebuilt/ast-lexer-gen.c"
-yy1114:
+#line 241 "src/ast-lexer.c"
+ { RETURN(ANYFUNC); }
+#line 5157 "src/prebuilt/ast-lexer-gen.c"
+yy1112:
+ yych = *++lexer->cursor;
+ if (yych != 'g') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != 'n') goto yy83;
+ yych = *++lexer->cursor;
+ if (yych != '=') goto yy83;
yych = *++lexer->cursor;
- if (yych == 'f') goto yy1138;
- goto yy50;
-yy1115:
+ if (yych <= '/') goto yy83;
+ if (yych <= '0') goto yy1116;
+ if (yych <= '9') goto yy1118;
+ goto yy83;
+yy1116:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if ((yych = *lexer->cursor) <= ';') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
+ } else {
+ if (yych <= '"') goto yy1117;
+ if (yych <= '\'') goto yy82;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych != ',') goto yy82;
+ } else {
+ if (yych <= '9') goto yy1118;
+ if (yych <= ':') goto yy82;
+ }
+ }
+ } else {
+ if (yych <= 'x') {
+ if (yych <= '\\') {
+ if (yych != '[') goto yy82;
+ } else {
+ if (yych <= ']') goto yy1117;
+ if (yych <= 'w') goto yy82;
+ goto yy1120;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych != '{') goto yy82;
+ } else {
+ if (yych == '~') goto yy82;
+ }
+ }
}
-#line 442 "src/ast-lexer.c"
- { RETURN(ASSERT_RETURN_NAN); }
-#line 6486 "src/prebuilt/ast-lexer-gen.c"
yy1117:
+#line 288 "src/ast-lexer.c"
+ { TEXT_AT(6); RETURN(ALIGN_EQ_NAT); }
+#line 5208 "src/prebuilt/ast-lexer-gen.c"
+yy1118:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (lexer->limit <= lexer->cursor) FILL(1);
+ yych = *lexer->cursor;
+ if (yych <= ':') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych <= ' ') goto yy1117;
+ goto yy82;
+ } else {
+ if (yych <= '"') goto yy1117;
+ if (yych <= '\'') goto yy82;
+ goto yy1117;
+ }
+ } else {
+ if (yych <= ',') {
+ if (yych <= '+') goto yy82;
+ goto yy1117;
+ } else {
+ if (yych <= '/') goto yy82;
+ if (yych <= '9') goto yy1118;
+ goto yy82;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= 'Z') {
+ if (yych <= ';') goto yy1117;
+ goto yy82;
+ } else {
+ if (yych == '\\') goto yy82;
+ goto yy1117;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych == '{') goto yy1117;
+ goto yy82;
+ } else {
+ if (yych == '~') goto yy82;
+ goto yy1117;
+ }
+ }
}
-#line 440 "src/ast-lexer.c"
- { RETURN(ASSERT_UNLINKABLE); }
-#line 6494 "src/prebuilt/ast-lexer-gen.c"
-yy1119:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+yy1120:
+ yych = *++lexer->cursor;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy83;
+ if (yych >= ':') goto yy83;
+ } else {
+ if (yych <= 'F') goto yy1121;
+ if (yych <= '`') goto yy83;
+ if (yych >= 'g') goto yy83;
}
-#line 402 "src/ast-lexer.c"
- { OPCODE(F32_CONVERT_S_I32); RETURN(CONVERT); }
-#line 6502 "src/prebuilt/ast-lexer-gen.c"
yy1121:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (lexer->limit <= lexer->cursor) FILL(1);
+ yych = *lexer->cursor;
+ if (yych <= '@') {
+ if (yych <= '+') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy82;
+ goto yy1117;
+ } else {
+ if (yych <= '\'') goto yy82;
+ if (yych <= ')') goto yy1117;
+ goto yy82;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= ',') goto yy1117;
+ if (yych <= '/') goto yy82;
+ goto yy1121;
+ } else {
+ if (yych == ';') goto yy1117;
+ goto yy82;
+ }
+ }
+ } else {
+ if (yych <= '`') {
+ if (yych <= '[') {
+ if (yych <= 'F') goto yy1121;
+ if (yych <= 'Z') goto yy82;
+ goto yy1117;
+ } else {
+ if (yych == ']') goto yy1117;
+ goto yy82;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych <= 'f') goto yy1121;
+ if (yych <= 'z') goto yy82;
+ goto yy1117;
+ } else {
+ if (yych == '}') goto yy1117;
+ if (yych <= '~') goto yy82;
+ goto yy1117;
+ }
+ }
}
-#line 404 "src/ast-lexer.c"
- { OPCODE(F32_CONVERT_S_I64); RETURN(CONVERT); }
-#line 6510 "src/prebuilt/ast-lexer-gen.c"
yy1123:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
- }
-#line 406 "src/ast-lexer.c"
- { OPCODE(F32_CONVERT_U_I32); RETURN(CONVERT); }
-#line 6518 "src/prebuilt/ast-lexer-gen.c"
+ BEGIN(YYCOND_LINE_COMMENT);
+#line 449 "src/ast-lexer.c"
+ { continue; }
+#line 5313 "src/prebuilt/ast-lexer-gen.c"
yy1125:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if ((lexer->limit - lexer->cursor) < 3) FILL(3);
+ yych = *lexer->cursor;
+ if (yych <= 'D') {
+ if (yych <= '+') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy82;
+ } else {
+ if (yych <= '\'') goto yy82;
+ if (yych >= '*') goto yy82;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= ',') goto yy1127;
+ if (yych <= '/') goto yy82;
+ goto yy1125;
+ } else {
+ if (yych != ';') goto yy82;
+ }
+ }
+ } else {
+ if (yych <= 'd') {
+ if (yych <= '[') {
+ if (yych <= 'E') goto yy1130;
+ if (yych <= 'Z') goto yy82;
+ } else {
+ if (yych != ']') goto yy82;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych <= 'e') goto yy1130;
+ if (yych <= 'z') goto yy82;
+ } else {
+ if (yych == '}') goto yy1127;
+ if (yych <= '~') goto yy82;
+ }
+ }
}
-#line 408 "src/ast-lexer.c"
- { OPCODE(F32_CONVERT_U_I64); RETURN(CONVERT); }
-#line 6526 "src/prebuilt/ast-lexer-gen.c"
yy1127:
- yych = *++lexer->cursor;
- if (yych == '3') goto yy1139;
- goto yy50;
+#line 224 "src/ast-lexer.c"
+ { LITERAL(FLOAT); RETURN(FLOAT); }
+#line 5356 "src/prebuilt/ast-lexer-gen.c"
yy1128:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if ((lexer->limit - lexer->cursor) < 3) FILL(3);
+ yych = *lexer->cursor;
+ if (yych <= ';') {
+ if (yych <= '+') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy82;
+ goto yy62;
+ } else {
+ if (yych <= '\'') goto yy82;
+ if (yych <= ')') goto yy62;
+ goto yy82;
+ }
+ } else {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy62;
+ if (yych <= '-') goto yy82;
+ goto yy1125;
+ } else {
+ if (yych <= '/') goto yy82;
+ if (yych <= '9') goto yy1128;
+ if (yych <= ':') goto yy82;
+ goto yy62;
+ }
+ }
+ } else {
+ if (yych <= 'd') {
+ if (yych <= 'Z') {
+ if (yych != 'E') goto yy82;
+ } else {
+ if (yych == '\\') goto yy82;
+ if (yych <= ']') goto yy62;
+ goto yy82;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych <= 'e') goto yy1130;
+ if (yych <= 'z') goto yy82;
+ goto yy62;
+ } else {
+ if (yych == '}') goto yy62;
+ if (yych <= '~') goto yy82;
+ goto yy62;
+ }
+ }
}
-#line 403 "src/ast-lexer.c"
- { OPCODE(F64_CONVERT_S_I32); RETURN(CONVERT); }
-#line 6538 "src/prebuilt/ast-lexer-gen.c"
yy1130:
- ++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ yych = *++lexer->cursor;
+ if (yych <= ',') {
+ if (yych != '+') goto yy83;
+ } else {
+ if (yych <= '-') goto yy1131;
+ if (yych <= '/') goto yy83;
+ if (yych <= '9') goto yy1132;
+ goto yy83;
}
-#line 405 "src/ast-lexer.c"
- { OPCODE(F64_CONVERT_S_I64); RETURN(CONVERT); }
-#line 6546 "src/prebuilt/ast-lexer-gen.c"
+yy1131:
+ yych = *++lexer->cursor;
+ if (yych <= '/') goto yy83;
+ if (yych >= ':') goto yy83;
yy1132:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if (lexer->limit <= lexer->cursor) FILL(1);
+ yych = *lexer->cursor;
+ if (yych <= ':') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych <= ' ') goto yy1127;
+ goto yy82;
+ } else {
+ if (yych <= '"') goto yy1127;
+ if (yych <= '\'') goto yy82;
+ goto yy1127;
+ }
+ } else {
+ if (yych <= ',') {
+ if (yych <= '+') goto yy82;
+ goto yy1127;
+ } else {
+ if (yych <= '/') goto yy82;
+ if (yych <= '9') goto yy1132;
+ goto yy82;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= 'Z') {
+ if (yych <= ';') goto yy1127;
+ goto yy82;
+ } else {
+ if (yych == '\\') goto yy82;
+ goto yy1127;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych == '{') goto yy1127;
+ goto yy82;
+ } else {
+ if (yych == '~') goto yy82;
+ goto yy1127;
+ }
+ }
}
-#line 407 "src/ast-lexer.c"
- { OPCODE(F64_CONVERT_U_I32); RETURN(CONVERT); }
-#line 6554 "src/prebuilt/ast-lexer-gen.c"
yy1134:
+ yych = *++lexer->cursor;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy83;
+ if (yych >= ':') goto yy83;
+ } else {
+ if (yych <= 'F') goto yy1135;
+ if (yych <= '`') goto yy83;
+ if (yych >= 'g') goto yy83;
+ }
+yy1135:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if ((lexer->limit - lexer->cursor) < 3) FILL(3);
+ yych = *lexer->cursor;
+ if (yych <= '@') {
+ if (yych <= ',') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy82;
+ goto yy62;
+ } else {
+ if (yych <= '\'') goto yy82;
+ if (yych <= ')') goto yy62;
+ if (yych <= '+') goto yy82;
+ goto yy62;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych != '.') goto yy82;
+ } else {
+ if (yych <= '9') goto yy1135;
+ if (yych == ';') goto yy62;
+ goto yy82;
+ }
+ }
+ } else {
+ if (yych <= 'f') {
+ if (yych <= '[') {
+ if (yych <= 'F') goto yy1135;
+ if (yych <= 'Z') goto yy82;
+ goto yy62;
+ } else {
+ if (yych == ']') goto yy62;
+ if (yych <= '`') goto yy82;
+ goto yy1135;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'p') goto yy1139;
+ if (yych <= 'z') goto yy82;
+ goto yy62;
+ } else {
+ if (yych == '}') goto yy62;
+ if (yych <= '~') goto yy82;
+ goto yy62;
+ }
+ }
}
-#line 409 "src/ast-lexer.c"
- { OPCODE(F64_CONVERT_U_I64); RETURN(CONVERT); }
-#line 6562 "src/prebuilt/ast-lexer-gen.c"
-yy1136:
- yych = *++lexer->cursor;
- if (yych == '6') goto yy1140;
- goto yy50;
yy1137:
- yych = *++lexer->cursor;
- if (yych == '3') goto yy1141;
- goto yy50;
-yy1138:
- yych = *++lexer->cursor;
- if (yych == '6') goto yy1142;
- goto yy50;
+ ++lexer->cursor;
+ if ((lexer->limit - lexer->cursor) < 3) FILL(3);
+ yych = *lexer->cursor;
+ if (yych <= 'F') {
+ if (yych <= '+') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy82;
+ goto yy52;
+ } else {
+ if (yych <= '\'') goto yy82;
+ if (yych <= ')') goto yy52;
+ goto yy82;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= ',') goto yy52;
+ if (yych <= '/') goto yy82;
+ goto yy1137;
+ } else {
+ if (yych == ';') goto yy52;
+ if (yych <= '@') goto yy82;
+ goto yy1137;
+ }
+ }
+ } else {
+ if (yych <= 'o') {
+ if (yych <= '\\') {
+ if (yych == '[') goto yy52;
+ goto yy82;
+ } else {
+ if (yych <= ']') goto yy52;
+ if (yych <= '`') goto yy82;
+ if (yych <= 'f') goto yy1137;
+ goto yy82;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych <= 'p') goto yy1139;
+ if (yych <= 'z') goto yy82;
+ goto yy52;
+ } else {
+ if (yych == '}') goto yy52;
+ if (yych <= '~') goto yy82;
+ goto yy52;
+ }
+ }
+ }
yy1139:
yych = *++lexer->cursor;
- if (yych == '2') goto yy1143;
- goto yy50;
+ if (yych <= ',') {
+ if (yych != '+') goto yy83;
+ } else {
+ if (yych <= '-') goto yy1140;
+ if (yych <= '/') goto yy83;
+ if (yych <= '9') goto yy1141;
+ goto yy83;
+ }
yy1140:
yych = *++lexer->cursor;
- if (yych == '4') goto yy1145;
- goto yy50;
+ if (yych <= '/') goto yy83;
+ if (yych >= ':') goto yy83;
yy1141:
- yych = *++lexer->cursor;
- if (yych == '2') goto yy1147;
- goto yy50;
-yy1142:
- yych = *++lexer->cursor;
- if (yych == '4') goto yy1149;
- goto yy50;
+ ++lexer->cursor;
+ if (lexer->limit <= lexer->cursor) FILL(1);
+ yych = *lexer->cursor;
+ if (yych <= ':') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy82;
+ } else {
+ if (yych <= '"') goto yy1143;
+ if (yych <= '\'') goto yy82;
+ }
+ } else {
+ if (yych <= ',') {
+ if (yych <= '+') goto yy82;
+ } else {
+ if (yych <= '/') goto yy82;
+ if (yych <= '9') goto yy1141;
+ goto yy82;
+ }
+ }
+ } else {
+ if (yych <= ']') {
+ if (yych <= 'Z') {
+ if (yych >= '<') goto yy82;
+ } else {
+ if (yych == '\\') goto yy82;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych != '{') goto yy82;
+ } else {
+ if (yych == '~') goto yy82;
+ }
+ }
+ }
yy1143:
+#line 225 "src/ast-lexer.c"
+ { LITERAL(HEXFLOAT); RETURN(FLOAT); }
+#line 5619 "src/prebuilt/ast-lexer-gen.c"
+yy1144:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if ((yych = *lexer->cursor) <= 'D') {
+ if (yych <= ',') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy82;
+ } else {
+ if (yych <= '\'') goto yy82;
+ if (yych <= ')') goto yy1145;
+ if (yych <= '+') goto yy82;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych == '.') goto yy1125;
+ goto yy82;
+ } else {
+ if (yych <= '9') goto yy1146;
+ if (yych != ';') goto yy82;
+ }
+ }
+ } else {
+ if (yych <= 'e') {
+ if (yych <= '[') {
+ if (yych <= 'E') goto yy1130;
+ if (yych <= 'Z') goto yy82;
+ } else {
+ if (yych == ']') goto yy1145;
+ if (yych <= 'd') goto yy82;
+ goto yy1130;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'x') goto yy1151;
+ if (yych <= 'z') goto yy82;
+ } else {
+ if (yych == '}') goto yy1145;
+ if (yych <= '~') goto yy82;
+ }
+ }
}
-#line 412 "src/ast-lexer.c"
- { OPCODE(F32_REINTERPRET_I32); RETURN(CONVERT); }
-#line 6598 "src/prebuilt/ast-lexer-gen.c"
yy1145:
+#line 223 "src/ast-lexer.c"
+ { LITERAL(INT); RETURN(INT); }
+#line 5663 "src/prebuilt/ast-lexer-gen.c"
+yy1146:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if ((lexer->limit - lexer->cursor) < 3) FILL(3);
+ yych = *lexer->cursor;
+ if (yych <= ';') {
+ if (yych <= '+') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy82;
+ goto yy1145;
+ } else {
+ if (yych <= '\'') goto yy82;
+ if (yych <= ')') goto yy1145;
+ goto yy82;
+ }
+ } else {
+ if (yych <= '.') {
+ if (yych <= ',') goto yy1145;
+ if (yych <= '-') goto yy82;
+ goto yy1125;
+ } else {
+ if (yych <= '/') goto yy82;
+ if (yych <= '9') goto yy1146;
+ if (yych <= ':') goto yy82;
+ goto yy1145;
+ }
+ }
+ } else {
+ if (yych <= 'd') {
+ if (yych <= 'Z') {
+ if (yych == 'E') goto yy1130;
+ goto yy82;
+ } else {
+ if (yych == '\\') goto yy82;
+ if (yych <= ']') goto yy1145;
+ goto yy82;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych <= 'e') goto yy1130;
+ if (yych <= 'z') goto yy82;
+ goto yy1145;
+ } else {
+ if (yych == '}') goto yy1145;
+ if (yych <= '~') goto yy82;
+ goto yy1145;
+ }
+ }
}
-#line 414 "src/ast-lexer.c"
- { OPCODE(F64_REINTERPRET_I64); RETURN(CONVERT); }
-#line 6606 "src/prebuilt/ast-lexer-gen.c"
-yy1147:
+yy1148:
+ yych = *++lexer->cursor;
+ if (yych == 'n') goto yy1150;
+ goto yy83;
+yy1149:
+ yych = *++lexer->cursor;
+ if (yych == 'a') goto yy186;
+ goto yy83;
+yy1150:
+ yych = *++lexer->cursor;
+ if (yych == 'f') goto yy226;
+ goto yy83;
+yy1151:
+ yych = *++lexer->cursor;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy83;
+ if (yych >= ':') goto yy83;
+ } else {
+ if (yych <= 'F') goto yy1152;
+ if (yych <= '`') goto yy83;
+ if (yych >= 'g') goto yy83;
+ }
+yy1152:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ if ((lexer->limit - lexer->cursor) < 3) FILL(3);
+ yych = *lexer->cursor;
+ if (yych <= '@') {
+ if (yych <= ',') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy82;
+ goto yy1145;
+ } else {
+ if (yych <= '\'') goto yy82;
+ if (yych <= ')') goto yy1145;
+ if (yych <= '+') goto yy82;
+ goto yy1145;
+ }
+ } else {
+ if (yych <= '/') {
+ if (yych == '.') goto yy1137;
+ goto yy82;
+ } else {
+ if (yych <= '9') goto yy1152;
+ if (yych == ';') goto yy1145;
+ goto yy82;
+ }
+ }
+ } else {
+ if (yych <= 'f') {
+ if (yych <= '[') {
+ if (yych <= 'F') goto yy1152;
+ if (yych <= 'Z') goto yy82;
+ goto yy1145;
+ } else {
+ if (yych == ']') goto yy1145;
+ if (yych <= '`') goto yy82;
+ goto yy1152;
+ }
+ } else {
+ if (yych <= '{') {
+ if (yych == 'p') goto yy1139;
+ if (yych <= 'z') goto yy82;
+ goto yy1145;
+ } else {
+ if (yych == '}') goto yy1145;
+ if (yych <= '~') goto yy82;
+ goto yy1145;
+ }
+ }
}
-#line 413 "src/ast-lexer.c"
- { OPCODE(I32_REINTERPRET_F32); RETURN(CONVERT); }
-#line 6614 "src/prebuilt/ast-lexer-gen.c"
-yy1149:
+yy1154:
++lexer->cursor;
- if (yybm[0+(yych = *lexer->cursor)] & 16) {
- goto yy49;
+ BEGIN(YYCOND_BLOCK_COMMENT);
+#line 452 "src/ast-lexer.c"
+ { COMMENT_NESTING = 1; continue; }
+#line 5787 "src/prebuilt/ast-lexer-gen.c"
+yy1156:
+ ++lexer->cursor;
+ if (lexer->limit <= lexer->cursor) FILL(1);
+ yych = *lexer->cursor;
+ if (yych <= ';') {
+ if (yych <= '\'') {
+ if (yych == '!') goto yy1156;
+ if (yych >= '#') goto yy1156;
+ } else {
+ if (yych <= '+') {
+ if (yych >= '*') goto yy1156;
+ } else {
+ if (yych <= ',') goto yy1158;
+ if (yych <= ':') goto yy1156;
+ }
+ }
+ } else {
+ if (yych <= 'z') {
+ if (yych <= '[') {
+ if (yych <= 'Z') goto yy1156;
+ } else {
+ if (yych != ']') goto yy1156;
+ }
+ } else {
+ if (yych <= '|') {
+ if (yych >= '|') goto yy1156;
+ } else {
+ if (yych == '~') goto yy1156;
+ }
+ }
}
-#line 415 "src/ast-lexer.c"
- { OPCODE(I64_REINTERPRET_F64); RETURN(CONVERT); }
-#line 6622 "src/prebuilt/ast-lexer-gen.c"
+yy1158:
+#line 447 "src/ast-lexer.c"
+ { TEXT; RETURN(VAR); }
+#line 5822 "src/prebuilt/ast-lexer-gen.c"
+yy1159:
+ ++lexer->cursor;
+ if (lexer->limit <= lexer->cursor) FILL(1);
+ yych = *lexer->cursor;
+yy1160:
+ if (yybm[0+yych] & 64) {
+ goto yy1159;
+ }
+ if (yych <= '!') goto yy1161;
+ if (yych <= '"') goto yy1163;
+ if (yych <= '~') goto yy1162;
+yy1161:
+ lexer->cursor = lexer->marker;
+ goto yy54;
+yy1162:
+ ++lexer->cursor;
+ if (lexer->limit <= lexer->cursor) FILL(1);
+ yych = *lexer->cursor;
+ if (yych <= 'F') {
+ if (yych <= '\'') {
+ if (yych == '"') goto yy1159;
+ if (yych <= '&') goto yy1161;
+ goto yy1159;
+ } else {
+ if (yych <= '/') goto yy1161;
+ if (yych <= '9') goto yy1165;
+ if (yych <= '@') goto yy1161;
+ goto yy1165;
+ }
+ } else {
+ if (yych <= 'f') {
+ if (yych == '\\') goto yy1159;
+ if (yych <= '`') goto yy1161;
+ goto yy1165;
+ } else {
+ if (yych <= 'n') {
+ if (yych <= 'm') goto yy1161;
+ goto yy1159;
+ } else {
+ if (yych == 't') goto yy1159;
+ goto yy1161;
+ }
+ }
+ }
+yy1163:
+ ++lexer->cursor;
+#line 228 "src/ast-lexer.c"
+ { TEXT; RETURN(TEXT); }
+#line 5871 "src/prebuilt/ast-lexer-gen.c"
+yy1165:
+ ++lexer->cursor;
+ if (lexer->limit <= lexer->cursor) FILL(1);
+ yych = *lexer->cursor;
+ if (yych <= '@') {
+ if (yych <= '/') goto yy1161;
+ if (yych <= '9') goto yy1159;
+ goto yy1161;
+ } else {
+ if (yych <= 'F') goto yy1159;
+ if (yych <= '`') goto yy1161;
+ if (yych <= 'f') goto yy1159;
+ goto yy1161;
+ }
+yy1166:
+ ++lexer->cursor;
+ if (lexer->limit <= lexer->cursor) FILL(1);
+ yych = *lexer->cursor;
+yy1167:
+ if (yybm[0+yych] & 128) {
+ goto yy1166;
+ }
+ goto yy48;
}
}
-#line 466 "src/ast-lexer.c"
+#line 467 "src/ast-lexer.c"
}
}
diff --git a/src/prebuilt/ast-parser-gen.c b/src/prebuilt/ast-parser-gen.c
index c49768c5..797ea43f 100644
--- a/src/prebuilt/ast-parser-gen.c
+++ b/src/prebuilt/ast-parser-gen.c
@@ -352,9 +352,10 @@ extern int wasm_ast_parser_debug;
WASM_TOKEN_TYPE_ASSERT_RETURN = 322,
WASM_TOKEN_TYPE_ASSERT_RETURN_NAN = 323,
WASM_TOKEN_TYPE_ASSERT_TRAP = 324,
- WASM_TOKEN_TYPE_INPUT = 325,
- WASM_TOKEN_TYPE_OUTPUT = 326,
- WASM_TOKEN_TYPE_LOW = 327
+ WASM_TOKEN_TYPE_ASSERT_EXHAUSTION = 325,
+ WASM_TOKEN_TYPE_INPUT = 326,
+ WASM_TOKEN_TYPE_OUTPUT = 327,
+ WASM_TOKEN_TYPE_LOW = 328
};
#endif
@@ -387,7 +388,7 @@ int wasm_ast_parser_parse (WasmAstLexer* lexer, WasmAstParser* parser);
/* Copy the second part of user declarations. */
-#line 391 "src/prebuilt/ast-parser-gen.c" /* yacc.c:358 */
+#line 392 "src/prebuilt/ast-parser-gen.c" /* yacc.c:358 */
#ifdef short
# undef short
@@ -631,21 +632,21 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 10
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 790
+#define YYLAST 794
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 73
+#define YYNTOKENS 74
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 63
/* YYNRULES -- Number of rules. */
-#define YYNRULES 170
+#define YYNRULES 171
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 398
+#define YYNSTATES 402
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 327
+#define YYMAXUTOK 328
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -686,7 +687,7 @@ static const yytype_uint8 yytranslate[] =
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72
+ 65, 66, 67, 68, 69, 70, 71, 72, 73
};
#if WASM_AST_PARSER_DEBUG
@@ -709,8 +710,8 @@ static const yytype_uint16 yyrline[] =
1102, 1105, 1116, 1120, 1127, 1131, 1134, 1142, 1150, 1167,
1183, 1194, 1201, 1208, 1214, 1254, 1264, 1286, 1296, 1322,
1327, 1335, 1343, 1353, 1359, 1365, 1371, 1377, 1383, 1388,
- 1397, 1402, 1403, 1409, 1418, 1419, 1427, 1439, 1440, 1447,
- 1512
+ 1394, 1403, 1408, 1409, 1415, 1424, 1425, 1433, 1445, 1446,
+ 1453, 1519
};
#endif
@@ -730,16 +731,16 @@ static const char *const yytname[] =
"TABLE", "ELEM", "MEMORY", "DATA", "OFFSET", "IMPORT", "EXPORT",
"REGISTER", "INVOKE", "GET", "ASSERT_MALFORMED", "ASSERT_INVALID",
"ASSERT_UNLINKABLE", "ASSERT_RETURN", "ASSERT_RETURN_NAN", "ASSERT_TRAP",
- "INPUT", "OUTPUT", "LOW", "$accept", "non_empty_text_list", "text_list",
- "quoted_text", "value_type_list", "elem_type", "global_type",
- "func_type", "func_sig", "table_sig", "memory_sig", "limits", "type_use",
- "nat", "literal", "var", "var_list", "bind_var_opt", "bind_var",
- "labeling_opt", "offset_opt", "align_opt", "instr", "plain_instr",
- "block_instr", "block", "expr", "expr1", "if_", "instr_list",
- "expr_list", "const_expr", "func_fields", "func_body", "func_info",
- "func", "offset", "elem", "table", "data", "memory", "global",
- "import_kind", "import", "inline_import", "export_kind", "export",
- "inline_export_opt", "inline_export", "type_def", "start",
+ "ASSERT_EXHAUSTION", "INPUT", "OUTPUT", "LOW", "$accept",
+ "non_empty_text_list", "text_list", "quoted_text", "value_type_list",
+ "elem_type", "global_type", "func_type", "func_sig", "table_sig",
+ "memory_sig", "limits", "type_use", "nat", "literal", "var", "var_list",
+ "bind_var_opt", "bind_var", "labeling_opt", "offset_opt", "align_opt",
+ "instr", "plain_instr", "block_instr", "block", "expr", "expr1", "if_",
+ "instr_list", "expr_list", "const_expr", "func_fields", "func_body",
+ "func_info", "func", "offset", "elem", "table", "data", "memory",
+ "global", "import_kind", "import", "inline_import", "export_kind",
+ "export", "inline_export_opt", "inline_export", "type_def", "start",
"module_fields", "raw_module", "module", "script_var_opt", "action",
"assertion", "cmd", "cmd_list", "const", "const_list", "script",
"script_start", YY_NULLPTR
@@ -758,14 +759,14 @@ static const yytype_uint16 yytoknum[] =
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327
+ 325, 326, 327, 328
};
# endif
-#define YYPACT_NINF -276
+#define YYPACT_NINF -271
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-276)))
+ (!!((Yystate) == (-271)))
#define YYTABLE_NINF -30
@@ -776,46 +777,47 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- -276, 33, -276, 76, 58, -276, -276, -276, -276, -276,
- -276, 72, 154, 97, 97, 176, 176, 176, 185, 185,
- 187, -276, 208, -276, -276, 97, -276, 154, 154, 140,
- 154, 154, 154, 143, -276, 191, 12, 154, 154, -276,
- 139, 227, 218, -276, 220, 228, 242, 243, 231, -276,
- 245, 247, -276, -276, 98, -276, -276, -276, -276, -276,
- -276, -276, -276, -276, -276, -276, -276, 237, -276, -276,
- -276, -276, 215, -276, -276, -276, -276, 72, 212, 43,
- 72, 72, 99, 72, 99, 154, 154, -276, 109, 401,
- -276, -276, -276, 249, 209, 252, 255, 48, 256, 322,
- 267, -276, -276, 268, 267, 208, 154, 270, -276, -276,
- -276, 271, 281, -276, -276, 72, 72, 72, 212, 212,
- -276, 212, 212, -276, 212, 212, 212, 212, 212, 239,
- 239, 109, -276, -276, -276, -276, -276, -276, -276, -276,
- 434, 467, -276, -276, -276, -276, -276, -276, 272, 274,
- 500, -276, 276, -276, 277, 20, -276, 467, 61, 61,
- 183, 275, 83, -276, 72, 72, 72, 467, 279, 280,
- -276, 125, 104, 275, 275, 282, 208, 278, 283, 285,
- 113, 293, -276, 212, 72, -276, 72, 154, 154, -276,
- -276, -276, -276, -276, -276, 212, -276, -276, -276, -276,
- -276, -276, -276, -276, 253, 253, -276, 605, 295, 745,
- -276, -276, 179, 296, 302, 566, 434, 312, 195, 313,
- -276, 273, -276, 323, 316, 329, 467, 330, 327, 275,
- -276, 344, 353, -276, -276, -276, 354, 279, -276, -276,
- 167, -276, -276, 208, 364, -276, 365, 315, 366, -276,
- 114, 369, 212, 212, 212, 212, -276, 370, 95, 367,
- 103, 127, 374, 154, 371, 368, 360, 132, 363, 214,
- -276, -276, -276, -276, -276, -276, -276, -276, 382, -276,
- -276, 383, -276, -276, 389, -276, -276, -276, 348, -276,
- -276, 74, -276, -276, -276, -276, 413, -276, -276, 208,
- -276, 72, 72, 72, 72, -276, 415, 416, 422, 432,
- -276, 434, -276, 446, 533, 533, 448, 449, -276, -276,
- 72, 72, 72, 72, 170, 177, -276, -276, -276, -276,
- 679, 456, -276, 465, 479, 274, 61, 275, 275, -276,
- -276, -276, -276, -276, 434, 644, -276, -276, 533, -276,
- -276, -276, 467, -276, 482, -276, 198, 467, 712, 279,
- -276, 488, 498, 512, 514, 515, 521, -276, -276, 470,
- 485, 545, 547, 467, -276, -276, -276, -276, -276, -276,
- -276, 72, -276, -276, 549, 554, -276, 188, 550, 565,
- -276, 467, 563, 580, 467, -276, 581, -276
+ -271, 26, -271, 77, 84, -271, -271, -271, -271, -271,
+ -271, 82, 94, 107, 107, 124, 124, 124, 157, 157,
+ 159, 157, -271, 106, -271, -271, 107, -271, 94, 94,
+ 123, 94, 94, 94, -12, -271, 160, 18, 94, 94,
+ 94, -271, 39, 140, 179, -271, 186, 194, 198, 215,
+ 213, -271, 230, 238, 245, -271, -271, 111, -271, -271,
+ -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+ 248, -271, -271, -271, -271, 216, -271, -271, -271, -271,
+ -271, 82, 70, 85, 82, 82, 117, 82, 117, 94,
+ 94, -271, 200, 405, -271, -271, -271, 266, 142, 267,
+ 270, 58, 271, 326, 272, -271, -271, 273, 272, 106,
+ 94, 274, -271, -271, -271, 275, 285, -271, -271, 82,
+ 82, 82, 70, 70, -271, 70, 70, -271, 70, 70,
+ 70, 70, 70, 246, 246, 200, -271, -271, -271, -271,
+ -271, -271, -271, -271, 438, 471, -271, -271, -271, -271,
+ -271, -271, 276, 279, 504, -271, 280, -271, 281, 25,
+ -271, 471, 87, 87, 196, 282, 118, -271, 82, 82,
+ 82, 471, 283, 284, -271, 220, 184, 282, 282, 286,
+ 106, 293, 287, 289, 53, 299, -271, 70, 82, -271,
+ 82, 94, 94, -271, -271, -271, -271, -271, -271, 70,
+ -271, -271, -271, -271, -271, -271, -271, -271, 254, 254,
+ -271, 609, 300, 749, -271, -271, 197, 306, 316, 570,
+ 438, 317, 209, 327, -271, 322, -271, 333, 330, 334,
+ 471, 347, 350, 282, -271, 290, 358, -271, -271, -271,
+ 368, 283, -271, -271, 223, -271, -271, 106, 369, -271,
+ 370, 227, 373, -271, 65, 374, 70, 70, 70, 70,
+ -271, 375, 121, 366, 151, 177, 371, 94, 376, 372,
+ 367, 48, 381, 125, -271, -271, -271, -271, -271, -271,
+ -271, -271, 384, -271, -271, 386, -271, -271, 387, -271,
+ -271, -271, 352, -271, -271, 105, -271, -271, -271, -271,
+ 417, -271, -271, 106, -271, 82, 82, 82, 82, -271,
+ 419, 420, 426, 436, -271, 438, -271, 450, 537, 537,
+ 452, 453, -271, -271, 82, 82, 82, 82, 182, 189,
+ -271, -271, -271, -271, 683, 460, -271, 469, 483, 279,
+ 87, 282, 282, -271, -271, -271, -271, -271, 438, 648,
+ -271, -271, 537, -271, -271, -271, 471, -271, 486, -271,
+ 226, 471, 716, 283, -271, 492, 502, 516, 518, 519,
+ 525, -271, -271, 474, 489, 549, 551, 471, -271, -271,
+ -271, -271, -271, -271, -271, 82, -271, -271, 553, 558,
+ -271, 191, 554, 569, -271, 471, 567, 584, 471, -271,
+ 585, -271
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -823,70 +825,71 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 164, 169, 170, 0, 0, 148, 162, 160, 161, 165,
+ 165, 170, 171, 0, 0, 148, 163, 161, 162, 166,
1, 30, 0, 149, 149, 0, 0, 0, 0, 0,
- 0, 32, 135, 31, 6, 149, 150, 0, 0, 0,
- 0, 0, 0, 0, 167, 0, 0, 0, 0, 2,
- 0, 0, 0, 167, 0, 0, 0, 0, 0, 158,
- 0, 0, 147, 3, 0, 146, 140, 141, 138, 142,
- 139, 137, 144, 145, 136, 143, 163, 0, 152, 153,
- 154, 155, 0, 157, 168, 156, 159, 30, 0, 0,
- 30, 30, 0, 30, 0, 0, 0, 151, 0, 82,
- 22, 27, 26, 0, 0, 0, 0, 0, 129, 0,
- 0, 100, 28, 129, 0, 4, 0, 0, 23, 24,
- 25, 0, 0, 43, 44, 33, 33, 33, 0, 0,
- 28, 0, 0, 49, 0, 0, 0, 0, 0, 35,
- 35, 0, 60, 61, 62, 63, 45, 42, 64, 65,
- 82, 82, 39, 40, 41, 91, 94, 87, 0, 13,
- 82, 134, 13, 132, 0, 0, 10, 82, 0, 0,
- 0, 0, 0, 130, 33, 33, 33, 82, 84, 0,
- 28, 0, 0, 0, 0, 130, 4, 5, 0, 0,
- 0, 0, 166, 0, 7, 7, 7, 0, 0, 34,
- 7, 7, 7, 46, 47, 0, 50, 51, 52, 53,
- 54, 55, 56, 36, 37, 37, 59, 0, 0, 0,
- 83, 98, 0, 0, 0, 0, 82, 0, 0, 0,
- 133, 0, 86, 0, 0, 0, 82, 0, 0, 19,
- 9, 0, 0, 7, 7, 7, 0, 84, 72, 71,
- 0, 102, 29, 4, 0, 18, 0, 0, 0, 106,
- 0, 0, 0, 0, 0, 0, 128, 0, 0, 0,
- 0, 0, 0, 0, 0, 82, 0, 0, 0, 48,
- 38, 57, 58, 96, 7, 7, 119, 118, 0, 97,
- 12, 0, 111, 122, 0, 120, 17, 20, 0, 103,
- 73, 0, 74, 99, 85, 101, 0, 121, 107, 4,
- 105, 30, 30, 30, 30, 117, 0, 0, 0, 0,
- 21, 82, 8, 0, 82, 82, 0, 0, 131, 70,
- 33, 33, 33, 33, 0, 0, 95, 11, 110, 28,
- 0, 0, 75, 0, 0, 13, 0, 0, 0, 124,
- 127, 125, 126, 89, 82, 0, 88, 92, 82, 123,
- 66, 68, 82, 67, 14, 16, 0, 82, 0, 81,
- 109, 0, 0, 0, 0, 0, 0, 90, 93, 0,
- 0, 0, 0, 82, 80, 108, 113, 112, 116, 114,
- 115, 33, 7, 104, 77, 0, 69, 0, 0, 79,
- 15, 82, 0, 0, 82, 76, 0, 78
+ 0, 0, 32, 135, 31, 6, 149, 150, 0, 0,
+ 0, 0, 0, 0, 0, 168, 0, 0, 0, 0,
+ 0, 2, 0, 0, 0, 168, 0, 0, 0, 0,
+ 0, 158, 0, 0, 0, 147, 3, 0, 146, 140,
+ 141, 138, 142, 139, 137, 144, 145, 136, 143, 164,
+ 0, 152, 153, 154, 155, 0, 157, 169, 156, 159,
+ 160, 30, 0, 0, 30, 30, 0, 30, 0, 0,
+ 0, 151, 0, 82, 22, 27, 26, 0, 0, 0,
+ 0, 0, 129, 0, 0, 100, 28, 129, 0, 4,
+ 0, 0, 23, 24, 25, 0, 0, 43, 44, 33,
+ 33, 33, 0, 0, 28, 0, 0, 49, 0, 0,
+ 0, 0, 0, 35, 35, 0, 60, 61, 62, 63,
+ 45, 42, 64, 65, 82, 82, 39, 40, 41, 91,
+ 94, 87, 0, 13, 82, 134, 13, 132, 0, 0,
+ 10, 82, 0, 0, 0, 0, 0, 130, 33, 33,
+ 33, 82, 84, 0, 28, 0, 0, 0, 0, 130,
+ 4, 5, 0, 0, 0, 0, 167, 0, 7, 7,
+ 7, 0, 0, 34, 7, 7, 7, 46, 47, 0,
+ 50, 51, 52, 53, 54, 55, 56, 36, 37, 37,
+ 59, 0, 0, 0, 83, 98, 0, 0, 0, 0,
+ 82, 0, 0, 0, 133, 0, 86, 0, 0, 0,
+ 82, 0, 0, 19, 9, 0, 0, 7, 7, 7,
+ 0, 84, 72, 71, 0, 102, 29, 4, 0, 18,
+ 0, 0, 0, 106, 0, 0, 0, 0, 0, 0,
+ 128, 0, 0, 0, 0, 0, 0, 0, 0, 82,
+ 0, 0, 0, 48, 38, 57, 58, 96, 7, 7,
+ 119, 118, 0, 97, 12, 0, 111, 122, 0, 120,
+ 17, 20, 0, 103, 73, 0, 74, 99, 85, 101,
+ 0, 121, 107, 4, 105, 30, 30, 30, 30, 117,
+ 0, 0, 0, 0, 21, 82, 8, 0, 82, 82,
+ 0, 0, 131, 70, 33, 33, 33, 33, 0, 0,
+ 95, 11, 110, 28, 0, 0, 75, 0, 0, 13,
+ 0, 0, 0, 124, 127, 125, 126, 89, 82, 0,
+ 88, 92, 82, 123, 66, 68, 82, 67, 14, 16,
+ 0, 82, 0, 81, 109, 0, 0, 0, 0, 0,
+ 0, 90, 93, 0, 0, 0, 0, 82, 80, 108,
+ 113, 112, 116, 114, 115, 33, 7, 104, 77, 0,
+ 69, 0, 0, 79, 15, 82, 0, 0, 82, 76,
+ 0, 78
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -276, 569, -150, -3, -174, 373, -142, 506, -139, -148,
- -156, -152, -144, -112, 481, 14, -111, -39, -11, -109,
- 483, 418, -276, -97, -276, -138, -81, -276, -276, -137,
- 384, -136, -266, -275, -107, -276, -37, -276, -276, -276,
- -276, -276, -276, -276, -12, -276, -276, 527, 80, -276,
- -276, -276, 184, -276, 23, 219, -276, -276, -276, -276,
- 597, -276, -276
+ -271, 572, -134, -7, -178, 385, -146, 505, -143, -152,
+ -160, -142, -148, -138, 481, 10, -115, -43, -11, -113,
+ 472, 416, -271, -101, -271, -133, -85, -271, -271, -141,
+ 393, -137, -270, -266, -96, -271, -39, -271, -271, -271,
+ -271, -271, -271, -271, 71, -271, -271, 520, 73, -271,
+ -271, -271, 206, -271, 40, 219, -271, -271, -271, -271,
+ 583, -271, -271
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 177, 178, 25, 265, 231, 157, 95, 213, 227,
- 244, 228, 140, 92, 111, 242, 171, 22, 189, 190,
- 204, 271, 141, 142, 143, 266, 144, 169, 332, 145,
- 238, 223, 146, 147, 148, 56, 102, 57, 58, 59,
- 60, 61, 251, 62, 149, 181, 63, 162, 150, 64,
- 65, 41, 5, 6, 27, 7, 8, 9, 1, 74,
- 48, 2, 3
+ -1, 181, 182, 26, 269, 235, 161, 99, 217, 231,
+ 248, 232, 144, 96, 115, 246, 175, 23, 193, 194,
+ 208, 275, 145, 146, 147, 270, 148, 173, 336, 149,
+ 242, 227, 150, 151, 152, 59, 106, 60, 61, 62,
+ 63, 64, 255, 65, 153, 185, 66, 166, 154, 67,
+ 68, 43, 5, 6, 28, 7, 8, 9, 1, 77,
+ 50, 2, 3
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -894,239 +897,240 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 23, 101, 168, 101, 210, 214, 216, 191, 192, 195,
- 258, 260, 261, 219, 232, 168, 225, 226, 246, 101,
- 222, 245, 245, 101, 43, 44, 248, 45, 46, 47,
- 222, 236, 221, 208, 50, 51, 4, 28, 89, 346,
- 347, 97, 98, 217, 103, 343, 94, 105, 42, 229,
- 229, 155, 21, 267, 268, 233, 234, 235, 156, 240,
- 291, 229, 229, 170, 224, 11, 23, 176, 96, 23,
- 23, 156, 23, 368, 13, 14, 10, 330, 367, 187,
- 188, 21, 106, 107, 312, 158, 161, 237, 90, 222,
- 284, 173, 93, 296, 230, 290, 100, 292, 104, 311,
- 324, 325, 99, 179, 90, 312, 26, 314, 91, 278,
- 168, 11, 168, 312, 108, 109, 110, 287, 168, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 319, 241,
- 90, 315, 193, 194, 91, 196, 197, 312, 198, 199,
- 200, 201, 202, 52, 77, 78, 79, 53, 321, 334,
- 80, 322, 81, 82, 83, 84, 237, 85, 86, 252,
- 301, 243, 24, 187, 188, 253, 302, 254, 303, 255,
- 304, 295, 90, 259, 354, 262, 91, 159, 163, 29,
- 312, 355, 366, 175, 263, 264, 245, 312, 33, 365,
- 36, 363, 390, 11, 364, 49, 362, 257, 312, 30,
- 31, 32, 371, 90, 37, 13, 14, 91, 387, 269,
- 331, 350, 351, 352, 353, 369, 39, 90, 356, -29,
- 372, 91, 66, -29, 68, 229, 229, 183, 274, 275,
- 54, 55, 69, 168, 72, 73, 385, 34, 35, 38,
- 72, 87, 187, 188, 274, 275, 70, 71, 168, 75,
- 359, 76, 88, 151, 393, 152, 153, 396, 94, 160,
- 317, 168, 335, 336, 337, 338, 306, 307, 308, 309,
- 99, 172, 386, 180, 203, 182, 211, 212, 374, 218,
- 90, 220, 209, 281, 239, 247, 53, 249, 250, 270,
- 23, 23, 23, 23, 113, 114, 164, 256, 165, 273,
- 276, 166, 118, 119, 120, 121, 277, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 279, 280, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 282, 221, 183,
- 184, 185, 186, 283, 285, 113, 114, 164, 230, 165,
- 187, 188, 166, 118, 119, 120, 121, 288, 122, 123,
- 124, 125, 126, 127, 128, 129, 130, 289, 293, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 297, 298,
- 300, 209, 299, 305, 310, 318, 320, 313, 312, 323,
- 167, 113, 114, 115, 316, 116, 326, 327, 117, 118,
- 119, 120, 121, 328, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 329, 112, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 113, 114, 115, 333, 116, 339,
- 340, 117, 118, 119, 120, 121, 341, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 342, 207, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 113, 114, 115,
- 344, 116, 348, 349, 117, 118, 119, 120, 121, 358,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 360,
- 209, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 113, 114, 115, 361, 116, 370, 381, 117, 118, 119,
- 120, 121, 375, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 376, 215, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 113, 114, 115, 377, 116, 378, 379,
- 117, 118, 119, 120, 121, 380, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 382, 345, 131, 132, 133,
- 134, 135, 136, 137, 138, 139, 113, 114, 115, 383,
- 116, 384, 388, 117, 118, 119, 120, 121, 389, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 392, 391,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 113,
- 114, 164, 394, 165, 395, 397, 166, 118, 119, 120,
- 121, 40, 122, 123, 124, 125, 126, 127, 128, 129,
- 130, 286, 154, 131, 132, 133, 134, 135, 136, 137,
- 138, 139, 206, 205, 183, 184, 185, 186, 113, 114,
- 164, 294, 165, 272, 0, 166, 118, 119, 120, 121,
- 174, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 67, 0, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 0, 0, 0, 184, 185, 186, 113, 114, 164,
- 0, 165, 0, 0, 166, 118, 119, 120, 121, 0,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 0,
- 0, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 0, 0, 113, 114, 164, 186, 165, 357, 0, 166,
- 118, 119, 120, 121, 0, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 0, 0, 131, 132, 133, 134,
- 135, 136, 137, 138, 139, 113, 114, 164, 0, 165,
- 373, 0, 166, 118, 119, 120, 121, 0, 122, 123,
- 124, 125, 126, 127, 128, 129, 130, 0, 0, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 113, 114,
- 164, 0, 165, 0, 0, 166, 118, 119, 120, 121,
- 0, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 0, 0, 131, 132, 133, 134, 135, 136, 137, 138,
- 139
+ 24, 105, 172, 105, 214, 218, 220, 195, 196, 199,
+ 262, 264, 265, 223, 236, 172, 229, 230, 250, 105,
+ 226, 45, 46, 105, 47, 48, 49, 233, 233, 4,
+ 226, 52, 53, 54, 240, 249, 249, 225, 93, 233,
+ 233, 101, 102, 55, 107, 347, 252, 56, 212, 109,
+ 13, 14, 350, 351, 29, 237, 238, 239, 221, 244,
+ 295, 159, 271, 272, 325, 174, 44, 326, 160, 180,
+ 24, 11, 100, 24, 24, 94, 24, 10, 371, 95,
+ 13, 14, 110, 111, 191, 192, 372, 241, 98, 226,
+ 228, 22, 97, 288, 22, 291, 104, 160, 108, 256,
+ 328, 329, 25, 183, 294, 257, 296, 258, 334, 259,
+ 172, 305, 172, 300, 41, 316, 27, 306, 172, 307,
+ 103, 308, 94, 94, 282, 315, 95, 30, 323, 234,
+ -29, 316, 197, 198, -29, 200, 201, 11, 202, 203,
+ 204, 205, 206, 57, 58, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 318, 241, 81, 82, 83,
+ 34, 316, 37, 84, 51, 85, 86, 87, 88, 338,
+ 89, 90, 162, 165, 163, 167, 11, 263, 177, 266,
+ 179, 319, 370, 69, 267, 268, 358, 316, 156, 369,
+ 71, 367, 316, 359, 368, 394, 366, 261, 72, 316,
+ 249, 316, 73, 233, 233, 112, 113, 114, 391, 273,
+ 335, 354, 355, 356, 357, 373, 75, 76, 360, 74,
+ 376, 31, 32, 33, 245, 94, 38, 299, 94, 95,
+ 375, 94, 95, 172, 78, 95, 389, 35, 36, 39,
+ 40, 247, 79, 191, 192, 187, 278, 279, 172, 80,
+ 363, 75, 91, 92, 397, 191, 192, 400, 278, 279,
+ 321, 172, 339, 340, 341, 342, 310, 311, 312, 313,
+ 155, 157, 390, 98, 164, 103, 176, 184, 378, 186,
+ 215, 207, 216, 222, 303, 224, 213, 94, 243, 251,
+ 274, 253, 254, 292, 24, 24, 24, 24, 117, 118,
+ 168, 56, 169, 260, 277, 170, 122, 123, 124, 125,
+ 280, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 281, 283, 135, 136, 137, 138, 139, 140, 141, 142,
+ 143, 284, 285, 187, 188, 189, 190, 286, 287, 117,
+ 118, 168, 225, 169, 191, 192, 170, 122, 123, 124,
+ 125, 289, 126, 127, 128, 129, 130, 131, 132, 133,
+ 134, 234, 293, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 297, 301, 302, 213, 317, 304, 309, 314,
+ 322, 320, 316, 324, 171, 117, 118, 119, 330, 120,
+ 331, 332, 121, 122, 123, 124, 125, 327, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 333, 116, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 117, 118,
+ 119, 337, 120, 343, 344, 121, 122, 123, 124, 125,
+ 345, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 346, 211, 135, 136, 137, 138, 139, 140, 141, 142,
+ 143, 117, 118, 119, 348, 120, 352, 353, 121, 122,
+ 123, 124, 125, 362, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 364, 213, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 117, 118, 119, 365, 120, 374,
+ 385, 121, 122, 123, 124, 125, 379, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 380, 219, 135, 136,
+ 137, 138, 139, 140, 141, 142, 143, 117, 118, 119,
+ 381, 120, 382, 383, 121, 122, 123, 124, 125, 384,
+ 126, 127, 128, 129, 130, 131, 132, 133, 134, 386,
+ 349, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 117, 118, 119, 387, 120, 388, 392, 121, 122, 123,
+ 124, 125, 393, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 396, 395, 135, 136, 137, 138, 139, 140,
+ 141, 142, 143, 117, 118, 168, 398, 169, 399, 401,
+ 170, 122, 123, 124, 125, 42, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 158, 209, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 210, 290, 187, 188,
+ 189, 190, 117, 118, 168, 276, 169, 178, 70, 170,
+ 122, 123, 124, 125, 298, 126, 127, 128, 129, 130,
+ 131, 132, 133, 134, 0, 0, 135, 136, 137, 138,
+ 139, 140, 141, 142, 143, 0, 0, 0, 188, 189,
+ 190, 117, 118, 168, 0, 169, 0, 0, 170, 122,
+ 123, 124, 125, 0, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 0, 0, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 0, 0, 117, 118, 168, 190,
+ 169, 361, 0, 170, 122, 123, 124, 125, 0, 126,
+ 127, 128, 129, 130, 131, 132, 133, 134, 0, 0,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 117,
+ 118, 168, 0, 169, 377, 0, 170, 122, 123, 124,
+ 125, 0, 126, 127, 128, 129, 130, 131, 132, 133,
+ 134, 0, 0, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 117, 118, 168, 0, 169, 0, 0, 170,
+ 122, 123, 124, 125, 0, 126, 127, 128, 129, 130,
+ 131, 132, 133, 134, 0, 0, 135, 136, 137, 138,
+ 139, 140, 141, 142, 143
};
static const yytype_int16 yycheck[] =
{
- 11, 82, 99, 84, 141, 149, 150, 116, 117, 120,
- 184, 185, 186, 152, 162, 112, 158, 159, 174, 100,
- 157, 173, 174, 104, 27, 28, 176, 30, 31, 32,
- 167, 167, 12, 140, 37, 38, 3, 14, 77, 314,
- 315, 80, 81, 150, 83, 311, 3, 84, 25, 161,
- 162, 3, 9, 191, 192, 164, 165, 166, 10, 170,
- 234, 173, 174, 100, 3, 53, 77, 104, 79, 80,
- 81, 10, 83, 348, 62, 63, 0, 3, 344, 59,
- 60, 9, 85, 86, 10, 97, 98, 168, 5, 226,
- 226, 103, 78, 243, 11, 233, 82, 235, 84, 4,
- 274, 275, 3, 106, 5, 10, 9, 4, 9, 216,
- 207, 53, 209, 10, 5, 6, 7, 229, 215, 61,
- 62, 63, 64, 65, 66, 67, 68, 69, 265, 4,
- 5, 4, 118, 119, 9, 121, 122, 10, 124, 125,
- 126, 127, 128, 4, 46, 47, 48, 8, 16, 299,
- 52, 19, 54, 55, 56, 57, 237, 59, 60, 46,
- 46, 57, 8, 59, 60, 52, 52, 54, 54, 56,
- 56, 4, 5, 184, 4, 186, 9, 97, 98, 3,
- 10, 4, 338, 103, 187, 188, 338, 10, 3, 337,
- 3, 335, 4, 53, 336, 4, 335, 183, 10, 15,
- 16, 17, 4, 5, 20, 62, 63, 9, 382, 195,
- 291, 320, 321, 322, 323, 352, 8, 5, 329, 5,
- 357, 9, 4, 9, 4, 337, 338, 48, 49, 50,
- 3, 4, 4, 330, 3, 4, 373, 18, 19, 20,
- 3, 4, 59, 60, 49, 50, 4, 4, 345, 4,
- 331, 4, 37, 4, 391, 46, 4, 394, 3, 3,
- 263, 358, 301, 302, 303, 304, 252, 253, 254, 255,
- 3, 3, 381, 3, 35, 4, 4, 3, 359, 3,
- 5, 4, 3, 10, 4, 3, 8, 4, 3, 36,
- 301, 302, 303, 304, 13, 14, 15, 4, 17, 4,
- 4, 20, 21, 22, 23, 24, 4, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 4, 4, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 4, 12, 48,
- 49, 50, 51, 4, 4, 13, 14, 15, 11, 17,
- 59, 60, 20, 21, 22, 23, 24, 3, 26, 27,
- 28, 29, 30, 31, 32, 33, 34, 4, 4, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 4, 4,
- 4, 3, 57, 4, 4, 4, 16, 10, 10, 16,
- 58, 13, 14, 15, 10, 17, 4, 4, 20, 21,
- 22, 23, 24, 4, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 55, 3, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 13, 14, 15, 4, 17, 4,
- 4, 20, 21, 22, 23, 24, 4, 26, 27, 28,
+ 11, 86, 103, 88, 145, 153, 154, 120, 121, 124,
+ 188, 189, 190, 156, 166, 116, 162, 163, 178, 104,
+ 161, 28, 29, 108, 31, 32, 33, 165, 166, 3,
+ 171, 38, 39, 40, 171, 177, 178, 12, 81, 177,
+ 178, 84, 85, 4, 87, 315, 180, 8, 144, 88,
+ 62, 63, 318, 319, 14, 168, 169, 170, 154, 174,
+ 238, 3, 195, 196, 16, 104, 26, 19, 10, 108,
+ 81, 53, 83, 84, 85, 5, 87, 0, 348, 9,
+ 62, 63, 89, 90, 59, 60, 352, 172, 3, 230,
+ 3, 9, 82, 230, 9, 233, 86, 10, 88, 46,
+ 278, 279, 8, 110, 237, 52, 239, 54, 3, 56,
+ 211, 46, 213, 247, 8, 10, 9, 52, 219, 54,
+ 3, 56, 5, 5, 220, 4, 9, 3, 269, 11,
+ 5, 10, 122, 123, 9, 125, 126, 53, 128, 129,
+ 130, 131, 132, 3, 4, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 4, 241, 46, 47, 48,
+ 3, 10, 3, 52, 4, 54, 55, 56, 57, 303,
+ 59, 60, 101, 102, 101, 102, 53, 188, 107, 190,
+ 107, 4, 342, 4, 191, 192, 4, 10, 46, 341,
+ 4, 339, 10, 4, 340, 4, 339, 187, 4, 10,
+ 342, 10, 4, 341, 342, 5, 6, 7, 386, 199,
+ 295, 324, 325, 326, 327, 356, 3, 4, 333, 4,
+ 361, 15, 16, 17, 4, 5, 20, 4, 5, 9,
+ 4, 5, 9, 334, 4, 9, 377, 18, 19, 20,
+ 21, 57, 4, 59, 60, 48, 49, 50, 349, 4,
+ 335, 3, 4, 37, 395, 59, 60, 398, 49, 50,
+ 267, 362, 305, 306, 307, 308, 256, 257, 258, 259,
+ 4, 4, 385, 3, 3, 3, 3, 3, 363, 4,
+ 4, 35, 3, 3, 57, 4, 3, 5, 4, 3,
+ 36, 4, 3, 3, 305, 306, 307, 308, 13, 14,
+ 15, 8, 17, 4, 4, 20, 21, 22, 23, 24,
+ 4, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 4, 4, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 4, 10, 48, 49, 50, 51, 4, 4, 13,
+ 14, 15, 12, 17, 59, 60, 20, 21, 22, 23,
+ 24, 4, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 11, 4, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 4, 4, 4, 3, 10, 4, 4, 4,
+ 4, 10, 10, 16, 58, 13, 14, 15, 4, 17,
+ 4, 4, 20, 21, 22, 23, 24, 16, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 55, 3, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 13, 14,
+ 15, 4, 17, 4, 4, 20, 21, 22, 23, 24,
+ 4, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 4, 3, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 13, 14, 15, 4, 17, 4, 4, 20, 21,
+ 22, 23, 24, 3, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 4, 3, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 13, 14, 15, 4, 17, 3,
+ 16, 20, 21, 22, 23, 24, 4, 26, 27, 28,
29, 30, 31, 32, 33, 34, 4, 3, 37, 38,
39, 40, 41, 42, 43, 44, 45, 13, 14, 15,
- 4, 17, 4, 4, 20, 21, 22, 23, 24, 3,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 4,
+ 4, 17, 4, 4, 20, 21, 22, 23, 24, 4,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 50,
3, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 13, 14, 15, 4, 17, 3, 16, 20, 21, 22,
+ 13, 14, 15, 4, 17, 4, 3, 20, 21, 22,
23, 24, 4, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 4, 3, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 13, 14, 15, 4, 17, 4, 4,
- 20, 21, 22, 23, 24, 4, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 50, 3, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 13, 14, 15, 4,
- 17, 4, 3, 20, 21, 22, 23, 24, 4, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 3, 19,
+ 33, 34, 3, 19, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 13, 14, 15, 19, 17, 4, 4,
+ 20, 21, 22, 23, 24, 23, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 100, 134, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 135, 232, 48, 49,
+ 50, 51, 13, 14, 15, 209, 17, 107, 45, 20,
+ 21, 22, 23, 24, 241, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, -1, -1, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, -1, -1, -1, 49, 50,
+ 51, 13, 14, 15, -1, 17, -1, -1, 20, 21,
+ 22, 23, 24, -1, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, -1, -1, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, -1, -1, 13, 14, 15, 51,
+ 17, 18, -1, 20, 21, 22, 23, 24, -1, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, -1, -1,
37, 38, 39, 40, 41, 42, 43, 44, 45, 13,
- 14, 15, 19, 17, 4, 4, 20, 21, 22, 23,
- 24, 22, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 228, 96, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 131, 130, 48, 49, 50, 51, 13, 14,
- 15, 237, 17, 205, -1, 20, 21, 22, 23, 24,
- 103, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 43, -1, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, -1, -1, -1, 49, 50, 51, 13, 14, 15,
- -1, 17, -1, -1, 20, 21, 22, 23, 24, -1,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
- -1, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- -1, -1, 13, 14, 15, 51, 17, 18, -1, 20,
+ 14, 15, -1, 17, 18, -1, 20, 21, 22, 23,
+ 24, -1, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, -1, -1, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 13, 14, 15, -1, 17, -1, -1, 20,
21, 22, 23, 24, -1, 26, 27, 28, 29, 30,
31, 32, 33, 34, -1, -1, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 13, 14, 15, -1, 17,
- 18, -1, 20, 21, 22, 23, 24, -1, 26, 27,
- 28, 29, 30, 31, 32, 33, 34, -1, -1, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 13, 14,
- 15, -1, 17, -1, -1, 20, 21, 22, 23, 24,
- -1, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- -1, -1, 37, 38, 39, 40, 41, 42, 43, 44,
- 45
+ 41, 42, 43, 44, 45
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 131, 134, 135, 3, 125, 126, 128, 129, 130,
+ 0, 132, 135, 136, 3, 126, 127, 129, 130, 131,
0, 53, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 9, 90, 91, 8, 76, 9, 127, 127, 3,
- 125, 125, 125, 3, 128, 128, 3, 125, 128, 8,
- 74, 124, 127, 76, 76, 76, 76, 76, 133, 4,
- 76, 76, 4, 8, 3, 4, 108, 110, 111, 112,
- 113, 114, 116, 119, 122, 123, 4, 133, 4, 4,
- 4, 4, 3, 4, 132, 4, 4, 46, 47, 48,
- 52, 54, 55, 56, 57, 59, 60, 4, 37, 90,
- 5, 9, 86, 88, 3, 80, 91, 90, 90, 3,
- 88, 99, 109, 90, 88, 109, 76, 76, 5, 6,
- 7, 87, 3, 13, 14, 15, 17, 20, 21, 22,
- 23, 24, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 85, 95, 96, 97, 99, 102, 105, 106, 107, 117,
- 121, 4, 46, 4, 80, 3, 10, 79, 117, 121,
- 3, 117, 120, 121, 15, 17, 20, 58, 96, 100,
- 109, 89, 3, 117, 120, 121, 109, 74, 75, 76,
- 3, 118, 4, 48, 49, 50, 51, 59, 60, 91,
- 92, 92, 92, 88, 88, 89, 88, 88, 88, 88,
- 88, 88, 88, 35, 93, 93, 87, 3, 107, 3,
- 102, 4, 3, 81, 85, 3, 85, 107, 3, 81,
- 4, 12, 102, 104, 3, 79, 79, 82, 84, 86,
- 11, 78, 82, 92, 92, 92, 104, 99, 103, 4,
- 89, 4, 88, 57, 83, 84, 83, 3, 75, 4,
- 3, 115, 46, 52, 54, 56, 4, 88, 77, 91,
- 77, 77, 91, 76, 76, 77, 98, 98, 98, 88,
- 36, 94, 94, 4, 49, 50, 4, 4, 107, 4,
- 4, 10, 4, 4, 104, 4, 78, 86, 3, 4,
- 98, 77, 98, 4, 103, 4, 75, 4, 4, 57,
- 4, 46, 52, 54, 56, 4, 88, 88, 88, 88,
- 4, 4, 10, 10, 4, 4, 10, 76, 4, 102,
- 16, 16, 19, 16, 77, 77, 4, 4, 4, 55,
- 3, 99, 101, 4, 75, 90, 90, 90, 90, 4,
- 4, 4, 4, 105, 4, 3, 106, 106, 4, 4,
- 92, 92, 92, 92, 4, 4, 89, 18, 3, 99,
- 4, 4, 81, 85, 79, 82, 83, 105, 106, 102,
- 3, 4, 102, 18, 99, 4, 4, 4, 4, 4,
- 4, 16, 50, 4, 4, 102, 92, 77, 3, 4,
- 4, 19, 3, 102, 19, 4, 102, 4
+ 69, 70, 9, 91, 92, 8, 77, 9, 128, 128,
+ 3, 126, 126, 126, 3, 129, 129, 3, 126, 129,
+ 129, 8, 75, 125, 128, 77, 77, 77, 77, 77,
+ 134, 4, 77, 77, 77, 4, 8, 3, 4, 109,
+ 111, 112, 113, 114, 115, 117, 120, 123, 124, 4,
+ 134, 4, 4, 4, 4, 3, 4, 133, 4, 4,
+ 4, 46, 47, 48, 52, 54, 55, 56, 57, 59,
+ 60, 4, 37, 91, 5, 9, 87, 89, 3, 81,
+ 92, 91, 91, 3, 89, 100, 110, 91, 89, 110,
+ 77, 77, 5, 6, 7, 88, 3, 13, 14, 15,
+ 17, 20, 21, 22, 23, 24, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 86, 96, 97, 98, 100, 103,
+ 106, 107, 108, 118, 122, 4, 46, 4, 81, 3,
+ 10, 80, 118, 122, 3, 118, 121, 122, 15, 17,
+ 20, 58, 97, 101, 110, 90, 3, 118, 121, 122,
+ 110, 75, 76, 77, 3, 119, 4, 48, 49, 50,
+ 51, 59, 60, 92, 93, 93, 93, 89, 89, 90,
+ 89, 89, 89, 89, 89, 89, 89, 35, 94, 94,
+ 88, 3, 108, 3, 103, 4, 3, 82, 86, 3,
+ 86, 108, 3, 82, 4, 12, 103, 105, 3, 80,
+ 80, 83, 85, 87, 11, 79, 83, 93, 93, 93,
+ 105, 100, 104, 4, 90, 4, 89, 57, 84, 85,
+ 84, 3, 76, 4, 3, 116, 46, 52, 54, 56,
+ 4, 89, 78, 92, 78, 78, 92, 77, 77, 78,
+ 99, 99, 99, 89, 36, 95, 95, 4, 49, 50,
+ 4, 4, 108, 4, 4, 10, 4, 4, 105, 4,
+ 79, 87, 3, 4, 99, 78, 99, 4, 104, 4,
+ 76, 4, 4, 57, 4, 46, 52, 54, 56, 4,
+ 89, 89, 89, 89, 4, 4, 10, 10, 4, 4,
+ 10, 77, 4, 103, 16, 16, 19, 16, 78, 78,
+ 4, 4, 4, 55, 3, 100, 102, 4, 76, 91,
+ 91, 91, 91, 4, 4, 4, 4, 106, 4, 3,
+ 107, 107, 4, 4, 93, 93, 93, 93, 4, 4,
+ 90, 18, 3, 100, 4, 4, 82, 86, 80, 83,
+ 84, 106, 107, 103, 3, 4, 103, 18, 100, 4,
+ 4, 4, 4, 4, 4, 16, 50, 4, 4, 103,
+ 93, 78, 3, 4, 4, 19, 3, 103, 19, 4,
+ 103, 4
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 73, 74, 74, 75, 75, 76, 77, 77, 78,
- 79, 79, 80, 81, 81, 81, 81, 82, 83, 84,
- 84, 85, 86, 87, 87, 87, 88, 88, 89, 89,
- 90, 90, 91, 92, 92, 93, 93, 94, 94, 95,
- 95, 95, 96, 96, 96, 96, 96, 96, 96, 96,
- 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
- 96, 96, 96, 96, 96, 96, 97, 97, 97, 97,
- 98, 99, 100, 100, 100, 100, 101, 101, 101, 101,
- 101, 101, 102, 102, 103, 103, 104, 105, 105, 105,
- 105, 106, 106, 106, 107, 108, 108, 108, 108, 109,
- 109, 110, 110, 111, 111, 112, 112, 113, 113, 113,
- 114, 114, 115, 115, 115, 115, 115, 116, 116, 116,
- 116, 116, 116, 117, 118, 118, 118, 118, 119, 120,
- 120, 121, 122, 122, 123, 124, 124, 124, 124, 124,
- 124, 124, 124, 124, 124, 124, 125, 125, 126, 127,
- 127, 128, 128, 129, 129, 129, 129, 129, 129, 129,
- 130, 130, 130, 130, 131, 131, 132, 133, 133, 134,
- 135
+ 0, 74, 75, 75, 76, 76, 77, 78, 78, 79,
+ 80, 80, 81, 82, 82, 82, 82, 83, 84, 85,
+ 85, 86, 87, 88, 88, 88, 89, 89, 90, 90,
+ 91, 91, 92, 93, 93, 94, 94, 95, 95, 96,
+ 96, 96, 97, 97, 97, 97, 97, 97, 97, 97,
+ 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
+ 97, 97, 97, 97, 97, 97, 98, 98, 98, 98,
+ 99, 100, 101, 101, 101, 101, 102, 102, 102, 102,
+ 102, 102, 103, 103, 104, 104, 105, 106, 106, 106,
+ 106, 107, 107, 107, 108, 109, 109, 109, 109, 110,
+ 110, 111, 111, 112, 112, 113, 113, 114, 114, 114,
+ 115, 115, 116, 116, 116, 116, 116, 117, 117, 117,
+ 117, 117, 117, 118, 119, 119, 119, 119, 120, 121,
+ 121, 122, 123, 123, 124, 125, 125, 125, 125, 125,
+ 125, 125, 125, 125, 125, 125, 126, 126, 127, 128,
+ 128, 129, 129, 130, 130, 130, 130, 130, 130, 130,
+ 130, 131, 131, 131, 131, 132, 132, 133, 134, 134,
+ 135, 136
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1148,8 +1152,8 @@ static const yytype_uint8 yyr2[] =
1, 4, 4, 5, 4, 0, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 5, 5, 1, 0,
1, 6, 5, 5, 5, 5, 5, 5, 4, 5,
- 1, 1, 1, 5, 0, 2, 4, 0, 2, 1,
- 1
+ 5, 1, 1, 1, 5, 0, 2, 4, 0, 2,
+ 1, 1
};
@@ -1648,331 +1652,331 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
case 5: /* NAT */
#line 259 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1652 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1656 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
case 6: /* INT */
#line 259 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1658 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1662 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
case 7: /* FLOAT */
#line 259 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1664 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1668 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
case 8: /* TEXT */
#line 259 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1670 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1674 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
case 9: /* VAR */
#line 259 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1676 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1680 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
case 35: /* OFFSET_EQ_NAT */
#line 259 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1682 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1686 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
case 36: /* ALIGN_EQ_NAT */
#line 259 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1688 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1692 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 74: /* non_empty_text_list */
+ case 75: /* non_empty_text_list */
#line 282 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_text_list(parser->allocator, &((*yyvaluep).text_list)); }
-#line 1694 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1698 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 75: /* text_list */
+ case 76: /* text_list */
#line 282 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_text_list(parser->allocator, &((*yyvaluep).text_list)); }
-#line 1700 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1704 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 76: /* quoted_text */
+ case 77: /* quoted_text */
#line 281 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).text)); }
-#line 1706 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1710 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 77: /* value_type_list */
+ case 78: /* value_type_list */
#line 283 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_type_vector(parser->allocator, &((*yyvaluep).types)); }
-#line 1712 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1716 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 80: /* func_type */
+ case 81: /* func_type */
#line 273 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_func_signature(parser->allocator, &((*yyvaluep).func_sig)); }
-#line 1718 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1722 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 81: /* func_sig */
+ case 82: /* func_sig */
#line 273 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_func_signature(parser->allocator, &((*yyvaluep).func_sig)); }
-#line 1724 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1728 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 85: /* type_use */
+ case 86: /* type_use */
#line 285 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_var(parser->allocator, &((*yyvaluep).var)); }
-#line 1730 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1734 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 87: /* literal */
+ case 88: /* literal */
#line 279 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).literal).text); }
-#line 1736 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1740 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 88: /* var */
+ case 89: /* var */
#line 285 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_var(parser->allocator, &((*yyvaluep).var)); }
-#line 1742 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1746 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 89: /* var_list */
+ case 90: /* var_list */
#line 284 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_var_vector_and_elements(parser->allocator, &((*yyvaluep).vars)); }
-#line 1748 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1752 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 90: /* bind_var_opt */
+ case 91: /* bind_var_opt */
#line 281 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).text)); }
-#line 1754 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1758 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 91: /* bind_var */
+ case 92: /* bind_var */
#line 281 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).text)); }
-#line 1760 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1764 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 92: /* labeling_opt */
+ case 93: /* labeling_opt */
#line 281 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_string_slice(parser->allocator, &((*yyvaluep).text)); }
-#line 1766 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1770 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 95: /* instr */
+ case 96: /* instr */
#line 270 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); }
-#line 1772 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1776 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 96: /* plain_instr */
+ case 97: /* plain_instr */
#line 269 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr(parser->allocator, ((*yyvaluep).expr)); }
-#line 1778 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1782 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 97: /* block_instr */
+ case 98: /* block_instr */
#line 269 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr(parser->allocator, ((*yyvaluep).expr)); }
-#line 1784 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1788 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 98: /* block */
+ case 99: /* block */
#line 260 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_block(parser->allocator, &((*yyvaluep).block)); }
-#line 1790 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1794 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 99: /* expr */
+ case 100: /* expr */
#line 270 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); }
-#line 1796 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1800 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 100: /* expr1 */
+ case 101: /* expr1 */
#line 270 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); }
-#line 1802 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1806 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 101: /* if_ */
+ case 102: /* if_ */
#line 270 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); }
-#line 1808 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1812 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 102: /* instr_list */
+ case 103: /* instr_list */
#line 270 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); }
-#line 1814 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1818 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 103: /* expr_list */
+ case 104: /* expr_list */
#line 270 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); }
-#line 1820 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1824 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 104: /* const_expr */
+ case 105: /* const_expr */
#line 270 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); }
-#line 1826 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1830 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 105: /* func_fields */
+ case 106: /* func_fields */
#line 271 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_func_fields(parser->allocator, ((*yyvaluep).func_fields)); }
-#line 1832 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1836 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 106: /* func_body */
+ case 107: /* func_body */
#line 271 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_func_fields(parser->allocator, ((*yyvaluep).func_fields)); }
-#line 1838 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1842 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 107: /* func_info */
+ case 108: /* func_info */
#line 272 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_func(parser->allocator, ((*yyvaluep).func)); wasm_free(parser->allocator, ((*yyvaluep).func)); }
-#line 1844 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1848 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 108: /* func */
+ case 109: /* func */
#line 266 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_exported_func(parser->allocator, &((*yyvaluep).exported_func)); }
-#line 1850 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1854 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 109: /* offset */
+ case 110: /* offset */
#line 270 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_list(parser->allocator, ((*yyvaluep).expr_list).first); }
-#line 1856 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1860 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 110: /* elem */
+ case 111: /* elem */
#line 264 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_elem_segment(parser->allocator, &((*yyvaluep).elem_segment)); }
-#line 1862 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1866 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 111: /* table */
+ case 112: /* table */
#line 268 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_exported_table(parser->allocator, &((*yyvaluep).exported_table)); }
-#line 1868 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1872 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 112: /* data */
+ case 113: /* data */
#line 276 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_data_segment(parser->allocator, &((*yyvaluep).data_segment)); }
-#line 1874 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1878 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 113: /* memory */
+ case 114: /* memory */
#line 267 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_exported_memory(parser->allocator, &((*yyvaluep).exported_memory)); }
-#line 1880 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1884 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 115: /* import_kind */
+ case 116: /* import_kind */
#line 275 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_import(parser->allocator, ((*yyvaluep).import)); wasm_free(parser->allocator, ((*yyvaluep).import)); }
-#line 1886 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1890 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 116: /* import */
+ case 117: /* import */
#line 275 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_import(parser->allocator, ((*yyvaluep).import)); wasm_free(parser->allocator, ((*yyvaluep).import)); }
-#line 1892 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1896 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 117: /* inline_import */
+ case 118: /* inline_import */
#line 275 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_import(parser->allocator, ((*yyvaluep).import)); wasm_free(parser->allocator, ((*yyvaluep).import)); }
-#line 1898 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1902 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 118: /* export_kind */
+ case 119: /* export_kind */
#line 265 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_export(parser->allocator, &((*yyvaluep).export_)); }
-#line 1904 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1908 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 119: /* export */
+ case 120: /* export */
#line 265 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_export(parser->allocator, &((*yyvaluep).export_)); }
-#line 1910 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1914 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 122: /* type_def */
+ case 123: /* type_def */
#line 274 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_func_type(parser->allocator, &((*yyvaluep).func_type)); }
-#line 1916 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1920 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 123: /* start */
+ case 124: /* start */
#line 285 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_var(parser->allocator, &((*yyvaluep).var)); }
-#line 1922 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1926 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 124: /* module_fields */
+ case 125: /* module_fields */
#line 277 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_module(parser->allocator, ((*yyvaluep).module)); wasm_free(parser->allocator, ((*yyvaluep).module)); }
-#line 1928 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1932 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 125: /* raw_module */
+ case 126: /* raw_module */
#line 278 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_raw_module(parser->allocator, &((*yyvaluep).raw_module)); }
-#line 1934 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1938 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 126: /* module */
+ case 127: /* module */
#line 277 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_module(parser->allocator, ((*yyvaluep).module)); wasm_free(parser->allocator, ((*yyvaluep).module)); }
-#line 1940 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1944 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 127: /* script_var_opt */
+ case 128: /* script_var_opt */
#line 285 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_var(parser->allocator, &((*yyvaluep).var)); }
-#line 1946 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1950 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 129: /* assertion */
+ case 130: /* assertion */
#line 261 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_command(parser->allocator, ((*yyvaluep).command)); wasm_free(parser->allocator, ((*yyvaluep).command)); }
-#line 1952 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1956 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 130: /* cmd */
+ case 131: /* cmd */
#line 261 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_command(parser->allocator, ((*yyvaluep).command)); wasm_free(parser->allocator, ((*yyvaluep).command)); }
-#line 1958 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1962 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 131: /* cmd_list */
+ case 132: /* cmd_list */
#line 262 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_command_vector_and_elements(parser->allocator, &((*yyvaluep).commands)); }
-#line 1964 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1968 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 133: /* const_list */
+ case 134: /* const_list */
#line 263 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_const_vector(parser->allocator, &((*yyvaluep).consts)); }
-#line 1970 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1974 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
- case 134: /* script */
+ case 135: /* script */
#line 280 "src/ast-parser.y" /* yacc.c:1257 */
{ wasm_destroy_script(&((*yyvaluep).script)); }
-#line 1976 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
+#line 1980 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1257 */
break;
@@ -2271,7 +2275,7 @@ yyreduce:
node->next = NULL;
(yyval.text_list).first = (yyval.text_list).last = node;
}
-#line 2275 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2279 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 3:
@@ -2284,13 +2288,13 @@ yyreduce:
(yyval.text_list).last->next = node;
(yyval.text_list).last = node;
}
-#line 2288 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2292 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 4:
#line 314 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.text_list).first = (yyval.text_list).last = NULL; }
-#line 2294 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2298 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 6:
@@ -2308,13 +2312,13 @@ yyreduce:
(yyval.text).start = data;
(yyval.text).length = size;
}
-#line 2312 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2316 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 7:
#line 337 "src/ast-parser.y" /* yacc.c:1646 */
{ WASM_ZERO_MEMORY((yyval.types)); }
-#line 2318 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2322 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 8:
@@ -2323,13 +2327,13 @@ yyreduce:
(yyval.types) = (yyvsp[-1].types);
wasm_append_type_value(parser->allocator, &(yyval.types), &(yyvsp[0].type));
}
-#line 2327 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2331 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 9:
#line 344 "src/ast-parser.y" /* yacc.c:1646 */
{}
-#line 2333 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2337 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 10:
@@ -2339,7 +2343,7 @@ yyreduce:
(yyval.global).type = (yyvsp[0].type);
(yyval.global).mutable_ = WASM_FALSE;
}
-#line 2343 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2347 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 11:
@@ -2349,19 +2353,19 @@ yyreduce:
(yyval.global).type = (yyvsp[-1].type);
(yyval.global).mutable_ = WASM_TRUE;
}
-#line 2353 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2357 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 12:
#line 359 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.func_sig) = (yyvsp[-1].func_sig); }
-#line 2359 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2363 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 13:
#line 362 "src/ast-parser.y" /* yacc.c:1646 */
{ WASM_ZERO_MEMORY((yyval.func_sig)); }
-#line 2365 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2369 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 14:
@@ -2370,7 +2374,7 @@ yyreduce:
WASM_ZERO_MEMORY((yyval.func_sig));
(yyval.func_sig).param_types = (yyvsp[-1].types);
}
-#line 2374 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2378 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 15:
@@ -2380,7 +2384,7 @@ yyreduce:
(yyval.func_sig).param_types = (yyvsp[-5].types);
(yyval.func_sig).result_types = (yyvsp[-1].types);
}
-#line 2384 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2388 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 16:
@@ -2389,19 +2393,19 @@ yyreduce:
WASM_ZERO_MEMORY((yyval.func_sig));
(yyval.func_sig).result_types = (yyvsp[-1].types);
}
-#line 2393 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2397 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 17:
#line 379 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.table).elem_limits = (yyvsp[-1].limits); }
-#line 2399 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2403 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 18:
#line 382 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.memory).page_limits = (yyvsp[0].limits); }
-#line 2405 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2409 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 19:
@@ -2411,7 +2415,7 @@ yyreduce:
(yyval.limits).initial = (yyvsp[0].u64);
(yyval.limits).max = 0;
}
-#line 2415 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2419 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 20:
@@ -2421,13 +2425,13 @@ yyreduce:
(yyval.limits).initial = (yyvsp[-1].u64);
(yyval.limits).max = (yyvsp[0].u64);
}
-#line 2425 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2429 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 21:
#line 397 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.var) = (yyvsp[-1].var); }
-#line 2431 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2435 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 22:
@@ -2440,7 +2444,7 @@ yyreduce:
WASM_PRINTF_STRING_SLICE_ARG((yyvsp[0].literal).text));
}
}
-#line 2444 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2448 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 23:
@@ -2449,7 +2453,7 @@ yyreduce:
(yyval.literal).type = (yyvsp[0].literal).type;
DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text);
}
-#line 2453 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2457 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 24:
@@ -2458,7 +2462,7 @@ yyreduce:
(yyval.literal).type = (yyvsp[0].literal).type;
DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text);
}
-#line 2462 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2466 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 25:
@@ -2467,7 +2471,7 @@ yyreduce:
(yyval.literal).type = (yyvsp[0].literal).type;
DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text);
}
-#line 2471 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2475 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 26:
@@ -2477,7 +2481,7 @@ yyreduce:
(yyval.var).type = WASM_VAR_TYPE_INDEX;
(yyval.var).index = (yyvsp[0].u64);
}
-#line 2481 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2485 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 27:
@@ -2487,13 +2491,13 @@ yyreduce:
(yyval.var).type = WASM_VAR_TYPE_NAME;
DUPTEXT((yyval.var).name, (yyvsp[0].text));
}
-#line 2491 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2495 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 28:
#line 441 "src/ast-parser.y" /* yacc.c:1646 */
{ WASM_ZERO_MEMORY((yyval.vars)); }
-#line 2497 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2501 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 29:
@@ -2502,31 +2506,31 @@ yyreduce:
(yyval.vars) = (yyvsp[-1].vars);
wasm_append_var_value(parser->allocator, &(yyval.vars), &(yyvsp[0].var));
}
-#line 2506 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2510 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 30:
#line 448 "src/ast-parser.y" /* yacc.c:1646 */
{ WASM_ZERO_MEMORY((yyval.text)); }
-#line 2512 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2516 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 32:
#line 452 "src/ast-parser.y" /* yacc.c:1646 */
{ DUPTEXT((yyval.text), (yyvsp[0].text)); }
-#line 2518 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2522 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 33:
#line 456 "src/ast-parser.y" /* yacc.c:1646 */
{ WASM_ZERO_MEMORY((yyval.text)); }
-#line 2524 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2528 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 35:
#line 461 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.u64) = 0; }
-#line 2530 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2534 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 36:
@@ -2539,13 +2543,13 @@ yyreduce:
WASM_PRINTF_STRING_SLICE_ARG((yyvsp[0].text)));
}
}
-#line 2543 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2547 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 37:
#line 472 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.u32) = USE_NATURAL_ALIGNMENT; }
-#line 2549 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2553 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 38:
@@ -2558,25 +2562,25 @@ yyreduce:
WASM_PRINTF_STRING_SLICE_ARG((yyvsp[0].text)));
}
}
-#line 2562 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2566 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 39:
#line 484 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); }
-#line 2568 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2572 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 40:
#line 485 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); }
-#line 2574 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2578 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 41:
#line 486 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = (yyvsp[0].expr_list); }
-#line 2580 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2584 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 42:
@@ -2584,7 +2588,7 @@ yyreduce:
{
(yyval.expr) = wasm_new_unreachable_expr(parser->allocator);
}
-#line 2588 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2592 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 43:
@@ -2592,7 +2596,7 @@ yyreduce:
{
(yyval.expr) = wasm_new_nop_expr(parser->allocator);
}
-#line 2596 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2600 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 44:
@@ -2600,7 +2604,7 @@ yyreduce:
{
(yyval.expr) = wasm_new_drop_expr(parser->allocator);
}
-#line 2604 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2608 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 45:
@@ -2608,7 +2612,7 @@ yyreduce:
{
(yyval.expr) = wasm_new_select_expr(parser->allocator);
}
-#line 2612 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2616 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 46:
@@ -2617,7 +2621,7 @@ yyreduce:
(yyval.expr) = wasm_new_br_expr(parser->allocator);
(yyval.expr)->br.var = (yyvsp[0].var);
}
-#line 2621 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2625 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 47:
@@ -2626,7 +2630,7 @@ yyreduce:
(yyval.expr) = wasm_new_br_if_expr(parser->allocator);
(yyval.expr)->br_if.var = (yyvsp[0].var);
}
-#line 2630 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2634 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 48:
@@ -2636,7 +2640,7 @@ yyreduce:
(yyval.expr)->br_table.targets = (yyvsp[-1].vars);
(yyval.expr)->br_table.default_target = (yyvsp[0].var);
}
-#line 2640 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2644 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 49:
@@ -2644,7 +2648,7 @@ yyreduce:
{
(yyval.expr) = wasm_new_return_expr(parser->allocator);
}
-#line 2648 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2652 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 50:
@@ -2653,7 +2657,7 @@ yyreduce:
(yyval.expr) = wasm_new_call_expr(parser->allocator);
(yyval.expr)->call.var = (yyvsp[0].var);
}
-#line 2657 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2661 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 51:
@@ -2662,7 +2666,7 @@ yyreduce:
(yyval.expr) = wasm_new_call_indirect_expr(parser->allocator);
(yyval.expr)->call_indirect.var = (yyvsp[0].var);
}
-#line 2666 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2670 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 52:
@@ -2671,7 +2675,7 @@ yyreduce:
(yyval.expr) = wasm_new_get_local_expr(parser->allocator);
(yyval.expr)->get_local.var = (yyvsp[0].var);
}
-#line 2675 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2679 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 53:
@@ -2680,7 +2684,7 @@ yyreduce:
(yyval.expr) = wasm_new_set_local_expr(parser->allocator);
(yyval.expr)->set_local.var = (yyvsp[0].var);
}
-#line 2684 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2688 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 54:
@@ -2689,7 +2693,7 @@ yyreduce:
(yyval.expr) = wasm_new_tee_local_expr(parser->allocator);
(yyval.expr)->tee_local.var = (yyvsp[0].var);
}
-#line 2693 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2697 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 55:
@@ -2698,7 +2702,7 @@ yyreduce:
(yyval.expr) = wasm_new_get_global_expr(parser->allocator);
(yyval.expr)->get_global.var = (yyvsp[0].var);
}
-#line 2702 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2706 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 56:
@@ -2707,7 +2711,7 @@ yyreduce:
(yyval.expr) = wasm_new_set_global_expr(parser->allocator);
(yyval.expr)->set_global.var = (yyvsp[0].var);
}
-#line 2711 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2715 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 57:
@@ -2718,7 +2722,7 @@ yyreduce:
(yyval.expr)->load.offset = (yyvsp[-1].u64);
(yyval.expr)->load.align = (yyvsp[0].u32);
}
-#line 2722 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2726 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 58:
@@ -2729,7 +2733,7 @@ yyreduce:
(yyval.expr)->store.offset = (yyvsp[-1].u64);
(yyval.expr)->store.align = (yyvsp[0].u32);
}
-#line 2733 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2737 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 59:
@@ -2746,7 +2750,7 @@ yyreduce:
}
wasm_free(parser->allocator, (char*)(yyvsp[0].literal).text.start);
}
-#line 2750 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2754 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 60:
@@ -2755,7 +2759,7 @@ yyreduce:
(yyval.expr) = wasm_new_unary_expr(parser->allocator);
(yyval.expr)->unary.opcode = (yyvsp[0].opcode);
}
-#line 2759 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2763 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 61:
@@ -2764,7 +2768,7 @@ yyreduce:
(yyval.expr) = wasm_new_binary_expr(parser->allocator);
(yyval.expr)->binary.opcode = (yyvsp[0].opcode);
}
-#line 2768 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2772 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 62:
@@ -2773,7 +2777,7 @@ yyreduce:
(yyval.expr) = wasm_new_compare_expr(parser->allocator);
(yyval.expr)->compare.opcode = (yyvsp[0].opcode);
}
-#line 2777 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2781 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 63:
@@ -2782,7 +2786,7 @@ yyreduce:
(yyval.expr) = wasm_new_convert_expr(parser->allocator);
(yyval.expr)->convert.opcode = (yyvsp[0].opcode);
}
-#line 2786 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2790 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 64:
@@ -2790,7 +2794,7 @@ yyreduce:
{
(yyval.expr) = wasm_new_current_memory_expr(parser->allocator);
}
-#line 2794 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2798 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 65:
@@ -2798,7 +2802,7 @@ yyreduce:
{
(yyval.expr) = wasm_new_grow_memory_expr(parser->allocator);
}
-#line 2802 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2806 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 66:
@@ -2809,7 +2813,7 @@ yyreduce:
(yyval.expr)->block.label = (yyvsp[-3].text);
CHECK_END_LABEL((yylsp[0]), (yyval.expr)->block.label, (yyvsp[0].text));
}
-#line 2813 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2817 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 67:
@@ -2820,7 +2824,7 @@ yyreduce:
(yyval.expr)->loop.label = (yyvsp[-3].text);
CHECK_END_LABEL((yylsp[0]), (yyval.expr)->block.label, (yyvsp[0].text));
}
-#line 2824 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2828 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 68:
@@ -2831,7 +2835,7 @@ yyreduce:
(yyval.expr)->if_.true_.label = (yyvsp[-3].text);
CHECK_END_LABEL((yylsp[0]), (yyval.expr)->block.label, (yyvsp[0].text));
}
-#line 2835 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2839 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 69:
@@ -2844,7 +2848,7 @@ yyreduce:
CHECK_END_LABEL((yylsp[-3]), (yyval.expr)->block.label, (yyvsp[-3].text));
CHECK_END_LABEL((yylsp[0]), (yyval.expr)->block.label, (yyvsp[0].text));
}
-#line 2848 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2852 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 70:
@@ -2854,13 +2858,13 @@ yyreduce:
(yyval.block).sig = (yyvsp[-1].types);
(yyval.block).first = (yyvsp[0].expr_list).first;
}
-#line 2858 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2862 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 71:
#line 629 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = (yyvsp[-1].expr_list); }
-#line 2864 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2868 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 72:
@@ -2868,7 +2872,7 @@ yyreduce:
{
(yyval.expr_list) = join_exprs2(&(yylsp[-1]), &(yyvsp[0].expr_list), (yyvsp[-1].expr));
}
-#line 2872 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2876 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 73:
@@ -2879,7 +2883,7 @@ yyreduce:
expr->block.label = (yyvsp[-1].text);
(yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr);
}
-#line 2883 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2887 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 74:
@@ -2890,7 +2894,7 @@ yyreduce:
expr->loop.label = (yyvsp[-1].text);
(yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr);
}
-#line 2894 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2898 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 75:
@@ -2902,7 +2906,7 @@ yyreduce:
if_->if_.true_.label = (yyvsp[-2].text);
if_->if_.true_.sig = (yyvsp[-1].types);
}
-#line 2906 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2910 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 76:
@@ -2913,7 +2917,7 @@ yyreduce:
expr->if_.false_ = (yyvsp[-1].expr_list).first;
(yyval.expr_list) = join_exprs1(&(yylsp[-7]), expr);
}
-#line 2917 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2921 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 77:
@@ -2923,7 +2927,7 @@ yyreduce:
expr->if_.true_.first = (yyvsp[-1].expr_list).first;
(yyval.expr_list) = join_exprs1(&(yylsp[-3]), expr);
}
-#line 2927 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2931 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 78:
@@ -2934,7 +2938,7 @@ yyreduce:
expr->if_.false_ = (yyvsp[-1].expr_list).first;
(yyval.expr_list) = join_exprs2(&(yylsp[-8]), &(yyvsp[-8].expr_list), expr);
}
-#line 2938 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2942 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 79:
@@ -2944,7 +2948,7 @@ yyreduce:
expr->if_.true_.first = (yyvsp[-1].expr_list).first;
(yyval.expr_list) = join_exprs2(&(yylsp[-4]), &(yyvsp[-4].expr_list), expr);
}
-#line 2948 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2952 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 80:
@@ -2955,7 +2959,7 @@ yyreduce:
expr->if_.false_ = (yyvsp[0].expr_list).first;
(yyval.expr_list) = join_exprs2(&(yylsp[-2]), &(yyvsp[-2].expr_list), expr);
}
-#line 2959 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2963 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 81:
@@ -2965,13 +2969,13 @@ yyreduce:
expr->if_.true_.first = (yyvsp[0].expr_list).first;
(yyval.expr_list) = join_exprs2(&(yylsp[-1]), &(yyvsp[-1].expr_list), expr);
}
-#line 2969 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2973 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 82:
#line 693 "src/ast-parser.y" /* yacc.c:1646 */
{ WASM_ZERO_MEMORY((yyval.expr_list)); }
-#line 2975 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2979 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 83:
@@ -2982,13 +2986,13 @@ yyreduce:
(yyval.expr_list).last = (yyvsp[0].expr_list).last ? (yyvsp[0].expr_list).last : (yyvsp[-1].expr_list).last;
(yyval.expr_list).size = (yyvsp[-1].expr_list).size + (yyvsp[0].expr_list).size;
}
-#line 2986 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2990 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 84:
#line 702 "src/ast-parser.y" /* yacc.c:1646 */
{ WASM_ZERO_MEMORY((yyval.expr_list)); }
-#line 2992 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 2996 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 85:
@@ -2999,7 +3003,7 @@ yyreduce:
(yyval.expr_list).last = (yyvsp[0].expr_list).last ? (yyvsp[0].expr_list).last : (yyvsp[-1].expr_list).last;
(yyval.expr_list).size = (yyvsp[-1].expr_list).size + (yyvsp[0].expr_list).size;
}
-#line 3003 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3007 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 88:
@@ -3010,7 +3014,7 @@ yyreduce:
(yyval.func_fields)->types = (yyvsp[-2].types);
(yyval.func_fields)->next = (yyvsp[0].func_fields);
}
-#line 3014 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3018 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 89:
@@ -3021,7 +3025,7 @@ yyreduce:
(yyval.func_fields)->types = (yyvsp[-2].types);
(yyval.func_fields)->next = (yyvsp[0].func_fields);
}
-#line 3025 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3029 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 90:
@@ -3034,7 +3038,7 @@ yyreduce:
(yyval.func_fields)->bound_type.type = (yyvsp[-2].type);
(yyval.func_fields)->next = (yyvsp[0].func_fields);
}
-#line 3038 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3042 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 91:
@@ -3045,7 +3049,7 @@ yyreduce:
(yyval.func_fields)->first_expr = (yyvsp[0].expr_list).first;
(yyval.func_fields)->next = NULL;
}
-#line 3049 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3053 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 92:
@@ -3056,7 +3060,7 @@ yyreduce:
(yyval.func_fields)->types = (yyvsp[-2].types);
(yyval.func_fields)->next = (yyvsp[0].func_fields);
}
-#line 3060 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3064 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 93:
@@ -3069,7 +3073,7 @@ yyreduce:
(yyval.func_fields)->bound_type.type = (yyvsp[-2].type);
(yyval.func_fields)->next = (yyvsp[0].func_fields);
}
-#line 3073 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3077 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 94:
@@ -3127,7 +3131,7 @@ yyreduce:
field = next;
}
}
-#line 3131 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3135 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 95:
@@ -3140,7 +3144,7 @@ yyreduce:
(yyval.exported_func).func->name = (yyvsp[-4].text);
(yyval.exported_func).export_ = (yyvsp[-3].optional_export);
}
-#line 3144 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3148 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 96:
@@ -3152,7 +3156,7 @@ yyreduce:
(yyval.exported_func).func->decl.type_var = (yyvsp[-2].var);
(yyval.exported_func).func->name = (yyvsp[-3].text);
}
-#line 3156 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3160 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 97:
@@ -3163,7 +3167,7 @@ yyreduce:
(yyval.exported_func).func->name = (yyvsp[-3].text);
(yyval.exported_func).export_ = (yyvsp[-2].optional_export);
}
-#line 3167 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3171 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 98:
@@ -3173,7 +3177,7 @@ yyreduce:
(yyval.exported_func).func = (yyvsp[-1].func);
(yyval.exported_func).func->name = (yyvsp[-2].text);
}
-#line 3177 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3181 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 99:
@@ -3181,7 +3185,7 @@ yyreduce:
{
(yyval.expr_list) = (yyvsp[-1].expr_list);
}
-#line 3185 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3189 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 101:
@@ -3192,7 +3196,7 @@ yyreduce:
(yyval.elem_segment).offset = (yyvsp[-2].expr_list).first;
(yyval.elem_segment).vars = (yyvsp[-1].vars);
}
-#line 3196 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3200 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 102:
@@ -3205,7 +3209,7 @@ yyreduce:
(yyval.elem_segment).offset = (yyvsp[-2].expr_list).first;
(yyval.elem_segment).vars = (yyvsp[-1].vars);
}
-#line 3209 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3213 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 103:
@@ -3216,7 +3220,7 @@ yyreduce:
(yyval.exported_table).has_elem_segment = WASM_FALSE;
(yyval.exported_table).export_ = (yyvsp[-2].optional_export);
}
-#line 3220 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3224 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 104:
@@ -3237,7 +3241,7 @@ yyreduce:
(yyval.exported_table).elem_segment.vars = (yyvsp[-2].vars);
(yyval.exported_table).export_ = (yyvsp[-6].optional_export);
}
-#line 3241 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3245 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 105:
@@ -3249,7 +3253,7 @@ yyreduce:
dup_text_list(parser->allocator, &(yyvsp[-1].text_list), &(yyval.data_segment).data, &(yyval.data_segment).size);
wasm_destroy_text_list(parser->allocator, &(yyvsp[-1].text_list));
}
-#line 3253 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3257 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 106:
@@ -3263,7 +3267,7 @@ yyreduce:
dup_text_list(parser->allocator, &(yyvsp[-1].text_list), &(yyval.data_segment).data, &(yyval.data_segment).size);
wasm_destroy_text_list(parser->allocator, &(yyvsp[-1].text_list));
}
-#line 3267 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3271 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 107:
@@ -3275,7 +3279,7 @@ yyreduce:
(yyval.exported_memory).has_data_segment = WASM_FALSE;
(yyval.exported_memory).export_ = (yyvsp[-2].optional_export);
}
-#line 3279 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3283 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 108:
@@ -3300,7 +3304,7 @@ yyreduce:
(yyval.exported_memory).memory.page_limits.has_max = WASM_TRUE;
(yyval.exported_memory).export_ = (yyvsp[-5].optional_export);
}
-#line 3304 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3308 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 109:
@@ -3325,7 +3329,7 @@ yyreduce:
(yyval.exported_memory).memory.page_limits.has_max = WASM_TRUE;
(yyval.exported_memory).export_.has_export = WASM_FALSE;
}
-#line 3329 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3333 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 110:
@@ -3337,7 +3341,7 @@ yyreduce:
(yyval.exported_global).global.init_expr = (yyvsp[-1].expr_list).first;
(yyval.exported_global).export_ = (yyvsp[-3].optional_export);
}
-#line 3341 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3345 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 111:
@@ -3349,7 +3353,7 @@ yyreduce:
(yyval.exported_global).global.init_expr = (yyvsp[-1].expr_list).first;
(yyval.exported_global).export_.has_export = WASM_FALSE;
}
-#line 3353 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3357 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 112:
@@ -3361,7 +3365,7 @@ yyreduce:
(yyval.import)->func.decl.flags = WASM_FUNC_DECLARATION_FLAG_HAS_FUNC_TYPE;
(yyval.import)->func.decl.type_var = (yyvsp[-1].var);
}
-#line 3365 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3369 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 113:
@@ -3372,7 +3376,7 @@ yyreduce:
(yyval.import)->func.name = (yyvsp[-2].text);
(yyval.import)->func.decl.sig = (yyvsp[-1].func_sig);
}
-#line 3376 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3380 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 114:
@@ -3383,7 +3387,7 @@ yyreduce:
(yyval.import)->table = (yyvsp[-1].table);
(yyval.import)->table.name = (yyvsp[-2].text);
}
-#line 3387 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3391 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 115:
@@ -3394,7 +3398,7 @@ yyreduce:
(yyval.import)->memory = (yyvsp[-1].memory);
(yyval.import)->memory.name = (yyvsp[-2].text);
}
-#line 3398 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3402 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 116:
@@ -3405,7 +3409,7 @@ yyreduce:
(yyval.import)->global = (yyvsp[-1].global);
(yyval.import)->global.name = (yyvsp[-2].text);
}
-#line 3409 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3413 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 117:
@@ -3415,7 +3419,7 @@ yyreduce:
(yyval.import)->module_name = (yyvsp[-3].text);
(yyval.import)->field_name = (yyvsp[-2].text);
}
-#line 3419 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3423 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 118:
@@ -3427,7 +3431,7 @@ yyreduce:
(yyval.import)->func.decl.flags = WASM_FUNC_DECLARATION_FLAG_HAS_FUNC_TYPE;
(yyval.import)->func.decl.type_var = (yyvsp[-1].var);
}
-#line 3431 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3435 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 119:
@@ -3438,7 +3442,7 @@ yyreduce:
(yyval.import)->func.name = (yyvsp[-3].text);
(yyval.import)->func.decl.sig = (yyvsp[-1].func_sig);
}
-#line 3442 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3446 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 120:
@@ -3449,7 +3453,7 @@ yyreduce:
(yyval.import)->table = (yyvsp[-1].table);
(yyval.import)->table.name = (yyvsp[-3].text);
}
-#line 3453 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3457 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 121:
@@ -3460,7 +3464,7 @@ yyreduce:
(yyval.import)->memory = (yyvsp[-1].memory);
(yyval.import)->memory.name = (yyvsp[-3].text);
}
-#line 3464 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3468 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 122:
@@ -3471,7 +3475,7 @@ yyreduce:
(yyval.import)->global = (yyvsp[-1].global);
(yyval.import)->global.name = (yyvsp[-3].text);
}
-#line 3475 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3479 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 123:
@@ -3481,7 +3485,7 @@ yyreduce:
(yyval.import)->module_name = (yyvsp[-2].text);
(yyval.import)->field_name = (yyvsp[-1].text);
}
-#line 3485 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3489 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 124:
@@ -3491,7 +3495,7 @@ yyreduce:
(yyval.export_).kind = WASM_EXTERNAL_KIND_FUNC;
(yyval.export_).var = (yyvsp[-1].var);
}
-#line 3495 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3499 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 125:
@@ -3501,7 +3505,7 @@ yyreduce:
(yyval.export_).kind = WASM_EXTERNAL_KIND_TABLE;
(yyval.export_).var = (yyvsp[-1].var);
}
-#line 3505 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3509 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 126:
@@ -3511,7 +3515,7 @@ yyreduce:
(yyval.export_).kind = WASM_EXTERNAL_KIND_MEMORY;
(yyval.export_).var = (yyvsp[-1].var);
}
-#line 3515 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3519 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 127:
@@ -3521,7 +3525,7 @@ yyreduce:
(yyval.export_).kind = WASM_EXTERNAL_KIND_GLOBAL;
(yyval.export_).var = (yyvsp[-1].var);
}
-#line 3525 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3529 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 128:
@@ -3530,16 +3534,16 @@ yyreduce:
(yyval.export_) = (yyvsp[-1].export_);
(yyval.export_).name = (yyvsp[-2].text);
}
-#line 3534 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3538 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 129:
#line 1098 "src/ast-parser.y" /* yacc.c:1646 */
- {
+ {
WASM_ZERO_MEMORY((yyval.optional_export));
(yyval.optional_export).has_export = WASM_FALSE;
}
-#line 3543 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3547 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 131:
@@ -3549,7 +3553,7 @@ yyreduce:
(yyval.optional_export).has_export = WASM_TRUE;
(yyval.optional_export).export_.name = (yyvsp[-1].text);
}
-#line 3553 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3557 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 132:
@@ -3558,7 +3562,7 @@ yyreduce:
WASM_ZERO_MEMORY((yyval.func_type));
(yyval.func_type).sig = (yyvsp[-1].func_sig);
}
-#line 3562 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3566 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 133:
@@ -3567,13 +3571,13 @@ yyreduce:
(yyval.func_type).name = (yyvsp[-2].text);
(yyval.func_type).sig = (yyvsp[-1].func_sig);
}
-#line 3571 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3575 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 134:
#line 1127 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.var) = (yyvsp[-1].var); }
-#line 3577 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3581 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 135:
@@ -3581,7 +3585,7 @@ yyreduce:
{
(yyval.module) = new_module(parser->allocator);
}
-#line 3585 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3589 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 136:
@@ -3594,7 +3598,7 @@ yyreduce:
&field->func_type);
INSERT_BINDING((yyval.module), func_type, func_types, (yylsp[0]), (yyvsp[0].func_type).name);
}
-#line 3598 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3602 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 137:
@@ -3607,7 +3611,7 @@ yyreduce:
INSERT_BINDING((yyval.module), global, globals, (yylsp[0]), (yyvsp[0].exported_global).global.name);
APPEND_INLINE_EXPORT((yyval.module), GLOBAL, (yylsp[0]), (yyvsp[0].exported_global), (yyval.module)->globals.size - 1);
}
-#line 3611 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3615 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 138:
@@ -3629,7 +3633,7 @@ yyreduce:
}
}
-#line 3633 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3637 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 139:
@@ -3650,7 +3654,7 @@ yyreduce:
&data_segment_field->data_segment);
}
}
-#line 3654 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3658 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 140:
@@ -3666,7 +3670,7 @@ yyreduce:
APPEND_INLINE_EXPORT((yyval.module), FUNC, (yylsp[0]), (yyvsp[0].exported_func), (yyval.module)->funcs.size - 1);
wasm_free(parser->allocator, (yyvsp[0].exported_func).func);
}
-#line 3670 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3674 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 141:
@@ -3678,7 +3682,7 @@ yyreduce:
APPEND_ITEM_TO_VECTOR((yyval.module), ElemSegment, elem_segment, elem_segments,
&field->elem_segment);
}
-#line 3682 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3686 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 142:
@@ -3690,7 +3694,7 @@ yyreduce:
APPEND_ITEM_TO_VECTOR((yyval.module), DataSegment, data_segment, data_segments,
&field->data_segment);
}
-#line 3694 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3698 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 143:
@@ -3701,7 +3705,7 @@ yyreduce:
APPEND_FIELD_TO_LIST((yyval.module), field, START, start, (yylsp[0]), (yyvsp[0].var));
(yyval.module)->start = &field->start;
}
-#line 3705 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3709 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 144:
@@ -3746,7 +3750,7 @@ yyreduce:
wasm_free(parser->allocator, (yyvsp[0].import));
APPEND_ITEM_TO_VECTOR((yyval.module), Import, import, imports, &field->import);
}
-#line 3750 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3754 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 145:
@@ -3758,7 +3762,7 @@ yyreduce:
APPEND_ITEM_TO_VECTOR((yyval.module), Export, export, exports, &field->export_);
INSERT_BINDING((yyval.module), export, exports, (yylsp[0]), (yyvsp[0].export_).name);
}
-#line 3762 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3766 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 146:
@@ -3785,7 +3789,7 @@ yyreduce:
}
}
}
-#line 3789 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3793 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 147:
@@ -3797,7 +3801,7 @@ yyreduce:
dup_text_list(parser->allocator, &(yyvsp[-1].text_list), &(yyval.raw_module).binary.data, &(yyval.raw_module).binary.size);
wasm_destroy_text_list(parser->allocator, &(yyvsp[-1].text_list));
}
-#line 3801 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3805 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 148:
@@ -3823,7 +3827,7 @@ yyreduce:
(yyval.module)->loc = (yyvsp[0].raw_module).binary.loc;
}
}
-#line 3827 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3831 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 149:
@@ -3833,7 +3837,7 @@ yyreduce:
(yyval.var).type = WASM_VAR_TYPE_INDEX;
(yyval.var).index = INVALID_VAR_INDEX;
}
-#line 3837 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3841 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 150:
@@ -3843,7 +3847,7 @@ yyreduce:
(yyval.var).type = WASM_VAR_TYPE_NAME;
DUPTEXT((yyval.var).name, (yyvsp[0].text));
}
-#line 3847 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3851 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 151:
@@ -3856,7 +3860,7 @@ yyreduce:
(yyval.action).invoke.name = (yyvsp[-2].text);
(yyval.action).invoke.args = (yyvsp[-1].consts);
}
-#line 3860 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3864 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 152:
@@ -3868,7 +3872,7 @@ yyreduce:
(yyval.action).type = WASM_ACTION_TYPE_GET;
(yyval.action).invoke.name = (yyvsp[-1].text);
}
-#line 3872 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3876 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 153:
@@ -3879,7 +3883,7 @@ yyreduce:
(yyval.command)->assert_malformed.module = (yyvsp[-2].raw_module);
(yyval.command)->assert_malformed.text = (yyvsp[-1].text);
}
-#line 3883 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3887 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 154:
@@ -3890,7 +3894,7 @@ yyreduce:
(yyval.command)->assert_invalid.module = (yyvsp[-2].raw_module);
(yyval.command)->assert_invalid.text = (yyvsp[-1].text);
}
-#line 3894 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3898 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 155:
@@ -3901,7 +3905,7 @@ yyreduce:
(yyval.command)->assert_unlinkable.module = (yyvsp[-2].raw_module);
(yyval.command)->assert_unlinkable.text = (yyvsp[-1].text);
}
-#line 3905 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3909 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 156:
@@ -3912,7 +3916,7 @@ yyreduce:
(yyval.command)->assert_uninstantiable.module = (yyvsp[-2].raw_module);
(yyval.command)->assert_uninstantiable.text = (yyvsp[-1].text);
}
-#line 3916 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3920 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 157:
@@ -3923,7 +3927,7 @@ yyreduce:
(yyval.command)->assert_return.action = (yyvsp[-2].action);
(yyval.command)->assert_return.expected = (yyvsp[-1].consts);
}
-#line 3927 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3931 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 158:
@@ -3933,7 +3937,7 @@ yyreduce:
(yyval.command)->type = WASM_COMMAND_TYPE_ASSERT_RETURN_NAN;
(yyval.command)->assert_return_nan.action = (yyvsp[-1].action);
}
-#line 3937 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3941 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 159:
@@ -3944,32 +3948,43 @@ yyreduce:
(yyval.command)->assert_trap.action = (yyvsp[-2].action);
(yyval.command)->assert_trap.text = (yyvsp[-1].text);
}
-#line 3948 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3952 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
case 160:
-#line 1397 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1394 "src/ast-parser.y" /* yacc.c:1646 */
+ {
+ (yyval.command) = new_command(parser->allocator);
+ (yyval.command)->type = WASM_COMMAND_TYPE_ASSERT_EXHAUSTION;
+ (yyval.command)->assert_trap.action = (yyvsp[-2].action);
+ (yyval.command)->assert_trap.text = (yyvsp[-1].text);
+ }
+#line 3963 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+ break;
+
+ case 161:
+#line 1403 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new_command(parser->allocator);
(yyval.command)->type = WASM_COMMAND_TYPE_ACTION;
(yyval.command)->action = (yyvsp[0].action);
}
-#line 3958 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3973 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
- case 162:
-#line 1403 "src/ast-parser.y" /* yacc.c:1646 */
+ case 163:
+#line 1409 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new_command(parser->allocator);
(yyval.command)->type = WASM_COMMAND_TYPE_MODULE;
(yyval.command)->module = *(yyvsp[0].module);
wasm_free(parser->allocator, (yyvsp[0].module));
}
-#line 3969 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3984 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
- case 163:
-#line 1409 "src/ast-parser.y" /* yacc.c:1646 */
+ case 164:
+#line 1415 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new_command(parser->allocator);
(yyval.command)->type = WASM_COMMAND_TYPE_REGISTER;
@@ -3977,27 +3992,27 @@ yyreduce:
(yyval.command)->register_.var = (yyvsp[-1].var);
(yyval.command)->register_.var.loc = (yylsp[-1]);
}
-#line 3981 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 3996 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
- case 164:
-#line 1418 "src/ast-parser.y" /* yacc.c:1646 */
+ case 165:
+#line 1424 "src/ast-parser.y" /* yacc.c:1646 */
{ WASM_ZERO_MEMORY((yyval.commands)); }
-#line 3987 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 4002 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
- case 165:
-#line 1419 "src/ast-parser.y" /* yacc.c:1646 */
+ case 166:
+#line 1425 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.commands) = (yyvsp[-1].commands);
wasm_append_command_value(parser->allocator, &(yyval.commands), (yyvsp[0].command));
wasm_free(parser->allocator, (yyvsp[0].command));
}
-#line 3997 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 4012 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
- case 166:
-#line 1427 "src/ast-parser.y" /* yacc.c:1646 */
+ case 167:
+#line 1433 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.const_).loc = (yylsp[-2]);
if (WASM_FAILED(parse_const((yyvsp[-2].type), (yyvsp[-1].literal).type, (yyvsp[-1].literal).text.start,
@@ -4008,26 +4023,26 @@ yyreduce:
}
wasm_free(parser->allocator, (char*)(yyvsp[-1].literal).text.start);
}
-#line 4012 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 4027 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
- case 167:
-#line 1439 "src/ast-parser.y" /* yacc.c:1646 */
+ case 168:
+#line 1445 "src/ast-parser.y" /* yacc.c:1646 */
{ WASM_ZERO_MEMORY((yyval.consts)); }
-#line 4018 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 4033 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
- case 168:
-#line 1440 "src/ast-parser.y" /* yacc.c:1646 */
+ case 169:
+#line 1446 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.consts) = (yyvsp[-1].consts);
wasm_append_const_value(parser->allocator, &(yyval.consts), &(yyvsp[0].const_));
}
-#line 4027 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 4042 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
- case 169:
-#line 1447 "src/ast-parser.y" /* yacc.c:1646 */
+ case 170:
+#line 1453 "src/ast-parser.y" /* yacc.c:1646 */
{
WASM_ZERO_MEMORY((yyval.script));
(yyval.script).allocator = parser->allocator;
@@ -4063,6 +4078,7 @@ yyreduce:
module_var = &command->assert_return_nan.action.module_var;
goto has_module_var;
case WASM_COMMAND_TYPE_ASSERT_TRAP:
+ case WASM_COMMAND_TYPE_ASSERT_EXHAUSTION:
module_var = &command->assert_trap.action.module_var;
goto has_module_var;
case WASM_COMMAND_TYPE_ACTION:
@@ -4088,11 +4104,11 @@ yyreduce:
}
parser->script = (yyval.script);
}
-#line 4092 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 4108 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
break;
-#line 4096 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
+#line 4112 "src/prebuilt/ast-parser-gen.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -4327,7 +4343,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 1515 "src/ast-parser.y" /* yacc.c:1906 */
+#line 1522 "src/ast-parser.y" /* yacc.c:1906 */
static void append_expr_list(WasmExprList* expr_list, WasmExprList* expr) {
diff --git a/src/prebuilt/ast-parser-gen.h b/src/prebuilt/ast-parser-gen.h
index b1fdaf0b..7661d3de 100644
--- a/src/prebuilt/ast-parser-gen.h
+++ b/src/prebuilt/ast-parser-gen.h
@@ -121,9 +121,10 @@ extern int wasm_ast_parser_debug;
WASM_TOKEN_TYPE_ASSERT_RETURN = 322,
WASM_TOKEN_TYPE_ASSERT_RETURN_NAN = 323,
WASM_TOKEN_TYPE_ASSERT_TRAP = 324,
- WASM_TOKEN_TYPE_INPUT = 325,
- WASM_TOKEN_TYPE_OUTPUT = 326,
- WASM_TOKEN_TYPE_LOW = 327
+ WASM_TOKEN_TYPE_ASSERT_EXHAUSTION = 325,
+ WASM_TOKEN_TYPE_INPUT = 326,
+ WASM_TOKEN_TYPE_OUTPUT = 327,
+ WASM_TOKEN_TYPE_LOW = 328
};
#endif
diff --git a/src/resolve-names.c b/src/resolve-names.c
index ea73ed2a..4b28964c 100644
--- a/src/resolve-names.c
+++ b/src/resolve-names.c
@@ -356,6 +356,7 @@ static void visit_command(Context* ctx, WasmCommand* command) {
case WASM_COMMAND_TYPE_ASSERT_RETURN:
case WASM_COMMAND_TYPE_ASSERT_RETURN_NAN:
case WASM_COMMAND_TYPE_ASSERT_TRAP:
+ case WASM_COMMAND_TYPE_ASSERT_EXHAUSTION:
case WASM_COMMAND_TYPE_REGISTER:
/* Don't resolve a module_var, since it doesn't really behave like other
* vars. You can't reference a module by index. */
diff --git a/src/tools/wasm-interp.c b/src/tools/wasm-interp.c
index 844c20a5..433979c3 100644
--- a/src/tools/wasm-interp.c
+++ b/src/tools/wasm-interp.c
@@ -1476,6 +1476,26 @@ static WasmResult on_assert_trap_command(Context* ctx,
return result;
}
+static WasmResult on_assert_exhaustion_command(Context* ctx,
+ Action* action) {
+ WasmInterpreterTypedValueVector results;
+ WasmInterpreterResult iresult;
+
+ ctx->total++;
+ WasmResult result = run_action(ctx, action, &iresult, &results, RUN_QUIET);
+ if (WASM_SUCCEEDED(result)) {
+ if (iresult == WASM_INTERPRETER_TRAP_CALL_STACK_EXHAUSTED) {
+ ctx->passed++;
+ } else {
+ print_command_error(ctx, "expected call stack exhaustion");
+ result = WASM_ERROR;
+ }
+ }
+
+ wasm_destroy_interpreter_typed_value_vector(ctx->allocator, &results);
+ return result;
+}
+
static void destroy_action(WasmAllocator* allocator, Action* action) {
wasm_destroy_interpreter_typed_value_vector(allocator, &action->args);
}
@@ -1612,6 +1632,18 @@ static WasmResult parse_command(Context* ctx) {
PARSE_KEY_STRING_VALUE("text", &text);
on_assert_trap_command(ctx, &action, text);
destroy_action(ctx->allocator, &action);
+ } else if (match(ctx, "\"assert_exhaustion\"")) {
+ Action action;
+ WasmStringSlice text;
+ WASM_ZERO_MEMORY(action);
+ WASM_ZERO_MEMORY(text);
+
+ EXPECT(",");
+ CHECK_RESULT(parse_line(ctx));
+ EXPECT(",");
+ CHECK_RESULT(parse_action(ctx, &action));
+ on_assert_exhaustion_command(ctx, &action);
+ destroy_action(ctx->allocator, &action);
} else {
print_command_error(ctx, "unknown command type");
return WASM_ERROR;
diff --git a/src/validator.c b/src/validator.c
index fd558f97..d56f09dc 100644
--- a/src/validator.c
+++ b/src/validator.c
@@ -1326,6 +1326,7 @@ static void check_command(Context* ctx, const WasmCommand* command) {
}
case WASM_COMMAND_TYPE_ASSERT_TRAP:
+ case WASM_COMMAND_TYPE_ASSERT_EXHAUSTION:
/* ignore result type */
check_action(ctx, &command->assert_trap.action);
break;