diff options
34 files changed, 3882 insertions, 3533 deletions
diff --git a/src/ast-lexer.cc b/src/ast-lexer.cc index 76af1a1b..cff05083 100644 --- a/src/ast-lexer.cc +++ b/src/ast-lexer.cc @@ -227,15 +227,16 @@ int ast_lexer_lex(WABT_AST_PARSER_STYPE* lval, <i> text { TEXT; RETURN(TEXT); } <i> '"' => BAD_TEXT { continue; } <BAD_TEXT> character { continue; } - <BAD_TEXT> "\n" => i { ERROR("newline in string"); NEWLINE; continue; - } + <BAD_TEXT> "\n" => i { ERROR("newline in string"); + NEWLINE; + continue; } <BAD_TEXT> "\\". { ERROR("bad escape \"%.*s\"", static_cast<int>(yyleng), yytext); continue; } <BAD_TEXT> '"' => i { TEXT; RETURN(TEXT); } <BAD_TEXT> EOF { ERROR("unexpected EOF"); RETURN(EOF); } <BAD_TEXT> [^] { ERROR("illegal character in string"); - continue; } + continue; } <i> "i32" { TYPE(I32); RETURN(VALUE_TYPE); } <i> "i64" { TYPE(I64); RETURN(VALUE_TYPE); } <i> "f32" { TYPE(F32); RETURN(VALUE_TYPE); } @@ -411,14 +412,10 @@ int ast_lexer_lex(WABT_AST_PARSER_STYPE* lval, <i> "f64.convert_u/i64" { OPCODE(F64ConvertUI64); RETURN(CONVERT); } <i> "f64.promote/f32" { OPCODE(F64PromoteF32); RETURN(CONVERT); } <i> "f32.demote/f64" { OPCODE(F32DemoteF64); RETURN(CONVERT); } - <i> "f32.reinterpret/i32" { OPCODE(F32ReinterpretI32); RETURN(CONVERT); - } - <i> "i32.reinterpret/f32" { OPCODE(I32ReinterpretF32); RETURN(CONVERT); - } - <i> "f64.reinterpret/i64" { OPCODE(F64ReinterpretI64); RETURN(CONVERT); - } - <i> "i64.reinterpret/f64" { OPCODE(I64ReinterpretF64); RETURN(CONVERT); - } + <i> "f32.reinterpret/i32" { OPCODE(F32ReinterpretI32); RETURN(CONVERT); } + <i> "i32.reinterpret/f32" { OPCODE(I32ReinterpretF32); RETURN(CONVERT); } + <i> "f64.reinterpret/i64" { OPCODE(F64ReinterpretI64); RETURN(CONVERT); } + <i> "i64.reinterpret/f64" { OPCODE(I64ReinterpretF64); RETURN(CONVERT); } <i> "select" { RETURN(SELECT); } <i> "unreachable" { RETURN(UNREACHABLE); } <i> "current_memory" { RETURN(CURRENT_MEMORY); } @@ -445,7 +442,10 @@ int ast_lexer_lex(WABT_AST_PARSER_STYPE* lval, <i> "assert_invalid" { RETURN(ASSERT_INVALID); } <i> "assert_unlinkable" { RETURN(ASSERT_UNLINKABLE); } <i> "assert_return" { RETURN(ASSERT_RETURN); } - <i> "assert_return_nan" { RETURN(ASSERT_RETURN_NAN); } + <i> "assert_return_canonical_nan" { + RETURN(ASSERT_RETURN_CANONICAL_NAN); } + <i> "assert_return_arithmetic_nan" { + RETURN(ASSERT_RETURN_ARITHMETIC_NAN); } <i> "assert_trap" { RETURN(ASSERT_TRAP); } <i> "assert_exhaustion" { RETURN(ASSERT_EXHAUSTION); } <i> "input" { RETURN(INPUT); } diff --git a/src/ast-parser.y b/src/ast-parser.y index 7977586a..5f0498dd 100644 --- a/src/ast-parser.y +++ b/src/ast-parser.y @@ -197,7 +197,8 @@ static bool 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 ASSERT_EXHAUSTION +%token ASSERT_RETURN ASSERT_RETURN_CANONICAL_NAN ASSERT_RETURN_ARITHMETIC_NAN +%token ASSERT_TRAP ASSERT_EXHAUSTION %token INPUT OUTPUT %token EOF 0 "EOF" @@ -1360,10 +1361,15 @@ assertion : $$->assert_return.action = $3; $$->assert_return.expected = $4; } - | LPAR ASSERT_RETURN_NAN action RPAR { + | LPAR ASSERT_RETURN_CANONICAL_NAN action RPAR { $$ = new Command(); - $$->type = CommandType::AssertReturnNan; - $$->assert_return_nan.action = $3; + $$->type = CommandType::AssertReturnCanonicalNan; + $$->assert_return_canonical_nan.action = $3; + } + | LPAR ASSERT_RETURN_ARITHMETIC_NAN action RPAR { + $$ = new Command(); + $$->type = CommandType::AssertReturnArithmeticNan; + $$->assert_return_arithmetic_nan.action = $3; } | LPAR ASSERT_TRAP action quoted_text RPAR { $$ = new Command(); @@ -1454,8 +1460,13 @@ script : case CommandType::AssertReturn: module_var = &command.assert_return.action->module_var; goto has_module_var; - case CommandType::AssertReturnNan: - module_var = &command.assert_return_nan.action->module_var; + case CommandType::AssertReturnCanonicalNan: + module_var = + &command.assert_return_canonical_nan.action->module_var; + goto has_module_var; + case CommandType::AssertReturnArithmeticNan: + module_var = + &command.assert_return_arithmetic_nan.action->module_var; goto has_module_var; case CommandType::AssertTrap: case CommandType::AssertExhaustion: @@ -727,8 +727,11 @@ Command::~Command() { delete assert_return.action; delete assert_return.expected; break; - case CommandType::AssertReturnNan: - delete assert_return_nan.action; + case CommandType::AssertReturnCanonicalNan: + delete assert_return_arithmetic_nan.action; + break; + case CommandType::AssertReturnArithmeticNan: + delete assert_return_canonical_nan.action; break; case CommandType::AssertTrap: case CommandType::AssertExhaustion: @@ -424,7 +424,8 @@ enum class CommandType { AssertUnlinkable, AssertUninstantiable, AssertReturn, - AssertReturnNan, + AssertReturnCanonicalNan, + AssertReturnArithmeticNan, AssertTrap, AssertExhaustion, @@ -444,7 +445,9 @@ struct Command { Action* action; struct { StringSlice module_name; Var var; } register_; struct { Action* action; ConstVector* expected; } assert_return; - struct { Action* action; } assert_return_nan; + struct { + Action* action; + } assert_return_canonical_nan, assert_return_arithmetic_nan; struct { Action* action; StringSlice text; } assert_trap; struct { RawModule* module; diff --git a/src/binary-writer-spec.cc b/src/binary-writer-spec.cc index dac091a3..d87fe820 100644 --- a/src/binary-writer-spec.cc +++ b/src/binary-writer-spec.cc @@ -137,11 +137,20 @@ static void write_escaped_string_slice(Context* ctx, StringSlice ss) { static void write_command_type(Context* ctx, const Command& command) { static const char* s_command_names[] = { - "module", "action", "register", "assert_malformed", "assert_invalid", + "module", + "action", + "register", + "assert_malformed", + "assert_invalid", nullptr, /* ASSERT_INVALID_NON_BINARY, this command will never be written */ - "assert_unlinkable", "assert_uninstantiable", "assert_return", - "assert_return_nan", "assert_trap", "assert_exhaustion", + "assert_unlinkable", + "assert_uninstantiable", + "assert_return", + "assert_return_canonical_nan", + "assert_return_arithmetic_nan", + "assert_trap", + "assert_exhaustion", }; WABT_STATIC_ASSERT(WABT_ARRAY_SIZE(s_command_names) == kCommandTypeCount); @@ -425,14 +434,24 @@ static void write_commands(Context* ctx, Script* script) { write_const_vector(ctx, *command.assert_return.expected); break; - case CommandType::AssertReturnNan: - write_location(ctx, &command.assert_return_nan.action->loc); + case CommandType::AssertReturnCanonicalNan: + write_location(ctx, &command.assert_return_canonical_nan.action->loc); write_separator(ctx); - write_action(ctx, command.assert_return_nan.action); + write_action(ctx, command.assert_return_canonical_nan.action); write_separator(ctx); write_key(ctx, "expected"); write_action_result_type(ctx, script, - command.assert_return_nan.action); + command.assert_return_canonical_nan.action); + break; + + case CommandType::AssertReturnArithmeticNan: + write_location(ctx, &command.assert_return_arithmetic_nan.action->loc); + write_separator(ctx); + write_action(ctx, command.assert_return_arithmetic_nan.action); + write_separator(ctx); + write_key(ctx, "expected"); + write_action_result_type(ctx, script, + command.assert_return_arithmetic_nan.action); break; case CommandType::AssertTrap: diff --git a/src/interpreter.cc b/src/interpreter.cc index f60854ea..bb1e6a9c 100644 --- a/src/interpreter.cc +++ b/src/interpreter.cc @@ -278,16 +278,25 @@ InterpreterExport* get_interpreter_export_by_name(InterpreterModule* module, #define F32_NEG_ONE 0xbf800000U #define F32_NEG_ZERO 0x80000000U #define F32_QUIET_NAN 0x7fc00000U +#define F32_QUIET_NEG_NAN 0xffc00000U #define F32_QUIET_NAN_BIT 0x00400000U #define F32_SIG_BITS 23 #define F32_SIG_MASK 0x7fffff #define F32_SIGN_MASK 0x80000000U -bool is_nan_f32(uint32_t f32_bits) { +static bool is_nan_f32(uint32_t f32_bits) { return (f32_bits > F32_INF && f32_bits < F32_NEG_ZERO) || (f32_bits > F32_NEG_INF); } +bool is_canonical_nan_f32(uint32_t f32_bits) { + return f32_bits == F32_QUIET_NAN || f32_bits == F32_QUIET_NEG_NAN; +} + +bool is_arithmetic_nan_f32(uint32_t f32_bits) { + return (f32_bits & F32_QUIET_NAN) == F32_QUIET_NAN; +} + static WABT_INLINE bool is_zero_f32(uint32_t f32_bits) { return f32_bits == 0 || f32_bits == F32_NEG_ZERO; } @@ -317,32 +326,22 @@ static WABT_INLINE bool is_in_range_i64_trunc_u_f32(uint32_t f32_bits) { * 3 21098765432 1098..9..432109...210 * ----------------------------------- * 0 00000000000 0000..0..000000...000 0x0000000000000000 => 0 - * 0 10000011101 1111..1..111000...000 0x41dfffffffc00000 => 2147483647 - * (INT32_MAX) - * 0 10000011110 1111..1..111100...000 0x41efffffffe00000 => 4294967295 - * (UINT32_MAX) - * 0 10000111101 1111..1..111111...111 0x43dfffffffffffff => 9223372036854774784 - * (~INT64_MAX) + * 0 10000011101 1111..1..111000...000 0x41dfffffffc00000 => 2147483647 (INT32_MAX) + * 0 10000011110 1111..1..111100...000 0x41efffffffe00000 => 4294967295 (UINT32_MAX) + * 0 10000111101 1111..1..111111...111 0x43dfffffffffffff => 9223372036854774784 (~INT64_MAX) * 0 10000111110 0000..0..000000...000 0x43e0000000000000 => 9223372036854775808 - * 0 10000111110 1111..1..111111...111 0x43efffffffffffff => - * 18446744073709549568 (~UINT64_MAX) - * 0 10000111111 0000..0..000000...000 0x43f0000000000000 => - * 18446744073709551616 - * 0 10001111110 1111..1..000000...000 0x47efffffe0000000 => 3.402823e+38 - * (FLT_MAX) + * 0 10000111110 1111..1..111111...111 0x43efffffffffffff => 18446744073709549568 (~UINT64_MAX) + * 0 10000111111 0000..0..000000...000 0x43f0000000000000 => 18446744073709551616 + * 0 10001111110 1111..1..000000...000 0x47efffffe0000000 => 3.402823e+38 (FLT_MAX) * 0 11111111111 0000..0..000000...000 0x7ff0000000000000 => inf * 0 11111111111 0000..0..000000...001 0x7ff0000000000001 => nan(0x1) * 0 11111111111 1111..1..111111...111 0x7fffffffffffffff => nan(0xfff...) * 1 00000000000 0000..0..000000...000 0x8000000000000000 => -0 - * 1 01111111110 1111..1..111111...111 0xbfefffffffffffff => -1 + ulp - * (~UINT32_MIN, ~UINT64_MIN) + * 1 01111111110 1111..1..111111...111 0xbfefffffffffffff => -1 + ulp (~UINT32_MIN, ~UINT64_MIN) * 1 01111111111 0000..0..000000...000 0xbff0000000000000 => -1 - * 1 10000011110 0000..0..000000...000 0xc1e0000000000000 => -2147483648 - * (INT32_MIN) - * 1 10000111110 0000..0..000000...000 0xc3e0000000000000 => - * -9223372036854775808 (INT64_MIN) - * 1 10001111110 1111..1..000000...000 0xc7efffffe0000000 => -3.402823e+38 - * (-FLT_MAX) + * 1 10000011110 0000..0..000000...000 0xc1e0000000000000 => -2147483648 (INT32_MIN) + * 1 10000111110 0000..0..000000...000 0xc3e0000000000000 => -9223372036854775808 (INT64_MIN) + * 1 10001111110 1111..1..000000...000 0xc7efffffe0000000 => -3.402823e+38 (-FLT_MAX) * 1 11111111111 0000..0..000000...000 0xfff0000000000000 => -inf * 1 11111111111 0000..0..000000...001 0xfff0000000000001 => -nan(0x1) * 1 11111111111 1111..1..111111...111 0xffffffffffffffff => -nan(0xfff...) @@ -353,16 +352,25 @@ static WABT_INLINE bool is_in_range_i64_trunc_u_f32(uint32_t f32_bits) { #define F64_NEG_ONE 0xbff0000000000000ULL #define F64_NEG_ZERO 0x8000000000000000ULL #define F64_QUIET_NAN 0x7ff8000000000000ULL +#define F64_QUIET_NEG_NAN 0xfff8000000000000ULL #define F64_QUIET_NAN_BIT 0x0008000000000000ULL #define F64_SIG_BITS 52 #define F64_SIG_MASK 0xfffffffffffffULL #define F64_SIGN_MASK 0x8000000000000000ULL -bool is_nan_f64(uint64_t f64_bits) { +static bool is_nan_f64(uint64_t f64_bits) { return (f64_bits > F64_INF && f64_bits < F64_NEG_ZERO) || (f64_bits > F64_NEG_INF); } +bool is_canonical_nan_f64(uint64_t f64_bits) { + return f64_bits == F64_QUIET_NAN || f64_bits == F64_QUIET_NEG_NAN; +} + +bool is_arithmetic_nan_f64(uint64_t f64_bits) { + return (f64_bits & F64_QUIET_NAN) == F64_QUIET_NAN; +} + static WABT_INLINE bool is_zero_f64(uint64_t f64_bits) { return f64_bits == 0 || f64_bits == F64_NEG_ZERO; } diff --git a/src/interpreter.h b/src/interpreter.h index 94125005..28b15b33 100644 --- a/src/interpreter.h +++ b/src/interpreter.h @@ -361,8 +361,10 @@ struct InterpreterThreadOptions { uint32_t pc; }; -bool is_nan_f32(uint32_t f32_bits); -bool is_nan_f64(uint64_t f64_bits); +bool is_canonical_nan_f32(uint32_t f32_bits); +bool is_canonical_nan_f64(uint64_t f64_bits); +bool is_arithmetic_nan_f32(uint32_t f32_bits); +bool is_arithmetic_nan_f64(uint64_t f64_bits); bool func_signatures_are_equal(InterpreterEnvironment* env, uint32_t sig_index_0, uint32_t sig_index_1); diff --git a/src/prebuilt/ast-lexer-gen.cc b/src/prebuilt/ast-lexer-gen.cc index 6a4f3a08..ede11abb 100644 --- a/src/prebuilt/ast-lexer-gen.cc +++ b/src/prebuilt/ast-lexer-gen.cc @@ -29,7 +29,7 @@ /* must be included after so some typedefs will be defined */ #include "ast-parser-gen.hh" -#define YYMAXFILL 20 +#define YYMAXFILL 29 #define INITIAL_LEXER_BUFFER_SIZE (64 * 1024) @@ -221,34 +221,35 @@ YYCOND_BAD_TEXT: } } ++lexer->cursor; -#line 236 "src/ast-lexer.cc" +#line 237 "src/ast-lexer.cc" { ERROR("unexpected EOF"); RETURN(EOF); } #line 227 "src/prebuilt/ast-lexer-gen.cc" yy5: ++lexer->cursor; yy6: -#line 237 "src/ast-lexer.cc" +#line 238 "src/ast-lexer.cc" { ERROR("illegal character in string"); - continue; } + continue; } #line 234 "src/prebuilt/ast-lexer-gen.cc" yy7: ++lexer->cursor; BEGIN(YYCOND_i); #line 230 "src/ast-lexer.cc" - { ERROR("newline in string"); NEWLINE; continue; - } -#line 241 "src/prebuilt/ast-lexer-gen.cc" + { ERROR("newline in string"); + NEWLINE; + continue; } +#line 242 "src/prebuilt/ast-lexer-gen.cc" yy9: ++lexer->cursor; #line 229 "src/ast-lexer.cc" { continue; } -#line 246 "src/prebuilt/ast-lexer-gen.cc" +#line 247 "src/prebuilt/ast-lexer-gen.cc" yy11: ++lexer->cursor; BEGIN(YYCOND_i); -#line 235 "src/ast-lexer.cc" +#line 236 "src/ast-lexer.cc" { TEXT; RETURN(TEXT); } -#line 252 "src/prebuilt/ast-lexer-gen.cc" +#line 253 "src/prebuilt/ast-lexer-gen.cc" yy13: yych = *++lexer->cursor; if (yych <= '@') { @@ -282,11 +283,11 @@ yy13: yy14: ++lexer->cursor; yy15: -#line 232 "src/ast-lexer.cc" +#line 233 "src/ast-lexer.cc" { ERROR("bad escape \"%.*s\"", static_cast<int>(yyleng), yytext); continue; } -#line 290 "src/prebuilt/ast-lexer-gen.cc" +#line 291 "src/prebuilt/ast-lexer-gen.cc" yy16: ++lexer->cursor; if ((yych = *lexer->cursor) <= '@') { @@ -316,18 +317,18 @@ yy19: ++lexer->cursor; #line 464 "src/ast-lexer.cc" { ERROR("unexpected EOF"); RETURN(EOF); } -#line 320 "src/prebuilt/ast-lexer-gen.cc" +#line 321 "src/prebuilt/ast-lexer-gen.cc" yy21: ++lexer->cursor; yy22: #line 465 "src/ast-lexer.cc" { continue; } -#line 326 "src/prebuilt/ast-lexer-gen.cc" +#line 327 "src/prebuilt/ast-lexer-gen.cc" yy23: ++lexer->cursor; #line 463 "src/ast-lexer.cc" { NEWLINE; continue; } -#line 331 "src/prebuilt/ast-lexer-gen.cc" +#line 332 "src/prebuilt/ast-lexer-gen.cc" yy25: yych = *++lexer->cursor; if (yych == ';') goto yy27; @@ -340,14 +341,14 @@ yy27: ++lexer->cursor; #line 459 "src/ast-lexer.cc" { COMMENT_NESTING++; continue; } -#line 344 "src/prebuilt/ast-lexer-gen.cc" +#line 345 "src/prebuilt/ast-lexer-gen.cc" yy29: ++lexer->cursor; #line 460 "src/ast-lexer.cc" { if (--COMMENT_NESTING == 0) BEGIN(YYCOND_INIT); continue; } -#line 351 "src/prebuilt/ast-lexer-gen.cc" +#line 352 "src/prebuilt/ast-lexer-gen.cc" /* *********************************** */ YYCOND_LINE_COMMENT: { @@ -394,7 +395,7 @@ YYCOND_LINE_COMMENT: yy33: #line 457 "src/ast-lexer.cc" { continue; } -#line 398 "src/prebuilt/ast-lexer-gen.cc" +#line 399 "src/prebuilt/ast-lexer-gen.cc" yy34: ++lexer->cursor; if (lexer->limit <= lexer->cursor) FILL(1); @@ -408,7 +409,7 @@ yy36: BEGIN(YYCOND_i); #line 456 "src/ast-lexer.cc" { NEWLINE; continue; } -#line 412 "src/prebuilt/ast-lexer-gen.cc" +#line 413 "src/prebuilt/ast-lexer-gen.cc" } /* *********************************** */ YYCOND_i: @@ -447,7 +448,7 @@ YYCOND_i: 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, }; - if ((lexer->limit - lexer->cursor) < 20) FILL(20); + if ((lexer->limit - lexer->cursor) < 29) FILL(29); yych = *lexer->cursor; if (yybm[0+yych] & 8) { goto yy44; @@ -552,13 +553,13 @@ yy40: ++lexer->cursor; #line 471 "src/ast-lexer.cc" { RETURN(EOF); } -#line 556 "src/prebuilt/ast-lexer-gen.cc" +#line 557 "src/prebuilt/ast-lexer-gen.cc" yy42: ++lexer->cursor; yy43: #line 472 "src/ast-lexer.cc" { ERROR("unexpected char"); continue; } -#line 562 "src/prebuilt/ast-lexer-gen.cc" +#line 563 "src/prebuilt/ast-lexer-gen.cc" yy44: ++lexer->cursor; if (lexer->limit <= lexer->cursor) FILL(1); @@ -568,12 +569,12 @@ yy44: } #line 467 "src/ast-lexer.cc" { continue; } -#line 572 "src/prebuilt/ast-lexer-gen.cc" +#line 573 "src/prebuilt/ast-lexer-gen.cc" yy47: ++lexer->cursor; #line 466 "src/ast-lexer.cc" { NEWLINE; continue; } -#line 577 "src/prebuilt/ast-lexer-gen.cc" +#line 578 "src/prebuilt/ast-lexer-gen.cc" yy49: ++lexer->cursor; if (lexer->limit <= lexer->cursor) FILL(1); @@ -587,7 +588,7 @@ yy51: { ERROR("unexpected token \"%.*s\"", static_cast<int>(yyleng), yytext); continue; } -#line 591 "src/prebuilt/ast-lexer-gen.cc" +#line 592 "src/prebuilt/ast-lexer-gen.cc" yy52: yych = *(lexer->marker = ++lexer->cursor); if (yych <= 0x1F) goto yy53; @@ -596,7 +597,7 @@ yy53: BEGIN(YYCOND_BAD_TEXT); #line 228 "src/ast-lexer.cc" { continue; } -#line 600 "src/prebuilt/ast-lexer-gen.cc" +#line 601 "src/prebuilt/ast-lexer-gen.cc" yy54: yych = *++lexer->cursor; if (yych <= ';') { @@ -638,12 +639,12 @@ yy55: if ((yych = *lexer->cursor) == ';') goto yy91; #line 219 "src/ast-lexer.cc" { RETURN(LPAR); } -#line 642 "src/prebuilt/ast-lexer-gen.cc" +#line 643 "src/prebuilt/ast-lexer-gen.cc" yy57: ++lexer->cursor; #line 220 "src/ast-lexer.cc" { RETURN(RPAR); } -#line 647 "src/prebuilt/ast-lexer-gen.cc" +#line 648 "src/prebuilt/ast-lexer-gen.cc" yy59: yych = *++lexer->cursor; if (yych <= 'h') { @@ -702,7 +703,7 @@ yy60: yy61: #line 221 "src/ast-lexer.cc" { LITERAL(Int); RETURN(NAT); } -#line 706 "src/prebuilt/ast-lexer-gen.cc" +#line 707 "src/prebuilt/ast-lexer-gen.cc" yy62: ++lexer->cursor; if ((lexer->limit - lexer->cursor) < 3) FILL(3); @@ -905,7 +906,7 @@ yy85: ++lexer->cursor; #line 227 "src/ast-lexer.cc" { TEXT; RETURN(TEXT); } -#line 909 "src/prebuilt/ast-lexer-gen.cc" +#line 910 "src/prebuilt/ast-lexer-gen.cc" yy87: ++lexer->cursor; if (lexer->limit <= lexer->cursor) FILL(1); @@ -970,13 +971,13 @@ yy88: yy90: #line 453 "src/ast-lexer.cc" { TEXT; RETURN(VAR); } -#line 974 "src/prebuilt/ast-lexer-gen.cc" +#line 975 "src/prebuilt/ast-lexer-gen.cc" yy91: ++lexer->cursor; BEGIN(YYCOND_BLOCK_COMMENT); #line 458 "src/ast-lexer.cc" { COMMENT_NESTING = 1; continue; } -#line 980 "src/prebuilt/ast-lexer-gen.cc" +#line 981 "src/prebuilt/ast-lexer-gen.cc" yy93: ++lexer->cursor; if ((yych = *lexer->cursor) <= 'D') { @@ -1020,7 +1021,7 @@ yy93: yy94: #line 222 "src/ast-lexer.cc" { LITERAL(Int); RETURN(INT); } -#line 1024 "src/prebuilt/ast-lexer-gen.cc" +#line 1025 "src/prebuilt/ast-lexer-gen.cc" yy95: ++lexer->cursor; if ((lexer->limit - lexer->cursor) < 3) FILL(3); @@ -1119,7 +1120,7 @@ yy99: yy101: #line 223 "src/ast-lexer.cc" { LITERAL(Float); RETURN(FLOAT); } -#line 1123 "src/prebuilt/ast-lexer-gen.cc" +#line 1124 "src/prebuilt/ast-lexer-gen.cc" yy102: yych = *++lexer->cursor; if (yych <= ',') { @@ -1142,7 +1143,7 @@ yy104: BEGIN(YYCOND_LINE_COMMENT); #line 455 "src/ast-lexer.cc" { continue; } -#line 1146 "src/prebuilt/ast-lexer-gen.cc" +#line 1147 "src/prebuilt/ast-lexer-gen.cc" yy106: yych = *++lexer->cursor; if (yych == 'i') goto yy156; @@ -1194,9 +1195,9 @@ yy110: } } yy111: -#line 252 "src/ast-lexer.cc" +#line 253 "src/ast-lexer.cc" { RETURN(BR); } -#line 1200 "src/prebuilt/ast-lexer-gen.cc" +#line 1201 "src/prebuilt/ast-lexer-gen.cc" yy112: yych = *++lexer->cursor; if (yych == 'l') goto yy161; @@ -1293,9 +1294,9 @@ yy127: } } yy128: -#line 247 "src/ast-lexer.cc" +#line 248 "src/ast-lexer.cc" { RETURN(IF); } -#line 1299 "src/prebuilt/ast-lexer-gen.cc" +#line 1300 "src/prebuilt/ast-lexer-gen.cc" yy129: yych = *++lexer->cursor; if (yych == 'p') goto yy184; @@ -1560,9 +1561,9 @@ yy167: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 259 "src/ast-lexer.cc" +#line 260 "src/ast-lexer.cc" { RETURN(END); } -#line 1566 "src/prebuilt/ast-lexer-gen.cc" +#line 1567 "src/prebuilt/ast-lexer-gen.cc" yy169: yych = *++lexer->cursor; if (yych == 'o') goto yy235; @@ -1601,9 +1602,9 @@ yy170: } } yy171: -#line 241 "src/ast-lexer.cc" +#line 242 "src/ast-lexer.cc" { TYPE(F32); RETURN(VALUE_TYPE); } -#line 1607 "src/prebuilt/ast-lexer-gen.cc" +#line 1608 "src/prebuilt/ast-lexer-gen.cc" yy172: ++lexer->cursor; if ((yych = *lexer->cursor) <= ':') { @@ -1638,9 +1639,9 @@ yy172: } } yy173: -#line 242 "src/ast-lexer.cc" +#line 243 "src/ast-lexer.cc" { TYPE(F64); RETURN(VALUE_TYPE); } -#line 1644 "src/prebuilt/ast-lexer-gen.cc" +#line 1645 "src/prebuilt/ast-lexer-gen.cc" yy174: yych = *++lexer->cursor; if (yych == 'c') goto yy238; @@ -1680,9 +1681,9 @@ yy175: } } yy176: -#line 443 "src/ast-lexer.cc" +#line 440 "src/ast-lexer.cc" { RETURN(GET); } -#line 1686 "src/prebuilt/ast-lexer-gen.cc" +#line 1687 "src/prebuilt/ast-lexer-gen.cc" yy177: yych = *++lexer->cursor; if (yych == 'b') goto yy241; @@ -1725,9 +1726,9 @@ yy179: } } yy180: -#line 239 "src/ast-lexer.cc" +#line 240 "src/ast-lexer.cc" { TYPE(I32); RETURN(VALUE_TYPE); } -#line 1731 "src/prebuilt/ast-lexer-gen.cc" +#line 1732 "src/prebuilt/ast-lexer-gen.cc" yy181: ++lexer->cursor; if ((yych = *lexer->cursor) <= ':') { @@ -1762,9 +1763,9 @@ yy181: } } yy182: -#line 240 "src/ast-lexer.cc" +#line 241 "src/ast-lexer.cc" { TYPE(I64); RETURN(VALUE_TYPE); } -#line 1768 "src/prebuilt/ast-lexer-gen.cc" +#line 1769 "src/prebuilt/ast-lexer-gen.cc" yy183: yych = *++lexer->cursor; if (yych == 'e') goto yy245; @@ -1810,7 +1811,7 @@ yy185: yy186: #line 225 "src/ast-lexer.cc" { LITERAL(Infinity); RETURN(FLOAT); } -#line 1814 "src/prebuilt/ast-lexer-gen.cc" +#line 1815 "src/prebuilt/ast-lexer-gen.cc" yy187: yych = *++lexer->cursor; if (yych == 'u') goto yy248; @@ -1840,9 +1841,9 @@ yy193: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 244 "src/ast-lexer.cc" +#line 245 "src/ast-lexer.cc" { RETURN(MUT); } -#line 1846 "src/prebuilt/ast-lexer-gen.cc" +#line 1847 "src/prebuilt/ast-lexer-gen.cc" yy195: ++lexer->cursor; if ((yych = *lexer->cursor) <= ';') { @@ -1879,15 +1880,15 @@ yy195: yy196: #line 226 "src/ast-lexer.cc" { LITERAL(Nan); RETURN(FLOAT); } -#line 1883 "src/prebuilt/ast-lexer-gen.cc" +#line 1884 "src/prebuilt/ast-lexer-gen.cc" yy197: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 245 "src/ast-lexer.cc" +#line 246 "src/ast-lexer.cc" { RETURN(NOP); } -#line 1891 "src/prebuilt/ast-lexer-gen.cc" +#line 1892 "src/prebuilt/ast-lexer-gen.cc" yy199: yych = *++lexer->cursor; if (yych == 's') goto yy256; @@ -2109,9 +2110,9 @@ yy224: } } yy225: -#line 255 "src/ast-lexer.cc" +#line 256 "src/ast-lexer.cc" { RETURN(CALL); } -#line 2115 "src/prebuilt/ast-lexer-gen.cc" +#line 2116 "src/prebuilt/ast-lexer-gen.cc" yy226: yych = *++lexer->cursor; if (yych == 'e') goto yy285; @@ -2121,33 +2122,33 @@ yy227: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 437 "src/ast-lexer.cc" +#line 434 "src/ast-lexer.cc" { RETURN(DATA); } -#line 2127 "src/prebuilt/ast-lexer-gen.cc" +#line 2128 "src/prebuilt/ast-lexer-gen.cc" yy229: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 258 "src/ast-lexer.cc" +#line 259 "src/ast-lexer.cc" { RETURN(DROP); } -#line 2135 "src/prebuilt/ast-lexer-gen.cc" +#line 2136 "src/prebuilt/ast-lexer-gen.cc" yy231: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 436 "src/ast-lexer.cc" +#line 433 "src/ast-lexer.cc" { RETURN(ELEM); } -#line 2143 "src/prebuilt/ast-lexer-gen.cc" +#line 2144 "src/prebuilt/ast-lexer-gen.cc" yy233: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 250 "src/ast-lexer.cc" +#line 251 "src/ast-lexer.cc" { RETURN(ELSE); } -#line 2151 "src/prebuilt/ast-lexer-gen.cc" +#line 2152 "src/prebuilt/ast-lexer-gen.cc" yy235: yych = *++lexer->cursor; if (yych == 'r') goto yy286; @@ -2192,9 +2193,9 @@ yy238: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 427 "src/ast-lexer.cc" +#line 424 "src/ast-lexer.cc" { RETURN(FUNC); } -#line 2198 "src/prebuilt/ast-lexer-gen.cc" +#line 2199 "src/prebuilt/ast-lexer-gen.cc" yy240: yych = *++lexer->cursor; if (yych == 'g') goto yy312; @@ -2276,9 +2277,9 @@ yy251: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 251 "src/ast-lexer.cc" +#line 252 "src/ast-lexer.cc" { RETURN(LOOP); } -#line 2282 "src/prebuilt/ast-lexer-gen.cc" +#line 2283 "src/prebuilt/ast-lexer-gen.cc" yy253: yych = *++lexer->cursor; if (yych == 'r') goto yy353; @@ -2341,17 +2342,17 @@ yy267: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 249 "src/ast-lexer.cc" +#line 250 "src/ast-lexer.cc" { RETURN(THEN); } -#line 2347 "src/prebuilt/ast-lexer-gen.cc" +#line 2348 "src/prebuilt/ast-lexer-gen.cc" yy269: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 426 "src/ast-lexer.cc" +#line 423 "src/ast-lexer.cc" { RETURN(TYPE); } -#line 2355 "src/prebuilt/ast-lexer-gen.cc" +#line 2356 "src/prebuilt/ast-lexer-gen.cc" yy271: yych = *++lexer->cursor; if (yych == 'a') goto yy371; @@ -2399,7 +2400,7 @@ yy273: yy275: #line 224 "src/ast-lexer.cc" { LITERAL(Hexfloat); RETURN(FLOAT); } -#line 2403 "src/prebuilt/ast-lexer-gen.cc" +#line 2404 "src/prebuilt/ast-lexer-gen.cc" yy276: yych = *++lexer->cursor; if (yych == '=') goto yy372; @@ -2417,17 +2418,17 @@ yy279: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 246 "src/ast-lexer.cc" +#line 247 "src/ast-lexer.cc" { RETURN(BLOCK); } -#line 2423 "src/prebuilt/ast-lexer-gen.cc" +#line 2424 "src/prebuilt/ast-lexer-gen.cc" yy281: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 253 "src/ast-lexer.cc" +#line 254 "src/ast-lexer.cc" { RETURN(BR_IF); } -#line 2431 "src/prebuilt/ast-lexer-gen.cc" +#line 2432 "src/prebuilt/ast-lexer-gen.cc" yy283: yych = *++lexer->cursor; if (yych == 'b') goto yy375; @@ -2781,7 +2782,7 @@ yy348: } #line 451 "src/ast-lexer.cc" { RETURN(INPUT); } -#line 2785 "src/prebuilt/ast-lexer-gen.cc" +#line 2786 "src/prebuilt/ast-lexer-gen.cc" yy350: yych = *++lexer->cursor; if (yych == 'e') goto yy499; @@ -2791,9 +2792,9 @@ yy351: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 430 "src/ast-lexer.cc" +#line 427 "src/ast-lexer.cc" { RETURN(LOCAL); } -#line 2797 "src/prebuilt/ast-lexer-gen.cc" +#line 2798 "src/prebuilt/ast-lexer-gen.cc" yy353: yych = *++lexer->cursor; if (yych == 'y') goto yy501; @@ -2819,9 +2820,9 @@ yy358: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 428 "src/ast-lexer.cc" +#line 425 "src/ast-lexer.cc" { RETURN(PARAM); } -#line 2825 "src/prebuilt/ast-lexer-gen.cc" +#line 2826 "src/prebuilt/ast-lexer-gen.cc" yy360: yych = *++lexer->cursor; if (yych == 't') goto yy510; @@ -2851,17 +2852,17 @@ yy366: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 435 "src/ast-lexer.cc" +#line 432 "src/ast-lexer.cc" { RETURN(START); } -#line 2857 "src/prebuilt/ast-lexer-gen.cc" +#line 2858 "src/prebuilt/ast-lexer-gen.cc" yy368: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 433 "src/ast-lexer.cc" +#line 430 "src/ast-lexer.cc" { RETURN(TABLE); } -#line 2865 "src/prebuilt/ast-lexer-gen.cc" +#line 2866 "src/prebuilt/ast-lexer-gen.cc" yy370: yych = *++lexer->cursor; if (yych == 'o') goto yy519; @@ -2903,9 +2904,9 @@ yy378: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 440 "src/ast-lexer.cc" +#line 437 "src/ast-lexer.cc" { RETURN(EXPORT); } -#line 2909 "src/prebuilt/ast-lexer-gen.cc" +#line 2910 "src/prebuilt/ast-lexer-gen.cc" yy380: yych = *++lexer->cursor; if (yych == 's') goto yy532; @@ -2936,9 +2937,9 @@ yy386: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 381 "src/ast-lexer.cc" +#line 382 "src/ast-lexer.cc" { OPCODE(F32Eq); RETURN(COMPARE); } -#line 2942 "src/prebuilt/ast-lexer-gen.cc" +#line 2943 "src/prebuilt/ast-lexer-gen.cc" yy388: yych = *++lexer->cursor; if (yych == 'o') goto yy542; @@ -2948,25 +2949,25 @@ yy389: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 391 "src/ast-lexer.cc" +#line 392 "src/ast-lexer.cc" { OPCODE(F32Ge); RETURN(COMPARE); } -#line 2954 "src/prebuilt/ast-lexer-gen.cc" +#line 2955 "src/prebuilt/ast-lexer-gen.cc" yy391: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 389 "src/ast-lexer.cc" +#line 390 "src/ast-lexer.cc" { OPCODE(F32Gt); RETURN(COMPARE); } -#line 2962 "src/prebuilt/ast-lexer-gen.cc" +#line 2963 "src/prebuilt/ast-lexer-gen.cc" yy393: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 387 "src/ast-lexer.cc" +#line 388 "src/ast-lexer.cc" { OPCODE(F32Le); RETURN(COMPARE); } -#line 2970 "src/prebuilt/ast-lexer-gen.cc" +#line 2971 "src/prebuilt/ast-lexer-gen.cc" yy395: yych = *++lexer->cursor; if (yych == 'a') goto yy543; @@ -2976,9 +2977,9 @@ yy396: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 385 "src/ast-lexer.cc" +#line 386 "src/ast-lexer.cc" { OPCODE(F32Lt); RETURN(COMPARE); } -#line 2982 "src/prebuilt/ast-lexer-gen.cc" +#line 2983 "src/prebuilt/ast-lexer-gen.cc" yy398: yych = *++lexer->cursor; if (yych == 'x') goto yy544; @@ -3027,9 +3028,9 @@ yy401: } } yy402: -#line 383 "src/ast-lexer.cc" +#line 384 "src/ast-lexer.cc" { OPCODE(F32Ne); RETURN(COMPARE); } -#line 3033 "src/prebuilt/ast-lexer-gen.cc" +#line 3034 "src/prebuilt/ast-lexer-gen.cc" yy403: yych = *++lexer->cursor; if (yych == 'i') goto yy553; @@ -3076,9 +3077,9 @@ yy413: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 382 "src/ast-lexer.cc" +#line 383 "src/ast-lexer.cc" { OPCODE(F64Eq); RETURN(COMPARE); } -#line 3082 "src/prebuilt/ast-lexer-gen.cc" +#line 3083 "src/prebuilt/ast-lexer-gen.cc" yy415: yych = *++lexer->cursor; if (yych == 'o') goto yy568; @@ -3088,25 +3089,25 @@ yy416: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 392 "src/ast-lexer.cc" +#line 393 "src/ast-lexer.cc" { OPCODE(F64Ge); RETURN(COMPARE); } -#line 3094 "src/prebuilt/ast-lexer-gen.cc" +#line 3095 "src/prebuilt/ast-lexer-gen.cc" yy418: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 390 "src/ast-lexer.cc" +#line 391 "src/ast-lexer.cc" { OPCODE(F64Gt); RETURN(COMPARE); } -#line 3102 "src/prebuilt/ast-lexer-gen.cc" +#line 3103 "src/prebuilt/ast-lexer-gen.cc" yy420: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 388 "src/ast-lexer.cc" +#line 389 "src/ast-lexer.cc" { OPCODE(F64Le); RETURN(COMPARE); } -#line 3110 "src/prebuilt/ast-lexer-gen.cc" +#line 3111 "src/prebuilt/ast-lexer-gen.cc" yy422: yych = *++lexer->cursor; if (yych == 'a') goto yy569; @@ -3116,9 +3117,9 @@ yy423: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 386 "src/ast-lexer.cc" +#line 387 "src/ast-lexer.cc" { OPCODE(F64Lt); RETURN(COMPARE); } -#line 3122 "src/prebuilt/ast-lexer-gen.cc" +#line 3123 "src/prebuilt/ast-lexer-gen.cc" yy425: yych = *++lexer->cursor; if (yych == 'x') goto yy570; @@ -3167,9 +3168,9 @@ yy428: } } yy429: -#line 384 "src/ast-lexer.cc" +#line 385 "src/ast-lexer.cc" { OPCODE(F64Ne); RETURN(COMPARE); } -#line 3173 "src/prebuilt/ast-lexer-gen.cc" +#line 3174 "src/prebuilt/ast-lexer-gen.cc" yy430: yych = *++lexer->cursor; if (yych == 'o') goto yy579; @@ -3207,9 +3208,9 @@ yy438: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 431 "src/ast-lexer.cc" +#line 428 "src/ast-lexer.cc" { RETURN(GLOBAL); } -#line 3213 "src/prebuilt/ast-lexer-gen.cc" +#line 3214 "src/prebuilt/ast-lexer-gen.cc" yy440: yych = *++lexer->cursor; if (yych == 'e') goto yy588; @@ -3273,9 +3274,9 @@ yy447: } } yy448: -#line 361 "src/ast-lexer.cc" +#line 362 "src/ast-lexer.cc" { OPCODE(I32Eq); RETURN(COMPARE); } -#line 3279 "src/prebuilt/ast-lexer-gen.cc" +#line 3280 "src/prebuilt/ast-lexer-gen.cc" yy449: yych = *++lexer->cursor; if (yych == '_') goto yy601; @@ -3305,17 +3306,17 @@ yy455: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 363 "src/ast-lexer.cc" +#line 364 "src/ast-lexer.cc" { OPCODE(I32Ne); RETURN(COMPARE); } -#line 3311 "src/prebuilt/ast-lexer-gen.cc" +#line 3312 "src/prebuilt/ast-lexer-gen.cc" yy457: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 333 "src/ast-lexer.cc" +#line 334 "src/ast-lexer.cc" { OPCODE(I32Or); RETURN(BINARY); } -#line 3319 "src/prebuilt/ast-lexer-gen.cc" +#line 3320 "src/prebuilt/ast-lexer-gen.cc" yy459: yych = *++lexer->cursor; if (yych == 'p') goto yy608; @@ -3413,9 +3414,9 @@ yy474: } } yy475: -#line 362 "src/ast-lexer.cc" +#line 363 "src/ast-lexer.cc" { OPCODE(I64Eq); RETURN(COMPARE); } -#line 3419 "src/prebuilt/ast-lexer-gen.cc" +#line 3420 "src/prebuilt/ast-lexer-gen.cc" yy476: yych = *++lexer->cursor; if (yych == 't') goto yy634; @@ -3449,17 +3450,17 @@ yy483: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 364 "src/ast-lexer.cc" +#line 365 "src/ast-lexer.cc" { OPCODE(I64Ne); RETURN(COMPARE); } -#line 3455 "src/prebuilt/ast-lexer-gen.cc" +#line 3456 "src/prebuilt/ast-lexer-gen.cc" yy485: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 334 "src/ast-lexer.cc" +#line 335 "src/ast-lexer.cc" { OPCODE(I64Or); RETURN(BINARY); } -#line 3463 "src/prebuilt/ast-lexer-gen.cc" +#line 3464 "src/prebuilt/ast-lexer-gen.cc" yy487: yych = *++lexer->cursor; if (yych == 'p') goto yy642; @@ -3503,9 +3504,9 @@ yy496: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 439 "src/ast-lexer.cc" +#line 436 "src/ast-lexer.cc" { RETURN(IMPORT); } -#line 3509 "src/prebuilt/ast-lexer-gen.cc" +#line 3510 "src/prebuilt/ast-lexer-gen.cc" yy498: yych = *++lexer->cursor; if (yych == 't') goto yy657; @@ -3515,25 +3516,25 @@ yy499: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 442 "src/ast-lexer.cc" +#line 439 "src/ast-lexer.cc" { RETURN(INVOKE); } -#line 3521 "src/prebuilt/ast-lexer-gen.cc" +#line 3522 "src/prebuilt/ast-lexer-gen.cc" yy501: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 434 "src/ast-lexer.cc" +#line 431 "src/ast-lexer.cc" { RETURN(MEMORY); } -#line 3529 "src/prebuilt/ast-lexer-gen.cc" +#line 3530 "src/prebuilt/ast-lexer-gen.cc" yy503: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 432 "src/ast-lexer.cc" +#line 429 "src/ast-lexer.cc" { RETURN(MODULE); } -#line 3537 "src/prebuilt/ast-lexer-gen.cc" +#line 3538 "src/prebuilt/ast-lexer-gen.cc" yy505: yych = *++lexer->cursor; if (yych <= '@') { @@ -3580,9 +3581,9 @@ yy506: } } yy507: -#line 438 "src/ast-lexer.cc" +#line 435 "src/ast-lexer.cc" { RETURN(OFFSET); } -#line 3586 "src/prebuilt/ast-lexer-gen.cc" +#line 3587 "src/prebuilt/ast-lexer-gen.cc" yy508: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { @@ -3590,7 +3591,7 @@ yy508: } #line 452 "src/ast-lexer.cc" { RETURN(OUTPUT); } -#line 3594 "src/prebuilt/ast-lexer-gen.cc" +#line 3595 "src/prebuilt/ast-lexer-gen.cc" yy510: yych = *++lexer->cursor; if (yych == 'e') goto yy661; @@ -3600,25 +3601,25 @@ yy511: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 429 "src/ast-lexer.cc" +#line 426 "src/ast-lexer.cc" { RETURN(RESULT); } -#line 3606 "src/prebuilt/ast-lexer-gen.cc" +#line 3607 "src/prebuilt/ast-lexer-gen.cc" yy513: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 260 "src/ast-lexer.cc" +#line 261 "src/ast-lexer.cc" { RETURN(RETURN); } -#line 3614 "src/prebuilt/ast-lexer-gen.cc" +#line 3615 "src/prebuilt/ast-lexer-gen.cc" yy515: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 422 "src/ast-lexer.cc" +#line 419 "src/ast-lexer.cc" { RETURN(SELECT); } -#line 3622 "src/prebuilt/ast-lexer-gen.cc" +#line 3623 "src/prebuilt/ast-lexer-gen.cc" yy517: yych = *++lexer->cursor; if (yych == 'o') goto yy662; @@ -3671,9 +3672,9 @@ yy521: } } yy522: -#line 290 "src/ast-lexer.cc" +#line 291 "src/ast-lexer.cc" { TEXT_AT(6); RETURN(ALIGN_EQ_NAT); } -#line 3677 "src/prebuilt/ast-lexer-gen.cc" +#line 3678 "src/prebuilt/ast-lexer-gen.cc" yy523: ++lexer->cursor; if (lexer->limit <= lexer->cursor) FILL(1); @@ -3722,9 +3723,9 @@ yy525: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 243 "src/ast-lexer.cc" +#line 244 "src/ast-lexer.cc" { RETURN(ANYFUNC); } -#line 3728 "src/prebuilt/ast-lexer-gen.cc" +#line 3729 "src/prebuilt/ast-lexer-gen.cc" yy527: yych = *++lexer->cursor; switch (yych) { @@ -3757,17 +3758,17 @@ yy532: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 305 "src/ast-lexer.cc" +#line 306 "src/ast-lexer.cc" { OPCODE(F32Abs); RETURN(UNARY); } -#line 3763 "src/prebuilt/ast-lexer-gen.cc" +#line 3764 "src/prebuilt/ast-lexer-gen.cc" yy534: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 347 "src/ast-lexer.cc" +#line 348 "src/ast-lexer.cc" { OPCODE(F32Add); RETURN(BINARY); } -#line 3771 "src/prebuilt/ast-lexer-gen.cc" +#line 3772 "src/prebuilt/ast-lexer-gen.cc" yy536: yych = *++lexer->cursor; if (yych == 'l') goto yy678; @@ -3790,9 +3791,9 @@ yy540: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 353 "src/ast-lexer.cc" +#line 354 "src/ast-lexer.cc" { OPCODE(F32Div); RETURN(BINARY); } -#line 3796 "src/prebuilt/ast-lexer-gen.cc" +#line 3797 "src/prebuilt/ast-lexer-gen.cc" yy542: yych = *++lexer->cursor; if (yych == 'o') goto yy684; @@ -3806,25 +3807,25 @@ yy544: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 357 "src/ast-lexer.cc" +#line 358 "src/ast-lexer.cc" { OPCODE(F32Max); RETURN(BINARY); } -#line 3812 "src/prebuilt/ast-lexer-gen.cc" +#line 3813 "src/prebuilt/ast-lexer-gen.cc" yy546: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 355 "src/ast-lexer.cc" +#line 356 "src/ast-lexer.cc" { OPCODE(F32Min); RETURN(BINARY); } -#line 3820 "src/prebuilt/ast-lexer-gen.cc" +#line 3821 "src/prebuilt/ast-lexer-gen.cc" yy548: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 351 "src/ast-lexer.cc" +#line 352 "src/ast-lexer.cc" { OPCODE(F32Mul); RETURN(BINARY); } -#line 3828 "src/prebuilt/ast-lexer-gen.cc" +#line 3829 "src/prebuilt/ast-lexer-gen.cc" yy550: yych = *++lexer->cursor; if (yych == 'r') goto yy687; @@ -3834,9 +3835,9 @@ yy551: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 303 "src/ast-lexer.cc" +#line 304 "src/ast-lexer.cc" { OPCODE(F32Neg); RETURN(UNARY); } -#line 3840 "src/prebuilt/ast-lexer-gen.cc" +#line 3841 "src/prebuilt/ast-lexer-gen.cc" yy553: yych = *++lexer->cursor; if (yych == 'n') goto yy688; @@ -3854,9 +3855,9 @@ yy556: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 349 "src/ast-lexer.cc" +#line 350 "src/ast-lexer.cc" { OPCODE(F32Sub); RETURN(BINARY); } -#line 3860 "src/prebuilt/ast-lexer-gen.cc" +#line 3861 "src/prebuilt/ast-lexer-gen.cc" yy558: yych = *++lexer->cursor; if (yych == 'n') goto yy692; @@ -3866,17 +3867,17 @@ yy559: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 306 "src/ast-lexer.cc" +#line 307 "src/ast-lexer.cc" { OPCODE(F64Abs); RETURN(UNARY); } -#line 3872 "src/prebuilt/ast-lexer-gen.cc" +#line 3873 "src/prebuilt/ast-lexer-gen.cc" yy561: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 348 "src/ast-lexer.cc" +#line 349 "src/ast-lexer.cc" { OPCODE(F64Add); RETURN(BINARY); } -#line 3880 "src/prebuilt/ast-lexer-gen.cc" +#line 3881 "src/prebuilt/ast-lexer-gen.cc" yy563: yych = *++lexer->cursor; if (yych == 'l') goto yy693; @@ -3895,9 +3896,9 @@ yy566: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 354 "src/ast-lexer.cc" +#line 355 "src/ast-lexer.cc" { OPCODE(F64Div); RETURN(BINARY); } -#line 3901 "src/prebuilt/ast-lexer-gen.cc" +#line 3902 "src/prebuilt/ast-lexer-gen.cc" yy568: yych = *++lexer->cursor; if (yych == 'o') goto yy698; @@ -3911,25 +3912,25 @@ yy570: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 358 "src/ast-lexer.cc" +#line 359 "src/ast-lexer.cc" { OPCODE(F64Max); RETURN(BINARY); } -#line 3917 "src/prebuilt/ast-lexer-gen.cc" +#line 3918 "src/prebuilt/ast-lexer-gen.cc" yy572: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 356 "src/ast-lexer.cc" +#line 357 "src/ast-lexer.cc" { OPCODE(F64Min); RETURN(BINARY); } -#line 3925 "src/prebuilt/ast-lexer-gen.cc" +#line 3926 "src/prebuilt/ast-lexer-gen.cc" yy574: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 352 "src/ast-lexer.cc" +#line 353 "src/ast-lexer.cc" { OPCODE(F64Mul); RETURN(BINARY); } -#line 3933 "src/prebuilt/ast-lexer-gen.cc" +#line 3934 "src/prebuilt/ast-lexer-gen.cc" yy576: yych = *++lexer->cursor; if (yych == 'r') goto yy701; @@ -3939,9 +3940,9 @@ yy577: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 304 "src/ast-lexer.cc" +#line 305 "src/ast-lexer.cc" { OPCODE(F64Neg); RETURN(UNARY); } -#line 3945 "src/prebuilt/ast-lexer-gen.cc" +#line 3946 "src/prebuilt/ast-lexer-gen.cc" yy579: yych = *++lexer->cursor; if (yych == 'm') goto yy702; @@ -3963,9 +3964,9 @@ yy583: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 350 "src/ast-lexer.cc" +#line 351 "src/ast-lexer.cc" { OPCODE(F64Sub); RETURN(BINARY); } -#line 3969 "src/prebuilt/ast-lexer-gen.cc" +#line 3970 "src/prebuilt/ast-lexer-gen.cc" yy585: yych = *++lexer->cursor; if (yych == 'n') goto yy707; @@ -3987,25 +3988,25 @@ yy589: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 317 "src/ast-lexer.cc" +#line 318 "src/ast-lexer.cc" { OPCODE(I32Add); RETURN(BINARY); } -#line 3993 "src/prebuilt/ast-lexer-gen.cc" +#line 3994 "src/prebuilt/ast-lexer-gen.cc" yy591: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 331 "src/ast-lexer.cc" +#line 332 "src/ast-lexer.cc" { OPCODE(I32And); RETURN(BINARY); } -#line 4001 "src/prebuilt/ast-lexer-gen.cc" +#line 4002 "src/prebuilt/ast-lexer-gen.cc" yy593: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 297 "src/ast-lexer.cc" +#line 298 "src/ast-lexer.cc" { OPCODE(I32Clz); RETURN(UNARY); } -#line 4009 "src/prebuilt/ast-lexer-gen.cc" +#line 4010 "src/prebuilt/ast-lexer-gen.cc" yy595: yych = *++lexer->cursor; if (yych == 's') goto yy711; @@ -4015,9 +4016,9 @@ yy596: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 299 "src/ast-lexer.cc" +#line 300 "src/ast-lexer.cc" { OPCODE(I32Ctz); RETURN(UNARY); } -#line 4021 "src/prebuilt/ast-lexer-gen.cc" +#line 4022 "src/prebuilt/ast-lexer-gen.cc" yy598: yych = *++lexer->cursor; if (yych == '_') goto yy712; @@ -4027,9 +4028,9 @@ yy599: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 295 "src/ast-lexer.cc" +#line 296 "src/ast-lexer.cc" { OPCODE(I32Eqz); RETURN(CONVERT); } -#line 4033 "src/prebuilt/ast-lexer-gen.cc" +#line 4034 "src/prebuilt/ast-lexer-gen.cc" yy601: yych = *++lexer->cursor; if (yych == 's') goto yy713; @@ -4059,9 +4060,9 @@ yy606: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 321 "src/ast-lexer.cc" +#line 322 "src/ast-lexer.cc" { OPCODE(I32Mul); RETURN(BINARY); } -#line 4065 "src/prebuilt/ast-lexer-gen.cc" +#line 4066 "src/prebuilt/ast-lexer-gen.cc" yy608: yych = *++lexer->cursor; if (yych == 'c') goto yy731; @@ -4084,9 +4085,9 @@ yy612: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 337 "src/ast-lexer.cc" +#line 338 "src/ast-lexer.cc" { OPCODE(I32Shl); RETURN(BINARY); } -#line 4090 "src/prebuilt/ast-lexer-gen.cc" +#line 4091 "src/prebuilt/ast-lexer-gen.cc" yy614: yych = *++lexer->cursor; if (yych == '_') goto yy738; @@ -4100,9 +4101,9 @@ yy616: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 319 "src/ast-lexer.cc" +#line 320 "src/ast-lexer.cc" { OPCODE(I32Sub); RETURN(BINARY); } -#line 4106 "src/prebuilt/ast-lexer-gen.cc" +#line 4107 "src/prebuilt/ast-lexer-gen.cc" yy618: yych = *++lexer->cursor; if (yych == 'n') goto yy740; @@ -4116,33 +4117,33 @@ yy620: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 335 "src/ast-lexer.cc" +#line 336 "src/ast-lexer.cc" { OPCODE(I32Xor); RETURN(BINARY); } -#line 4122 "src/prebuilt/ast-lexer-gen.cc" +#line 4123 "src/prebuilt/ast-lexer-gen.cc" yy622: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 318 "src/ast-lexer.cc" +#line 319 "src/ast-lexer.cc" { OPCODE(I64Add); RETURN(BINARY); } -#line 4130 "src/prebuilt/ast-lexer-gen.cc" +#line 4131 "src/prebuilt/ast-lexer-gen.cc" yy624: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 332 "src/ast-lexer.cc" +#line 333 "src/ast-lexer.cc" { OPCODE(I64And); RETURN(BINARY); } -#line 4138 "src/prebuilt/ast-lexer-gen.cc" +#line 4139 "src/prebuilt/ast-lexer-gen.cc" yy626: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 298 "src/ast-lexer.cc" +#line 299 "src/ast-lexer.cc" { OPCODE(I64Clz); RETURN(UNARY); } -#line 4146 "src/prebuilt/ast-lexer-gen.cc" +#line 4147 "src/prebuilt/ast-lexer-gen.cc" yy628: yych = *++lexer->cursor; if (yych == 's') goto yy742; @@ -4152,9 +4153,9 @@ yy629: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 300 "src/ast-lexer.cc" +#line 301 "src/ast-lexer.cc" { OPCODE(I64Ctz); RETURN(UNARY); } -#line 4158 "src/prebuilt/ast-lexer-gen.cc" +#line 4159 "src/prebuilt/ast-lexer-gen.cc" yy631: yych = *++lexer->cursor; if (yych == '_') goto yy743; @@ -4164,9 +4165,9 @@ yy632: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 296 "src/ast-lexer.cc" +#line 297 "src/ast-lexer.cc" { OPCODE(I64Eqz); RETURN(CONVERT); } -#line 4170 "src/prebuilt/ast-lexer-gen.cc" +#line 4171 "src/prebuilt/ast-lexer-gen.cc" yy634: yych = *++lexer->cursor; if (yych == 'e') goto yy744; @@ -4200,9 +4201,9 @@ yy640: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 322 "src/ast-lexer.cc" +#line 323 "src/ast-lexer.cc" { OPCODE(I64Mul); RETURN(BINARY); } -#line 4206 "src/prebuilt/ast-lexer-gen.cc" +#line 4207 "src/prebuilt/ast-lexer-gen.cc" yy642: yych = *++lexer->cursor; if (yych == 'c') goto yy763; @@ -4225,9 +4226,9 @@ yy646: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 338 "src/ast-lexer.cc" +#line 339 "src/ast-lexer.cc" { OPCODE(I64Shl); RETURN(BINARY); } -#line 4231 "src/prebuilt/ast-lexer-gen.cc" +#line 4232 "src/prebuilt/ast-lexer-gen.cc" yy648: yych = *++lexer->cursor; if (yych == '_') goto yy770; @@ -4241,9 +4242,9 @@ yy650: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 320 "src/ast-lexer.cc" +#line 321 "src/ast-lexer.cc" { OPCODE(I64Sub); RETURN(BINARY); } -#line 4247 "src/prebuilt/ast-lexer-gen.cc" +#line 4248 "src/prebuilt/ast-lexer-gen.cc" yy652: yych = *++lexer->cursor; if (yych == 'n') goto yy772; @@ -4253,17 +4254,17 @@ yy653: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 336 "src/ast-lexer.cc" +#line 337 "src/ast-lexer.cc" { OPCODE(I64Xor); RETURN(BINARY); } -#line 4259 "src/prebuilt/ast-lexer-gen.cc" +#line 4260 "src/prebuilt/ast-lexer-gen.cc" yy655: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 248 "src/ast-lexer.cc" +#line 249 "src/ast-lexer.cc" { RETURN(IF); } -#line 4267 "src/prebuilt/ast-lexer-gen.cc" +#line 4268 "src/prebuilt/ast-lexer-gen.cc" yy657: yych = *++lexer->cursor; if (yych == 'y') goto yy773; @@ -4381,9 +4382,9 @@ yy673: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 254 "src/ast-lexer.cc" +#line 255 "src/ast-lexer.cc" { RETURN(BR_TABLE); } -#line 4387 "src/prebuilt/ast-lexer-gen.cc" +#line 4388 "src/prebuilt/ast-lexer-gen.cc" yy675: yych = *++lexer->cursor; if (yych == 'o') goto yy792; @@ -4401,9 +4402,9 @@ yy678: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 309 "src/ast-lexer.cc" +#line 310 "src/ast-lexer.cc" { OPCODE(F32Ceil); RETURN(UNARY); } -#line 4407 "src/prebuilt/ast-lexer-gen.cc" +#line 4408 "src/prebuilt/ast-lexer-gen.cc" yy680: yych = *++lexer->cursor; if (yych == 't') goto yy795; @@ -4429,9 +4430,9 @@ yy685: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 268 "src/ast-lexer.cc" +#line 269 "src/ast-lexer.cc" { OPCODE(F32Load); RETURN(LOAD); } -#line 4435 "src/prebuilt/ast-lexer-gen.cc" +#line 4436 "src/prebuilt/ast-lexer-gen.cc" yy687: yych = *++lexer->cursor; if (yych == 'e') goto yy802; @@ -4445,9 +4446,9 @@ yy689: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 307 "src/ast-lexer.cc" +#line 308 "src/ast-lexer.cc" { OPCODE(F32Sqrt); RETURN(UNARY); } -#line 4451 "src/prebuilt/ast-lexer-gen.cc" +#line 4452 "src/prebuilt/ast-lexer-gen.cc" yy691: yych = *++lexer->cursor; if (yych == 'e') goto yy804; @@ -4461,9 +4462,9 @@ yy693: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 310 "src/ast-lexer.cc" +#line 311 "src/ast-lexer.cc" { OPCODE(F64Ceil); RETURN(UNARY); } -#line 4467 "src/prebuilt/ast-lexer-gen.cc" +#line 4468 "src/prebuilt/ast-lexer-gen.cc" yy695: yych = *++lexer->cursor; if (yych == 't') goto yy808; @@ -4485,9 +4486,9 @@ yy699: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 269 "src/ast-lexer.cc" +#line 270 "src/ast-lexer.cc" { OPCODE(F64Load); RETURN(LOAD); } -#line 4491 "src/prebuilt/ast-lexer-gen.cc" +#line 4492 "src/prebuilt/ast-lexer-gen.cc" yy701: yych = *++lexer->cursor; if (yych == 'e') goto yy814; @@ -4505,9 +4506,9 @@ yy704: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 308 "src/ast-lexer.cc" +#line 309 "src/ast-lexer.cc" { OPCODE(F64Sqrt); RETURN(UNARY); } -#line 4511 "src/prebuilt/ast-lexer-gen.cc" +#line 4512 "src/prebuilt/ast-lexer-gen.cc" yy706: yych = *++lexer->cursor; if (yych == 'e') goto yy817; @@ -4542,49 +4543,49 @@ yy713: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 377 "src/ast-lexer.cc" +#line 378 "src/ast-lexer.cc" { OPCODE(I32GeS); RETURN(COMPARE); } -#line 4548 "src/prebuilt/ast-lexer-gen.cc" +#line 4549 "src/prebuilt/ast-lexer-gen.cc" yy715: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 379 "src/ast-lexer.cc" +#line 380 "src/ast-lexer.cc" { OPCODE(I32GeU); RETURN(COMPARE); } -#line 4556 "src/prebuilt/ast-lexer-gen.cc" +#line 4557 "src/prebuilt/ast-lexer-gen.cc" yy717: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 373 "src/ast-lexer.cc" +#line 374 "src/ast-lexer.cc" { OPCODE(I32GtS); RETURN(COMPARE); } -#line 4564 "src/prebuilt/ast-lexer-gen.cc" +#line 4565 "src/prebuilt/ast-lexer-gen.cc" yy719: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 375 "src/ast-lexer.cc" +#line 376 "src/ast-lexer.cc" { OPCODE(I32GtU); RETURN(COMPARE); } -#line 4572 "src/prebuilt/ast-lexer-gen.cc" +#line 4573 "src/prebuilt/ast-lexer-gen.cc" yy721: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 369 "src/ast-lexer.cc" +#line 370 "src/ast-lexer.cc" { OPCODE(I32LeS); RETURN(COMPARE); } -#line 4580 "src/prebuilt/ast-lexer-gen.cc" +#line 4581 "src/prebuilt/ast-lexer-gen.cc" yy723: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 371 "src/ast-lexer.cc" +#line 372 "src/ast-lexer.cc" { OPCODE(I32LeU); RETURN(COMPARE); } -#line 4588 "src/prebuilt/ast-lexer-gen.cc" +#line 4589 "src/prebuilt/ast-lexer-gen.cc" yy725: ++lexer->cursor; if ((yych = *lexer->cursor) <= '8') { @@ -4620,25 +4621,25 @@ yy725: } } yy726: -#line 266 "src/ast-lexer.cc" +#line 267 "src/ast-lexer.cc" { OPCODE(I32Load); RETURN(LOAD); } -#line 4626 "src/prebuilt/ast-lexer-gen.cc" +#line 4627 "src/prebuilt/ast-lexer-gen.cc" yy727: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 365 "src/ast-lexer.cc" +#line 366 "src/ast-lexer.cc" { OPCODE(I32LtS); RETURN(COMPARE); } -#line 4634 "src/prebuilt/ast-lexer-gen.cc" +#line 4635 "src/prebuilt/ast-lexer-gen.cc" yy729: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 367 "src/ast-lexer.cc" +#line 368 "src/ast-lexer.cc" { OPCODE(I32LtU); RETURN(COMPARE); } -#line 4642 "src/prebuilt/ast-lexer-gen.cc" +#line 4643 "src/prebuilt/ast-lexer-gen.cc" yy731: yych = *++lexer->cursor; if (yych == 'n') goto yy833; @@ -4657,17 +4658,17 @@ yy734: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 343 "src/ast-lexer.cc" +#line 344 "src/ast-lexer.cc" { OPCODE(I32Rotl); RETURN(BINARY); } -#line 4663 "src/prebuilt/ast-lexer-gen.cc" +#line 4664 "src/prebuilt/ast-lexer-gen.cc" yy736: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 345 "src/ast-lexer.cc" +#line 346 "src/ast-lexer.cc" { OPCODE(I32Rotr); RETURN(BINARY); } -#line 4671 "src/prebuilt/ast-lexer-gen.cc" +#line 4672 "src/prebuilt/ast-lexer-gen.cc" yy738: yych = *++lexer->cursor; if (yych == 's') goto yy839; @@ -4703,49 +4704,49 @@ yy745: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 378 "src/ast-lexer.cc" +#line 379 "src/ast-lexer.cc" { OPCODE(I64GeS); RETURN(COMPARE); } -#line 4709 "src/prebuilt/ast-lexer-gen.cc" +#line 4710 "src/prebuilt/ast-lexer-gen.cc" yy747: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 380 "src/ast-lexer.cc" +#line 381 "src/ast-lexer.cc" { OPCODE(I64GeU); RETURN(COMPARE); } -#line 4717 "src/prebuilt/ast-lexer-gen.cc" +#line 4718 "src/prebuilt/ast-lexer-gen.cc" yy749: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 374 "src/ast-lexer.cc" +#line 375 "src/ast-lexer.cc" { OPCODE(I64GtS); RETURN(COMPARE); } -#line 4725 "src/prebuilt/ast-lexer-gen.cc" +#line 4726 "src/prebuilt/ast-lexer-gen.cc" yy751: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 376 "src/ast-lexer.cc" +#line 377 "src/ast-lexer.cc" { OPCODE(I64GtU); RETURN(COMPARE); } -#line 4733 "src/prebuilt/ast-lexer-gen.cc" +#line 4734 "src/prebuilt/ast-lexer-gen.cc" yy753: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 370 "src/ast-lexer.cc" +#line 371 "src/ast-lexer.cc" { OPCODE(I64LeS); RETURN(COMPARE); } -#line 4741 "src/prebuilt/ast-lexer-gen.cc" +#line 4742 "src/prebuilt/ast-lexer-gen.cc" yy755: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 372 "src/ast-lexer.cc" +#line 373 "src/ast-lexer.cc" { OPCODE(I64LeU); RETURN(COMPARE); } -#line 4749 "src/prebuilt/ast-lexer-gen.cc" +#line 4750 "src/prebuilt/ast-lexer-gen.cc" yy757: ++lexer->cursor; if ((yych = *lexer->cursor) <= '7') { @@ -4785,25 +4786,25 @@ yy757: } } yy758: -#line 267 "src/ast-lexer.cc" +#line 268 "src/ast-lexer.cc" { OPCODE(I64Load); RETURN(LOAD); } -#line 4791 "src/prebuilt/ast-lexer-gen.cc" +#line 4792 "src/prebuilt/ast-lexer-gen.cc" yy759: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 366 "src/ast-lexer.cc" +#line 367 "src/ast-lexer.cc" { OPCODE(I64LtS); RETURN(COMPARE); } -#line 4799 "src/prebuilt/ast-lexer-gen.cc" +#line 4800 "src/prebuilt/ast-lexer-gen.cc" yy761: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 368 "src/ast-lexer.cc" +#line 369 "src/ast-lexer.cc" { OPCODE(I64LtU); RETURN(COMPARE); } -#line 4807 "src/prebuilt/ast-lexer-gen.cc" +#line 4808 "src/prebuilt/ast-lexer-gen.cc" yy763: yych = *++lexer->cursor; if (yych == 'n') goto yy857; @@ -4822,17 +4823,17 @@ yy766: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 344 "src/ast-lexer.cc" +#line 345 "src/ast-lexer.cc" { OPCODE(I64Rotl); RETURN(BINARY); } -#line 4828 "src/prebuilt/ast-lexer-gen.cc" +#line 4829 "src/prebuilt/ast-lexer-gen.cc" yy768: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 346 "src/ast-lexer.cc" +#line 347 "src/ast-lexer.cc" { OPCODE(I64Rotr); RETURN(BINARY); } -#line 4836 "src/prebuilt/ast-lexer-gen.cc" +#line 4837 "src/prebuilt/ast-lexer-gen.cc" yy770: yych = *++lexer->cursor; if (yych == 's') goto yy863; @@ -4888,9 +4889,9 @@ yy774: } } yy775: -#line 289 "src/ast-lexer.cc" +#line 290 "src/ast-lexer.cc" { TEXT_AT(7); RETURN(OFFSET_EQ_NAT); } -#line 4894 "src/prebuilt/ast-lexer-gen.cc" +#line 4895 "src/prebuilt/ast-lexer-gen.cc" yy776: ++lexer->cursor; if (lexer->limit <= lexer->cursor) FILL(1); @@ -4939,9 +4940,9 @@ yy778: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 441 "src/ast-lexer.cc" +#line 438 "src/ast-lexer.cc" { RETURN(REGISTER); } -#line 4945 "src/prebuilt/ast-lexer-gen.cc" +#line 4946 "src/prebuilt/ast-lexer-gen.cc" yy780: yych = *++lexer->cursor; if (yych == 'a') goto yy871; @@ -5045,9 +5046,9 @@ yy795: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 293 "src/ast-lexer.cc" +#line 294 "src/ast-lexer.cc" { TYPE(F32); RETURN(CONST); } -#line 5051 "src/prebuilt/ast-lexer-gen.cc" +#line 5052 "src/prebuilt/ast-lexer-gen.cc" yy797: yych = *++lexer->cursor; if (yych == 'r') goto yy886; @@ -5065,9 +5066,9 @@ yy800: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 311 "src/ast-lexer.cc" +#line 312 "src/ast-lexer.cc" { OPCODE(F32Floor); RETURN(UNARY); } -#line 5071 "src/prebuilt/ast-lexer-gen.cc" +#line 5072 "src/prebuilt/ast-lexer-gen.cc" yy802: yych = *++lexer->cursor; if (yych == 's') goto yy889; @@ -5081,25 +5082,25 @@ yy804: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 272 "src/ast-lexer.cc" +#line 273 "src/ast-lexer.cc" { OPCODE(F32Store); RETURN(STORE); } -#line 5087 "src/prebuilt/ast-lexer-gen.cc" +#line 5088 "src/prebuilt/ast-lexer-gen.cc" yy806: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 313 "src/ast-lexer.cc" +#line 314 "src/ast-lexer.cc" { OPCODE(F32Trunc); RETURN(UNARY); } -#line 5095 "src/prebuilt/ast-lexer-gen.cc" +#line 5096 "src/prebuilt/ast-lexer-gen.cc" yy808: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 294 "src/ast-lexer.cc" +#line 295 "src/ast-lexer.cc" { TYPE(F64); RETURN(CONST); } -#line 5103 "src/prebuilt/ast-lexer-gen.cc" +#line 5104 "src/prebuilt/ast-lexer-gen.cc" yy810: yych = *++lexer->cursor; if (yych == 'r') goto yy891; @@ -5113,9 +5114,9 @@ yy812: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 312 "src/ast-lexer.cc" +#line 313 "src/ast-lexer.cc" { OPCODE(F64Floor); RETURN(UNARY); } -#line 5119 "src/prebuilt/ast-lexer-gen.cc" +#line 5120 "src/prebuilt/ast-lexer-gen.cc" yy814: yych = *++lexer->cursor; if (yych == 's') goto yy893; @@ -5133,17 +5134,17 @@ yy817: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 273 "src/ast-lexer.cc" +#line 274 "src/ast-lexer.cc" { OPCODE(F64Store); RETURN(STORE); } -#line 5139 "src/prebuilt/ast-lexer-gen.cc" +#line 5140 "src/prebuilt/ast-lexer-gen.cc" yy819: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 314 "src/ast-lexer.cc" +#line 315 "src/ast-lexer.cc" { OPCODE(F64Trunc); RETURN(UNARY); } -#line 5147 "src/prebuilt/ast-lexer-gen.cc" +#line 5148 "src/prebuilt/ast-lexer-gen.cc" yy821: yych = *++lexer->cursor; if (yych == 'l') goto yy896; @@ -5153,9 +5154,9 @@ yy822: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 261 "src/ast-lexer.cc" +#line 262 "src/ast-lexer.cc" { RETURN(GET_LOCAL); } -#line 5159 "src/prebuilt/ast-lexer-gen.cc" +#line 5160 "src/prebuilt/ast-lexer-gen.cc" yy824: yych = *++lexer->cursor; if (yych == 'r') goto yy898; @@ -5165,25 +5166,25 @@ yy825: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 291 "src/ast-lexer.cc" +#line 292 "src/ast-lexer.cc" { TYPE(I32); RETURN(CONST); } -#line 5171 "src/prebuilt/ast-lexer-gen.cc" +#line 5172 "src/prebuilt/ast-lexer-gen.cc" yy827: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 323 "src/ast-lexer.cc" +#line 324 "src/ast-lexer.cc" { OPCODE(I32DivS); RETURN(BINARY); } -#line 5179 "src/prebuilt/ast-lexer-gen.cc" +#line 5180 "src/prebuilt/ast-lexer-gen.cc" yy829: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 325 "src/ast-lexer.cc" +#line 326 "src/ast-lexer.cc" { OPCODE(I32DivU); RETURN(BINARY); } -#line 5187 "src/prebuilt/ast-lexer-gen.cc" +#line 5188 "src/prebuilt/ast-lexer-gen.cc" yy831: yych = *++lexer->cursor; if (yych == '6') goto yy899; @@ -5205,33 +5206,33 @@ yy835: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 327 "src/ast-lexer.cc" +#line 328 "src/ast-lexer.cc" { OPCODE(I32RemS); RETURN(BINARY); } -#line 5211 "src/prebuilt/ast-lexer-gen.cc" +#line 5212 "src/prebuilt/ast-lexer-gen.cc" yy837: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 329 "src/ast-lexer.cc" +#line 330 "src/ast-lexer.cc" { OPCODE(I32RemU); RETURN(BINARY); } -#line 5219 "src/prebuilt/ast-lexer-gen.cc" +#line 5220 "src/prebuilt/ast-lexer-gen.cc" yy839: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 339 "src/ast-lexer.cc" +#line 340 "src/ast-lexer.cc" { OPCODE(I32ShrS); RETURN(BINARY); } -#line 5227 "src/prebuilt/ast-lexer-gen.cc" +#line 5228 "src/prebuilt/ast-lexer-gen.cc" yy841: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 341 "src/ast-lexer.cc" +#line 342 "src/ast-lexer.cc" { OPCODE(I32ShrU); RETURN(BINARY); } -#line 5235 "src/prebuilt/ast-lexer-gen.cc" +#line 5236 "src/prebuilt/ast-lexer-gen.cc" yy843: ++lexer->cursor; if ((yych = *lexer->cursor) <= '8') { @@ -5267,9 +5268,9 @@ yy843: } } yy844: -#line 270 "src/ast-lexer.cc" +#line 271 "src/ast-lexer.cc" { OPCODE(I32Store); RETURN(STORE); } -#line 5273 "src/prebuilt/ast-lexer-gen.cc" +#line 5274 "src/prebuilt/ast-lexer-gen.cc" yy845: yych = *++lexer->cursor; if (yych == '_') goto yy907; @@ -5283,25 +5284,25 @@ yy847: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 292 "src/ast-lexer.cc" +#line 293 "src/ast-lexer.cc" { TYPE(I64); RETURN(CONST); } -#line 5289 "src/prebuilt/ast-lexer-gen.cc" +#line 5290 "src/prebuilt/ast-lexer-gen.cc" yy849: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 324 "src/ast-lexer.cc" +#line 325 "src/ast-lexer.cc" { OPCODE(I64DivS); RETURN(BINARY); } -#line 5297 "src/prebuilt/ast-lexer-gen.cc" +#line 5298 "src/prebuilt/ast-lexer-gen.cc" yy851: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 326 "src/ast-lexer.cc" +#line 327 "src/ast-lexer.cc" { OPCODE(I64DivU); RETURN(BINARY); } -#line 5305 "src/prebuilt/ast-lexer-gen.cc" +#line 5306 "src/prebuilt/ast-lexer-gen.cc" yy853: yych = *++lexer->cursor; if (yych == 'd') goto yy909; @@ -5331,33 +5332,33 @@ yy859: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 328 "src/ast-lexer.cc" +#line 329 "src/ast-lexer.cc" { OPCODE(I64RemS); RETURN(BINARY); } -#line 5337 "src/prebuilt/ast-lexer-gen.cc" +#line 5338 "src/prebuilt/ast-lexer-gen.cc" yy861: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 330 "src/ast-lexer.cc" +#line 331 "src/ast-lexer.cc" { OPCODE(I64RemU); RETURN(BINARY); } -#line 5345 "src/prebuilt/ast-lexer-gen.cc" +#line 5346 "src/prebuilt/ast-lexer-gen.cc" yy863: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 340 "src/ast-lexer.cc" +#line 341 "src/ast-lexer.cc" { OPCODE(I64ShrS); RETURN(BINARY); } -#line 5353 "src/prebuilt/ast-lexer-gen.cc" +#line 5354 "src/prebuilt/ast-lexer-gen.cc" yy865: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 342 "src/ast-lexer.cc" +#line 343 "src/ast-lexer.cc" { OPCODE(I64ShrU); RETURN(BINARY); } -#line 5361 "src/prebuilt/ast-lexer-gen.cc" +#line 5362 "src/prebuilt/ast-lexer-gen.cc" yy867: ++lexer->cursor; if ((yych = *lexer->cursor) <= '7') { @@ -5397,9 +5398,9 @@ yy867: } } yy868: -#line 271 "src/ast-lexer.cc" +#line 272 "src/ast-lexer.cc" { OPCODE(I64Store); RETURN(STORE); } -#line 5403 "src/prebuilt/ast-lexer-gen.cc" +#line 5404 "src/prebuilt/ast-lexer-gen.cc" yy869: yych = *++lexer->cursor; if (yych == '_') goto yy920; @@ -5425,17 +5426,17 @@ yy872: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 262 "src/ast-lexer.cc" +#line 263 "src/ast-lexer.cc" { RETURN(SET_LOCAL); } -#line 5431 "src/prebuilt/ast-lexer-gen.cc" +#line 5432 "src/prebuilt/ast-lexer-gen.cc" yy874: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 263 "src/ast-lexer.cc" +#line 264 "src/ast-lexer.cc" { RETURN(TEE_LOCAL); } -#line 5439 "src/prebuilt/ast-lexer-gen.cc" +#line 5440 "src/prebuilt/ast-lexer-gen.cc" yy876: yych = *++lexer->cursor; if (yych == 'l') goto yy925; @@ -5521,9 +5522,9 @@ yy896: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 264 "src/ast-lexer.cc" +#line 265 "src/ast-lexer.cc" { RETURN(GET_GLOBAL); } -#line 5527 "src/prebuilt/ast-lexer-gen.cc" +#line 5528 "src/prebuilt/ast-lexer-gen.cc" yy898: yych = *++lexer->cursor; if (yych == 'y') goto yy949; @@ -5542,9 +5543,9 @@ yy901: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 301 "src/ast-lexer.cc" +#line 302 "src/ast-lexer.cc" { OPCODE(I32Popcnt); RETURN(UNARY); } -#line 5548 "src/prebuilt/ast-lexer-gen.cc" +#line 5549 "src/prebuilt/ast-lexer-gen.cc" yy903: yych = *++lexer->cursor; if (yych == 'r') goto yy956; @@ -5558,9 +5559,9 @@ yy905: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 284 "src/ast-lexer.cc" +#line 285 "src/ast-lexer.cc" { OPCODE(I32Store8); RETURN(STORE); } -#line 5564 "src/prebuilt/ast-lexer-gen.cc" +#line 5565 "src/prebuilt/ast-lexer-gen.cc" yy907: yych = *++lexer->cursor; if (yych == 's') goto yy959; @@ -5592,9 +5593,9 @@ yy913: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 302 "src/ast-lexer.cc" +#line 303 "src/ast-lexer.cc" { OPCODE(I64Popcnt); RETURN(UNARY); } -#line 5598 "src/prebuilt/ast-lexer-gen.cc" +#line 5599 "src/prebuilt/ast-lexer-gen.cc" yy915: yych = *++lexer->cursor; if (yych == 'r') goto yy969; @@ -5612,9 +5613,9 @@ yy918: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 285 "src/ast-lexer.cc" +#line 286 "src/ast-lexer.cc" { OPCODE(I64Store8); RETURN(STORE); } -#line 5618 "src/prebuilt/ast-lexer-gen.cc" +#line 5619 "src/prebuilt/ast-lexer-gen.cc" yy920: yych = *++lexer->cursor; if (yych == 's') goto yy974; @@ -5671,9 +5672,9 @@ yy923: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 265 "src/ast-lexer.cc" +#line 266 "src/ast-lexer.cc" { RETURN(SET_GLOBAL); } -#line 5677 "src/prebuilt/ast-lexer-gen.cc" +#line 5678 "src/prebuilt/ast-lexer-gen.cc" yy925: yych = *++lexer->cursor; if (yych == 'e') goto yy976; @@ -5701,7 +5702,7 @@ yy930: } #line 449 "src/ast-lexer.cc" { RETURN(ASSERT_TRAP); } -#line 5705 "src/prebuilt/ast-lexer-gen.cc" +#line 5706 "src/prebuilt/ast-lexer-gen.cc" yy932: yych = *++lexer->cursor; if (yych == 'n') goto yy982; @@ -5711,9 +5712,9 @@ yy933: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 256 "src/ast-lexer.cc" +#line 257 "src/ast-lexer.cc" { RETURN(CALL_IMPORT); } -#line 5717 "src/prebuilt/ast-lexer-gen.cc" +#line 5718 "src/prebuilt/ast-lexer-gen.cc" yy935: yych = *++lexer->cursor; if (yych == 'c') goto yy983; @@ -5739,9 +5740,9 @@ yy940: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 315 "src/ast-lexer.cc" +#line 316 "src/ast-lexer.cc" { OPCODE(F32Nearest); RETURN(UNARY); } -#line 5745 "src/prebuilt/ast-lexer-gen.cc" +#line 5746 "src/prebuilt/ast-lexer-gen.cc" yy942: yych = *++lexer->cursor; if (yych == 'p') goto yy989; @@ -5759,9 +5760,9 @@ yy945: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 316 "src/ast-lexer.cc" +#line 317 "src/ast-lexer.cc" { OPCODE(F64Nearest); RETURN(UNARY); } -#line 5765 "src/prebuilt/ast-lexer-gen.cc" +#line 5766 "src/prebuilt/ast-lexer-gen.cc" yy947: yych = *++lexer->cursor; if (yych == '/') goto yy993; @@ -5775,9 +5776,9 @@ yy949: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 425 "src/ast-lexer.cc" +#line 422 "src/ast-lexer.cc" { RETURN(GROW_MEMORY); } -#line 5781 "src/prebuilt/ast-lexer-gen.cc" +#line 5782 "src/prebuilt/ast-lexer-gen.cc" yy951: yych = *++lexer->cursor; if (yych == 's') goto yy995; @@ -5788,17 +5789,17 @@ yy952: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 274 "src/ast-lexer.cc" +#line 275 "src/ast-lexer.cc" { OPCODE(I32Load8S); RETURN(LOAD); } -#line 5794 "src/prebuilt/ast-lexer-gen.cc" +#line 5795 "src/prebuilt/ast-lexer-gen.cc" yy954: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 276 "src/ast-lexer.cc" +#line 277 "src/ast-lexer.cc" { OPCODE(I32Load8U); RETURN(LOAD); } -#line 5802 "src/prebuilt/ast-lexer-gen.cc" +#line 5803 "src/prebuilt/ast-lexer-gen.cc" yy956: yych = *++lexer->cursor; if (yych == 'p') goto yy999; @@ -5808,9 +5809,9 @@ yy957: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 286 "src/ast-lexer.cc" +#line 287 "src/ast-lexer.cc" { OPCODE(I32Store16); RETURN(STORE); } -#line 5814 "src/prebuilt/ast-lexer-gen.cc" +#line 5815 "src/prebuilt/ast-lexer-gen.cc" yy959: yych = *++lexer->cursor; if (yych == '/') goto yy1000; @@ -5843,17 +5844,17 @@ yy965: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 275 "src/ast-lexer.cc" +#line 276 "src/ast-lexer.cc" { OPCODE(I64Load8S); RETURN(LOAD); } -#line 5849 "src/prebuilt/ast-lexer-gen.cc" +#line 5850 "src/prebuilt/ast-lexer-gen.cc" yy967: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 277 "src/ast-lexer.cc" +#line 278 "src/ast-lexer.cc" { OPCODE(I64Load8U); RETURN(LOAD); } -#line 5857 "src/prebuilt/ast-lexer-gen.cc" +#line 5858 "src/prebuilt/ast-lexer-gen.cc" yy969: yych = *++lexer->cursor; if (yych == 'p') goto yy1014; @@ -5863,17 +5864,17 @@ yy970: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 287 "src/ast-lexer.cc" +#line 288 "src/ast-lexer.cc" { OPCODE(I64Store16); RETURN(STORE); } -#line 5869 "src/prebuilt/ast-lexer-gen.cc" +#line 5870 "src/prebuilt/ast-lexer-gen.cc" yy972: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 288 "src/ast-lexer.cc" +#line 289 "src/ast-lexer.cc" { OPCODE(I64Store32); RETURN(STORE); } -#line 5877 "src/prebuilt/ast-lexer-gen.cc" +#line 5878 "src/prebuilt/ast-lexer-gen.cc" yy974: yych = *++lexer->cursor; if (yych == '/') goto yy1015; @@ -5887,9 +5888,9 @@ yy976: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 423 "src/ast-lexer.cc" +#line 420 "src/ast-lexer.cc" { RETURN(UNREACHABLE); } -#line 5893 "src/prebuilt/ast-lexer-gen.cc" +#line 5894 "src/prebuilt/ast-lexer-gen.cc" yy978: yych = *++lexer->cursor; if (yych == 's') goto yy1017; @@ -5928,9 +5929,9 @@ yy986: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 359 "src/ast-lexer.cc" +#line 360 "src/ast-lexer.cc" { OPCODE(F32Copysign); RETURN(BINARY); } -#line 5934 "src/prebuilt/ast-lexer-gen.cc" +#line 5935 "src/prebuilt/ast-lexer-gen.cc" yy988: yych = *++lexer->cursor; if (yych == '6') goto yy1028; @@ -5949,9 +5950,9 @@ yy991: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 360 "src/ast-lexer.cc" +#line 361 "src/ast-lexer.cc" { OPCODE(F64Copysign); RETURN(BINARY); } -#line 5955 "src/prebuilt/ast-lexer-gen.cc" +#line 5956 "src/prebuilt/ast-lexer-gen.cc" yy993: yych = *++lexer->cursor; if (yych == 'f') goto yy1032; @@ -5965,17 +5966,17 @@ yy995: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 278 "src/ast-lexer.cc" +#line 279 "src/ast-lexer.cc" { OPCODE(I32Load16S); RETURN(LOAD); } -#line 5971 "src/prebuilt/ast-lexer-gen.cc" +#line 5972 "src/prebuilt/ast-lexer-gen.cc" yy997: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 280 "src/ast-lexer.cc" +#line 281 "src/ast-lexer.cc" { OPCODE(I32Load16U); RETURN(LOAD); } -#line 5979 "src/prebuilt/ast-lexer-gen.cc" +#line 5980 "src/prebuilt/ast-lexer-gen.cc" yy999: yych = *++lexer->cursor; if (yych == 'r') goto yy1034; @@ -5993,9 +5994,9 @@ yy1002: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 395 "src/ast-lexer.cc" +#line 396 "src/ast-lexer.cc" { OPCODE(I32WrapI64); RETURN(CONVERT); } -#line 5999 "src/prebuilt/ast-lexer-gen.cc" +#line 6000 "src/prebuilt/ast-lexer-gen.cc" yy1004: yych = *++lexer->cursor; if (yych == '/') goto yy1037; @@ -6009,33 +6010,33 @@ yy1006: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 279 "src/ast-lexer.cc" +#line 280 "src/ast-lexer.cc" { OPCODE(I64Load16S); RETURN(LOAD); } -#line 6015 "src/prebuilt/ast-lexer-gen.cc" +#line 6016 "src/prebuilt/ast-lexer-gen.cc" yy1008: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 281 "src/ast-lexer.cc" +#line 282 "src/ast-lexer.cc" { OPCODE(I64Load16U); RETURN(LOAD); } -#line 6023 "src/prebuilt/ast-lexer-gen.cc" +#line 6024 "src/prebuilt/ast-lexer-gen.cc" yy1010: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 282 "src/ast-lexer.cc" +#line 283 "src/ast-lexer.cc" { OPCODE(I64Load32S); RETURN(LOAD); } -#line 6031 "src/prebuilt/ast-lexer-gen.cc" +#line 6032 "src/prebuilt/ast-lexer-gen.cc" yy1012: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 283 "src/ast-lexer.cc" +#line 284 "src/ast-lexer.cc" { OPCODE(I64Load32U); RETURN(LOAD); } -#line 6039 "src/prebuilt/ast-lexer-gen.cc" +#line 6040 "src/prebuilt/ast-lexer-gen.cc" yy1014: yych = *++lexer->cursor; if (yych == 'r') goto yy1039; @@ -6095,9 +6096,9 @@ yy1020: } } yy1021: -#line 447 "src/ast-lexer.cc" +#line 444 "src/ast-lexer.cc" { RETURN(ASSERT_RETURN); } -#line 6101 "src/prebuilt/ast-lexer-gen.cc" +#line 6102 "src/prebuilt/ast-lexer-gen.cc" yy1022: yych = *++lexer->cursor; if (yych == 'a') goto yy1047; @@ -6107,9 +6108,9 @@ yy1023: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 257 "src/ast-lexer.cc" +#line 258 "src/ast-lexer.cc" { RETURN(CALL_INDIRECT); } -#line 6113 "src/prebuilt/ast-lexer-gen.cc" +#line 6114 "src/prebuilt/ast-lexer-gen.cc" yy1025: yych = *++lexer->cursor; if (yych == 'y') goto yy1048; @@ -6191,133 +6192,133 @@ yy1043: if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 445 "src/ast-lexer.cc" +#line 442 "src/ast-lexer.cc" { RETURN(ASSERT_INVALID); } -#line 6197 "src/prebuilt/ast-lexer-gen.cc" +#line 6198 "src/prebuilt/ast-lexer-gen.cc" yy1045: yych = *++lexer->cursor; if (yych == 'e') goto yy1072; goto yy50; yy1046: yych = *++lexer->cursor; - if (yych == 'n') goto yy1073; + if (yych == 'a') goto yy1073; + if (yych == 'c') goto yy1074; goto yy50; yy1047: yych = *++lexer->cursor; - if (yych == 'b') goto yy1074; + if (yych == 'b') goto yy1075; goto yy50; yy1048: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 424 "src/ast-lexer.cc" +#line 421 "src/ast-lexer.cc" { RETURN(CURRENT_MEMORY); } -#line 6217 "src/prebuilt/ast-lexer-gen.cc" +#line 6219 "src/prebuilt/ast-lexer-gen.cc" yy1050: yych = *++lexer->cursor; - if (yych == 'i') goto yy1075; + if (yych == 'i') goto yy1076; goto yy50; yy1051: yych = *++lexer->cursor; - if (yych == 'i') goto yy1076; + if (yych == 'i') goto yy1077; goto yy50; yy1052: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 413 "src/ast-lexer.cc" +#line 414 "src/ast-lexer.cc" { OPCODE(F32DemoteF64); RETURN(CONVERT); } -#line 6233 "src/prebuilt/ast-lexer-gen.cc" +#line 6235 "src/prebuilt/ast-lexer-gen.cc" yy1054: yych = *++lexer->cursor; - if (yych == 't') goto yy1077; + if (yych == 't') goto yy1078; goto yy50; yy1055: yych = *++lexer->cursor; - if (yych == 'i') goto yy1078; + if (yych == 'i') goto yy1079; goto yy50; yy1056: yych = *++lexer->cursor; - if (yych == 'i') goto yy1079; + if (yych == 'i') goto yy1080; goto yy50; yy1057: yych = *++lexer->cursor; - if (yych == '2') goto yy1080; + if (yych == '2') goto yy1081; goto yy50; yy1058: yych = *++lexer->cursor; - if (yych == 't') goto yy1082; + if (yych == 't') goto yy1083; goto yy50; yy1059: yych = *++lexer->cursor; - if (yych == 't') goto yy1083; + if (yych == 't') goto yy1084; goto yy50; yy1060: yych = *++lexer->cursor; - if (yych == '2') goto yy1084; + if (yych == '2') goto yy1085; goto yy50; yy1061: yych = *++lexer->cursor; - if (yych == '4') goto yy1086; + if (yych == '4') goto yy1087; goto yy50; yy1062: yych = *++lexer->cursor; - if (yych == '2') goto yy1088; + if (yych == '2') goto yy1089; goto yy50; yy1063: yych = *++lexer->cursor; - if (yych == '4') goto yy1090; + if (yych == '4') goto yy1091; goto yy50; yy1064: yych = *++lexer->cursor; - if (yych == '3') goto yy1092; + if (yych == '3') goto yy1093; goto yy50; yy1065: yych = *++lexer->cursor; - if (yych == '3') goto yy1093; + if (yych == '3') goto yy1094; goto yy50; yy1066: yych = *++lexer->cursor; - if (yych == 't') goto yy1094; + if (yych == 't') goto yy1095; goto yy50; yy1067: yych = *++lexer->cursor; - if (yych == '2') goto yy1095; + if (yych == '2') goto yy1096; goto yy50; yy1068: yych = *++lexer->cursor; - if (yych == '4') goto yy1097; + if (yych == '4') goto yy1098; goto yy50; yy1069: yych = *++lexer->cursor; - if (yych == '2') goto yy1099; + if (yych == '2') goto yy1100; goto yy50; yy1070: yych = *++lexer->cursor; - if (yych == '4') goto yy1101; + if (yych == '4') goto yy1102; goto yy50; yy1071: yych = *++lexer->cursor; - if (yych == 'o') goto yy1103; + if (yych == 'o') goto yy1104; goto yy50; yy1072: yych = *++lexer->cursor; - if (yych == 'd') goto yy1104; + if (yych == 'd') goto yy1105; goto yy50; yy1073: yych = *++lexer->cursor; - if (yych == 'a') goto yy1106; + if (yych == 'r') goto yy1107; goto yy50; yy1074: yych = *++lexer->cursor; - if (yych == 'l') goto yy1107; + if (yych == 'a') goto yy1108; goto yy50; yy1075: yych = *++lexer->cursor; - if (yych == '3') goto yy1108; - if (yych == '6') goto yy1109; + if (yych == 'l') goto yy1109; goto yy50; yy1076: yych = *++lexer->cursor; @@ -6326,12 +6327,12 @@ yy1076: goto yy50; yy1077: yych = *++lexer->cursor; - if (yych == '/') goto yy1112; + if (yych == '3') goto yy1112; + if (yych == '6') goto yy1113; goto yy50; yy1078: yych = *++lexer->cursor; - if (yych == '3') goto yy1113; - if (yych == '6') goto yy1114; + if (yych == '/') goto yy1114; goto yy50; yy1079: yych = *++lexer->cursor; @@ -6339,337 +6340,436 @@ yy1079: if (yych == '6') goto yy1116; goto yy50; yy1080: + yych = *++lexer->cursor; + if (yych == '3') goto yy1117; + if (yych == '6') goto yy1118; + goto yy50; +yy1081: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 412 "src/ast-lexer.cc" +#line 413 "src/ast-lexer.cc" { OPCODE(F64PromoteF32); RETURN(CONVERT); } -#line 6349 "src/prebuilt/ast-lexer-gen.cc" -yy1082: - yych = *++lexer->cursor; - if (yych == '/') goto yy1117; - goto yy50; +#line 6355 "src/prebuilt/ast-lexer-gen.cc" yy1083: yych = *++lexer->cursor; - if (yych == '/') goto yy1118; + if (yych == '/') goto yy1119; goto yy50; yy1084: + yych = *++lexer->cursor; + if (yych == '/') goto yy1120; + goto yy50; +yy1085: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 396 "src/ast-lexer.cc" +#line 397 "src/ast-lexer.cc" { OPCODE(I32TruncSF32); RETURN(CONVERT); } -#line 6365 "src/prebuilt/ast-lexer-gen.cc" -yy1086: +#line 6371 "src/prebuilt/ast-lexer-gen.cc" +yy1087: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 398 "src/ast-lexer.cc" +#line 399 "src/ast-lexer.cc" { OPCODE(I32TruncSF64); RETURN(CONVERT); } -#line 6373 "src/prebuilt/ast-lexer-gen.cc" -yy1088: +#line 6379 "src/prebuilt/ast-lexer-gen.cc" +yy1089: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 400 "src/ast-lexer.cc" +#line 401 "src/ast-lexer.cc" { OPCODE(I32TruncUF32); RETURN(CONVERT); } -#line 6381 "src/prebuilt/ast-lexer-gen.cc" -yy1090: +#line 6387 "src/prebuilt/ast-lexer-gen.cc" +yy1091: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 402 "src/ast-lexer.cc" +#line 403 "src/ast-lexer.cc" { OPCODE(I32TruncUF64); RETURN(CONVERT); } -#line 6389 "src/prebuilt/ast-lexer-gen.cc" -yy1092: - yych = *++lexer->cursor; - if (yych == '2') goto yy1119; - goto yy50; +#line 6395 "src/prebuilt/ast-lexer-gen.cc" yy1093: yych = *++lexer->cursor; if (yych == '2') goto yy1121; goto yy50; yy1094: yych = *++lexer->cursor; - if (yych == '/') goto yy1123; + if (yych == '2') goto yy1123; goto yy50; yy1095: + yych = *++lexer->cursor; + if (yych == '/') goto yy1125; + goto yy50; +yy1096: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 397 "src/ast-lexer.cc" +#line 398 "src/ast-lexer.cc" { OPCODE(I64TruncSF32); RETURN(CONVERT); } -#line 6409 "src/prebuilt/ast-lexer-gen.cc" -yy1097: +#line 6415 "src/prebuilt/ast-lexer-gen.cc" +yy1098: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 399 "src/ast-lexer.cc" +#line 400 "src/ast-lexer.cc" { OPCODE(I64TruncSF64); RETURN(CONVERT); } -#line 6417 "src/prebuilt/ast-lexer-gen.cc" -yy1099: +#line 6423 "src/prebuilt/ast-lexer-gen.cc" +yy1100: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 401 "src/ast-lexer.cc" +#line 402 "src/ast-lexer.cc" { OPCODE(I64TruncUF32); RETURN(CONVERT); } -#line 6425 "src/prebuilt/ast-lexer-gen.cc" -yy1101: +#line 6431 "src/prebuilt/ast-lexer-gen.cc" +yy1102: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 403 "src/ast-lexer.cc" +#line 404 "src/ast-lexer.cc" { OPCODE(I64TruncUF64); RETURN(CONVERT); } -#line 6433 "src/prebuilt/ast-lexer-gen.cc" -yy1103: +#line 6439 "src/prebuilt/ast-lexer-gen.cc" +yy1104: yych = *++lexer->cursor; - if (yych == 'n') goto yy1124; + if (yych == 'n') goto yy1126; goto yy50; -yy1104: +yy1105: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 444 "src/ast-lexer.cc" +#line 441 "src/ast-lexer.cc" { RETURN(ASSERT_MALFORMED); } -#line 6445 "src/prebuilt/ast-lexer-gen.cc" -yy1106: - yych = *++lexer->cursor; - if (yych == 'n') goto yy1126; - goto yy50; +#line 6451 "src/prebuilt/ast-lexer-gen.cc" yy1107: yych = *++lexer->cursor; - if (yych == 'e') goto yy1128; + if (yych == 'i') goto yy1128; goto yy50; yy1108: yych = *++lexer->cursor; - if (yych == '2') goto yy1130; + if (yych == 'n') goto yy1129; goto yy50; yy1109: yych = *++lexer->cursor; - if (yych == '4') goto yy1132; + if (yych == 'e') goto yy1130; goto yy50; yy1110: yych = *++lexer->cursor; - if (yych == '2') goto yy1134; + if (yych == '2') goto yy1132; goto yy50; yy1111: yych = *++lexer->cursor; - if (yych == '4') goto yy1136; + if (yych == '4') goto yy1134; goto yy50; yy1112: yych = *++lexer->cursor; - if (yych == 'i') goto yy1138; + if (yych == '2') goto yy1136; goto yy50; yy1113: yych = *++lexer->cursor; - if (yych == '2') goto yy1139; + if (yych == '4') goto yy1138; goto yy50; yy1114: yych = *++lexer->cursor; - if (yych == '4') goto yy1141; + if (yych == 'i') goto yy1140; goto yy50; yy1115: yych = *++lexer->cursor; - if (yych == '2') goto yy1143; + if (yych == '2') goto yy1141; goto yy50; yy1116: yych = *++lexer->cursor; - if (yych == '4') goto yy1145; + if (yych == '4') goto yy1143; goto yy50; yy1117: yych = *++lexer->cursor; - if (yych == 'i') goto yy1147; + if (yych == '2') goto yy1145; goto yy50; yy1118: yych = *++lexer->cursor; - if (yych == 'f') goto yy1148; + if (yych == '4') goto yy1147; goto yy50; yy1119: + yych = *++lexer->cursor; + if (yych == 'i') goto yy1149; + goto yy50; +yy1120: + yych = *++lexer->cursor; + if (yych == 'f') goto yy1150; + goto yy50; +yy1121: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 393 "src/ast-lexer.cc" +#line 394 "src/ast-lexer.cc" { OPCODE(I64ExtendSI32); RETURN(CONVERT); } -#line 6505 "src/prebuilt/ast-lexer-gen.cc" -yy1121: +#line 6515 "src/prebuilt/ast-lexer-gen.cc" +yy1123: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 394 "src/ast-lexer.cc" +#line 395 "src/ast-lexer.cc" { OPCODE(I64ExtendUI32); RETURN(CONVERT); } -#line 6513 "src/prebuilt/ast-lexer-gen.cc" -yy1123: +#line 6523 "src/prebuilt/ast-lexer-gen.cc" +yy1125: yych = *++lexer->cursor; - if (yych == 'f') goto yy1149; + if (yych == 'f') goto yy1151; goto yy50; -yy1124: +yy1126: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } #line 450 "src/ast-lexer.cc" { RETURN(ASSERT_EXHAUSTION); } -#line 6525 "src/prebuilt/ast-lexer-gen.cc" -yy1126: - ++lexer->cursor; - if (yybm[0+(yych = *lexer->cursor)] & 16) { - goto yy49; - } -#line 448 "src/ast-lexer.cc" - { RETURN(ASSERT_RETURN_NAN); } -#line 6533 "src/prebuilt/ast-lexer-gen.cc" +#line 6535 "src/prebuilt/ast-lexer-gen.cc" yy1128: + yych = *++lexer->cursor; + if (yych == 't') goto yy1152; + goto yy50; +yy1129: + yych = *++lexer->cursor; + if (yych == 'o') goto yy1153; + goto yy50; +yy1130: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 446 "src/ast-lexer.cc" +#line 443 "src/ast-lexer.cc" { RETURN(ASSERT_UNLINKABLE); } -#line 6541 "src/prebuilt/ast-lexer-gen.cc" -yy1130: +#line 6551 "src/prebuilt/ast-lexer-gen.cc" +yy1132: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 404 "src/ast-lexer.cc" +#line 405 "src/ast-lexer.cc" { OPCODE(F32ConvertSI32); RETURN(CONVERT); } -#line 6549 "src/prebuilt/ast-lexer-gen.cc" -yy1132: +#line 6559 "src/prebuilt/ast-lexer-gen.cc" +yy1134: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 406 "src/ast-lexer.cc" +#line 407 "src/ast-lexer.cc" { OPCODE(F32ConvertSI64); RETURN(CONVERT); } -#line 6557 "src/prebuilt/ast-lexer-gen.cc" -yy1134: +#line 6567 "src/prebuilt/ast-lexer-gen.cc" +yy1136: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 408 "src/ast-lexer.cc" +#line 409 "src/ast-lexer.cc" { OPCODE(F32ConvertUI32); RETURN(CONVERT); } -#line 6565 "src/prebuilt/ast-lexer-gen.cc" -yy1136: +#line 6575 "src/prebuilt/ast-lexer-gen.cc" +yy1138: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 410 "src/ast-lexer.cc" +#line 411 "src/ast-lexer.cc" { OPCODE(F32ConvertUI64); RETURN(CONVERT); } -#line 6573 "src/prebuilt/ast-lexer-gen.cc" -yy1138: +#line 6583 "src/prebuilt/ast-lexer-gen.cc" +yy1140: yych = *++lexer->cursor; - if (yych == '3') goto yy1150; + if (yych == '3') goto yy1154; goto yy50; -yy1139: +yy1141: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 405 "src/ast-lexer.cc" +#line 406 "src/ast-lexer.cc" { OPCODE(F64ConvertSI32); RETURN(CONVERT); } -#line 6585 "src/prebuilt/ast-lexer-gen.cc" -yy1141: +#line 6595 "src/prebuilt/ast-lexer-gen.cc" +yy1143: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 407 "src/ast-lexer.cc" +#line 408 "src/ast-lexer.cc" { OPCODE(F64ConvertSI64); RETURN(CONVERT); } -#line 6593 "src/prebuilt/ast-lexer-gen.cc" -yy1143: +#line 6603 "src/prebuilt/ast-lexer-gen.cc" +yy1145: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 409 "src/ast-lexer.cc" +#line 410 "src/ast-lexer.cc" { OPCODE(F64ConvertUI32); RETURN(CONVERT); } -#line 6601 "src/prebuilt/ast-lexer-gen.cc" -yy1145: +#line 6611 "src/prebuilt/ast-lexer-gen.cc" +yy1147: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 411 "src/ast-lexer.cc" +#line 412 "src/ast-lexer.cc" { OPCODE(F64ConvertUI64); RETURN(CONVERT); } -#line 6609 "src/prebuilt/ast-lexer-gen.cc" -yy1147: - yych = *++lexer->cursor; - if (yych == '6') goto yy1151; - goto yy50; -yy1148: - yych = *++lexer->cursor; - if (yych == '3') goto yy1152; - goto yy50; +#line 6619 "src/prebuilt/ast-lexer-gen.cc" yy1149: yych = *++lexer->cursor; - if (yych == '6') goto yy1153; + if (yych == '6') goto yy1155; goto yy50; yy1150: yych = *++lexer->cursor; - if (yych == '2') goto yy1154; + if (yych == '3') goto yy1156; goto yy50; yy1151: yych = *++lexer->cursor; - if (yych == '4') goto yy1156; + if (yych == '6') goto yy1157; goto yy50; yy1152: yych = *++lexer->cursor; - if (yych == '2') goto yy1158; + if (yych == 'h') goto yy1158; goto yy50; yy1153: yych = *++lexer->cursor; - if (yych == '4') goto yy1160; + if (yych == 'n') goto yy1159; goto yy50; yy1154: + yych = *++lexer->cursor; + if (yych == '2') goto yy1160; + goto yy50; +yy1155: + yych = *++lexer->cursor; + if (yych == '4') goto yy1162; + goto yy50; +yy1156: + yych = *++lexer->cursor; + if (yych == '2') goto yy1164; + goto yy50; +yy1157: + yych = *++lexer->cursor; + if (yych == '4') goto yy1166; + goto yy50; +yy1158: + yych = *++lexer->cursor; + if (yych == 'm') goto yy1168; + goto yy50; +yy1159: + yych = *++lexer->cursor; + if (yych == 'i') goto yy1169; + goto yy50; +yy1160: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 414 "src/ast-lexer.cc" - { OPCODE(F32ReinterpretI32); RETURN(CONVERT); - } -#line 6646 "src/prebuilt/ast-lexer-gen.cc" -yy1156: +#line 415 "src/ast-lexer.cc" + { OPCODE(F32ReinterpretI32); RETURN(CONVERT); } +#line 6671 "src/prebuilt/ast-lexer-gen.cc" +yy1162: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 418 "src/ast-lexer.cc" - { OPCODE(F64ReinterpretI64); RETURN(CONVERT); - } -#line 6655 "src/prebuilt/ast-lexer-gen.cc" -yy1158: +#line 417 "src/ast-lexer.cc" + { OPCODE(F64ReinterpretI64); RETURN(CONVERT); } +#line 6679 "src/prebuilt/ast-lexer-gen.cc" +yy1164: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } #line 416 "src/ast-lexer.cc" - { OPCODE(I32ReinterpretF32); RETURN(CONVERT); - } -#line 6664 "src/prebuilt/ast-lexer-gen.cc" -yy1160: + { OPCODE(I32ReinterpretF32); RETURN(CONVERT); } +#line 6687 "src/prebuilt/ast-lexer-gen.cc" +yy1166: ++lexer->cursor; if (yybm[0+(yych = *lexer->cursor)] & 16) { goto yy49; } -#line 420 "src/ast-lexer.cc" - { OPCODE(I64ReinterpretF64); RETURN(CONVERT); - } -#line 6673 "src/prebuilt/ast-lexer-gen.cc" +#line 418 "src/ast-lexer.cc" + { OPCODE(I64ReinterpretF64); RETURN(CONVERT); } +#line 6695 "src/prebuilt/ast-lexer-gen.cc" +yy1168: + yych = *++lexer->cursor; + if (yych == 'e') goto yy1170; + goto yy50; +yy1169: + yych = *++lexer->cursor; + if (yych == 'c') goto yy1171; + goto yy50; +yy1170: + yych = *++lexer->cursor; + if (yych == 't') goto yy1172; + goto yy50; +yy1171: + yych = *++lexer->cursor; + if (yych == 'a') goto yy1173; + goto yy50; +yy1172: + yych = *++lexer->cursor; + if (yych == 'i') goto yy1174; + goto yy50; +yy1173: + yych = *++lexer->cursor; + if (yych == 'l') goto yy1175; + goto yy50; +yy1174: + yych = *++lexer->cursor; + if (yych == 'c') goto yy1176; + goto yy50; +yy1175: + yych = *++lexer->cursor; + if (yych == '_') goto yy1177; + goto yy50; +yy1176: + yych = *++lexer->cursor; + if (yych == '_') goto yy1178; + goto yy50; +yy1177: + yych = *++lexer->cursor; + if (yych == 'n') goto yy1179; + goto yy50; +yy1178: + yych = *++lexer->cursor; + if (yych == 'n') goto yy1180; + goto yy50; +yy1179: + yych = *++lexer->cursor; + if (yych == 'a') goto yy1181; + goto yy50; +yy1180: + yych = *++lexer->cursor; + if (yych == 'a') goto yy1182; + goto yy50; +yy1181: + yych = *++lexer->cursor; + if (yych == 'n') goto yy1183; + goto yy50; +yy1182: + yych = *++lexer->cursor; + if (yych == 'n') goto yy1185; + goto yy50; +yy1183: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 445 "src/ast-lexer.cc" + { + RETURN(ASSERT_RETURN_CANONICAL_NAN); } +#line 6764 "src/prebuilt/ast-lexer-gen.cc" +yy1185: + ++lexer->cursor; + if (yybm[0+(yych = *lexer->cursor)] & 16) { + goto yy49; + } +#line 447 "src/ast-lexer.cc" + { + RETURN(ASSERT_RETURN_ARITHMETIC_NAN); } +#line 6773 "src/prebuilt/ast-lexer-gen.cc" } } #line 473 "src/ast-lexer.cc" diff --git a/src/prebuilt/ast-parser-gen.cc b/src/prebuilt/ast-parser-gen.cc index c5765eab..32c4c754 100644 --- a/src/prebuilt/ast-parser-gen.cc +++ b/src/prebuilt/ast-parser-gen.cc @@ -340,12 +340,13 @@ extern int wabt_ast_parser_debug; WABT_TOKEN_TYPE_ASSERT_INVALID = 320, WABT_TOKEN_TYPE_ASSERT_UNLINKABLE = 321, WABT_TOKEN_TYPE_ASSERT_RETURN = 322, - WABT_TOKEN_TYPE_ASSERT_RETURN_NAN = 323, - WABT_TOKEN_TYPE_ASSERT_TRAP = 324, - WABT_TOKEN_TYPE_ASSERT_EXHAUSTION = 325, - WABT_TOKEN_TYPE_INPUT = 326, - WABT_TOKEN_TYPE_OUTPUT = 327, - WABT_TOKEN_TYPE_LOW = 328 + WABT_TOKEN_TYPE_ASSERT_RETURN_CANONICAL_NAN = 323, + WABT_TOKEN_TYPE_ASSERT_RETURN_ARITHMETIC_NAN = 324, + WABT_TOKEN_TYPE_ASSERT_TRAP = 325, + WABT_TOKEN_TYPE_ASSERT_EXHAUSTION = 326, + WABT_TOKEN_TYPE_INPUT = 327, + WABT_TOKEN_TYPE_OUTPUT = 328, + WABT_TOKEN_TYPE_LOW = 329 }; #endif @@ -378,7 +379,7 @@ int wabt_ast_parser_parse (::wabt::AstLexer* lexer, ::wabt::AstParser* parser); /* Copy the second part of user declarations. */ -#line 382 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:358 */ +#line 383 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:358 */ #ifdef short # undef short @@ -622,21 +623,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 10 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 794 +#define YYLAST 797 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 74 +#define YYNTOKENS 75 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 63 /* YYNRULES -- Number of rules. */ -#define YYNRULES 171 +#define YYNRULES 172 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 402 +#define YYNSTATES 405 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 328 +#define YYMAXUTOK 329 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -677,31 +678,31 @@ 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, 73 + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74 }; #if WABT_AST_PARSER_DEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 292, 292, 298, 308, 309, 313, 331, 332, 338, - 341, 346, 353, 356, 357, 362, 369, 377, 383, 389, - 394, 401, 407, 418, 422, 426, 433, 438, 445, 446, - 452, 453, 456, 460, 461, 465, 466, 476, 477, 488, - 489, 490, 493, 496, 499, 502, 505, 508, 511, 514, - 517, 520, 523, 526, 529, 532, 535, 538, 541, 544, - 557, 560, 563, 566, 569, 572, 577, 582, 587, 592, - 600, 609, 613, 616, 621, 626, 636, 640, 644, 648, - 652, 656, 663, 664, 672, 673, 681, 686, 687, 693, - 699, 709, 715, 721, 731, 783, 793, 800, 808, 818, - 821, 825, 832, 844, 852, 874, 881, 893, 901, 922, - 944, 952, 965, 973, 981, 987, 993, 1001, 1006, 1014, - 1022, 1028, 1034, 1043, 1051, 1056, 1061, 1066, 1073, 1080, - 1084, 1087, 1099, 1104, 1113, 1117, 1120, 1127, 1136, 1153, - 1170, 1180, 1186, 1192, 1198, 1231, 1241, 1261, 1272, 1300, - 1305, 1313, 1323, 1333, 1339, 1345, 1351, 1357, 1363, 1368, - 1374, 1383, 1388, 1389, 1394, 1403, 1404, 1411, 1423, 1424, - 1431, 1492 + 0, 293, 293, 299, 309, 310, 314, 332, 333, 339, + 342, 347, 354, 357, 358, 363, 370, 378, 384, 390, + 395, 402, 408, 419, 423, 427, 434, 439, 446, 447, + 453, 454, 457, 461, 462, 466, 467, 477, 478, 489, + 490, 491, 494, 497, 500, 503, 506, 509, 512, 515, + 518, 521, 524, 527, 530, 533, 536, 539, 542, 545, + 558, 561, 564, 567, 570, 573, 578, 583, 588, 593, + 601, 610, 614, 617, 622, 627, 637, 641, 645, 649, + 653, 657, 664, 665, 673, 674, 682, 687, 688, 694, + 700, 710, 716, 722, 732, 784, 794, 801, 809, 819, + 822, 826, 833, 845, 853, 875, 882, 894, 902, 923, + 945, 953, 966, 974, 982, 988, 994, 1002, 1007, 1015, + 1023, 1029, 1035, 1044, 1052, 1057, 1062, 1067, 1074, 1081, + 1085, 1088, 1100, 1105, 1114, 1118, 1121, 1128, 1137, 1154, + 1171, 1181, 1187, 1193, 1199, 1232, 1242, 1262, 1273, 1301, + 1306, 1314, 1324, 1334, 1340, 1346, 1352, 1358, 1364, 1369, + 1374, 1380, 1389, 1394, 1395, 1400, 1409, 1410, 1417, 1429, + 1430, 1437, 1503 }; #endif @@ -720,17 +721,18 @@ static const char *const yytname[] = "FUNC", "START", "TYPE", "PARAM", "RESULT", "LOCAL", "GLOBAL", "MODULE", "TABLE", "ELEM", "MEMORY", "DATA", "OFFSET", "IMPORT", "EXPORT", "REGISTER", "INVOKE", "GET", "ASSERT_MALFORMED", "ASSERT_INVALID", - "ASSERT_UNLINKABLE", "ASSERT_RETURN", "ASSERT_RETURN_NAN", "ASSERT_TRAP", - "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", + "ASSERT_UNLINKABLE", "ASSERT_RETURN", "ASSERT_RETURN_CANONICAL_NAN", + "ASSERT_RETURN_ARITHMETIC_NAN", "ASSERT_TRAP", "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 @@ -749,14 +751,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, 328 + 325, 326, 327, 328, 329 }; # endif -#define YYPACT_NINF -271 +#define YYPACT_NINF -274 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-271))) + (!!((Yystate) == (-274))) #define YYTABLE_NINF -30 @@ -767,47 +769,47 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -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 + -274, 41, -274, 46, 68, -274, -274, -274, -274, -274, + -274, 60, 73, 82, 82, 121, 121, 121, 123, 123, + 123, 142, 123, -274, 166, -274, -274, 82, -274, 73, + 73, 128, 73, 73, 73, 104, -274, 184, 205, 0, + 73, 73, 73, -274, 161, 221, 213, -274, 243, 245, + 254, 255, 228, -274, -274, 256, 263, 264, -274, -274, + 116, -274, -274, -274, -274, -274, -274, -274, -274, -274, + -274, -274, -274, 231, -274, -274, -274, -274, 153, -274, + -274, -274, -274, -274, 60, 98, 69, 60, 60, 111, + 60, 111, 73, 73, -274, 237, 408, -274, -274, -274, + 265, 224, 267, 204, 58, 270, 329, 271, -274, -274, + 272, 271, 166, 73, 273, -274, -274, -274, 275, 288, + -274, -274, 60, 60, 60, 98, 98, -274, 98, 98, + -274, 98, 98, 98, 98, 98, 242, 242, 237, -274, + -274, -274, -274, -274, -274, -274, -274, 441, 474, -274, + -274, -274, -274, -274, -274, 276, 278, 507, -274, 279, + -274, 280, 6, -274, 474, 89, 89, 186, 284, 114, + -274, 60, 60, 60, 474, 287, 289, -274, 118, 170, + 284, 284, 291, 166, 283, 292, 301, 34, 302, -274, + 98, 60, -274, 60, 73, 73, -274, -274, -274, -274, + -274, -274, 98, -274, -274, -274, -274, -274, -274, -274, + -274, 247, 247, -274, 612, 303, 752, -274, -274, 203, + 309, 319, 573, 441, 320, 206, 330, -274, 282, -274, + 331, 328, 337, 474, 341, 343, 284, -274, 361, 371, + -274, -274, -274, 372, 287, -274, -274, 197, -274, -274, + 166, 373, -274, 376, 238, 377, -274, 52, 378, 98, + 98, 98, 98, -274, 379, 173, 355, 174, 175, 369, + 73, 380, 375, 370, 48, 384, 214, -274, -274, -274, + -274, -274, -274, -274, -274, 387, -274, -274, 389, -274, + -274, 390, -274, -274, -274, 388, -274, -274, 99, -274, + -274, -274, -274, 406, -274, -274, 166, -274, 60, 60, + 60, 60, -274, 420, 422, 423, 429, -274, 441, -274, + 453, 540, 540, 455, 456, -274, -274, 60, 60, 60, + 60, 188, 189, -274, -274, -274, -274, 686, 463, -274, + 472, 486, 278, 89, 284, 284, -274, -274, -274, -274, + -274, 441, 651, -274, -274, 540, -274, -274, -274, 474, + -274, 489, -274, 217, 474, 719, 287, -274, 495, 505, + 519, 521, 522, 528, -274, -274, 477, 492, 552, 554, + 474, -274, -274, -274, -274, -274, -274, -274, 60, -274, + -274, 556, 561, -274, 193, 557, 572, -274, 474, 570, + 587, 474, -274, 588, -274 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -815,71 +817,71 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 165, 170, 171, 0, 0, 148, 163, 161, 162, 166, + 166, 171, 172, 0, 0, 148, 164, 162, 163, 167, 1, 30, 0, 149, 149, 0, 0, 0, 0, 0, - 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 + 0, 0, 0, 32, 135, 31, 6, 149, 150, 0, + 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 169, 0, 0, + 0, 0, 0, 158, 159, 0, 0, 0, 147, 3, + 0, 146, 140, 141, 138, 142, 139, 137, 144, 145, + 136, 143, 165, 0, 152, 153, 154, 155, 0, 157, + 170, 156, 160, 161, 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, 168, + 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[] = { - -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 + -274, 574, -156, -8, -181, 374, -149, 516, -146, -155, + -150, -145, -151, -140, 470, 26, -118, -45, -11, -116, + 483, 416, -274, -104, -274, -147, -88, -274, -274, -144, + 386, -136, -268, -273, -110, -274, -37, -274, -274, -274, + -274, -274, -274, -274, 39, -274, -274, 527, 43, -274, + -274, -274, 125, -274, 44, 219, -274, -274, -274, -274, + 584, -274, -274 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -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 + -1, 184, 185, 27, 272, 238, 164, 102, 220, 234, + 251, 235, 147, 99, 118, 249, 178, 24, 196, 197, + 211, 278, 148, 149, 150, 273, 151, 176, 339, 152, + 245, 230, 153, 154, 155, 62, 109, 63, 64, 65, + 66, 67, 258, 68, 156, 188, 69, 169, 157, 70, + 71, 45, 5, 6, 29, 7, 8, 9, 1, 80, + 52, 2, 3 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -887,240 +889,240 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 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 + 25, 108, 175, 108, 217, 221, 223, 198, 199, 202, + 265, 267, 268, 226, 239, 175, 232, 233, 228, 108, + 229, 47, 48, 108, 49, 50, 51, 255, 236, 236, + 229, 253, 55, 56, 57, 252, 252, 215, 243, 96, + 236, 236, 104, 105, 4, 110, 10, 224, 353, 354, + 350, 274, 275, 11, 112, 240, 241, 242, 30, 247, + 298, 162, 13, 14, 328, 194, 195, 329, 163, 23, + 177, 46, 101, 25, 183, 103, 25, 25, 23, 25, + 259, 26, 375, 374, 113, 114, 260, 244, 261, 229, + 262, 28, 231, 297, 303, 299, 294, 291, 308, 163, + 331, 332, 337, 97, 309, 186, 310, 98, 311, 319, + 175, 100, 175, 285, 106, 107, 97, 111, 175, 97, + 98, 11, 248, 97, 31, 237, 35, 98, 326, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 32, 33, 34, 165, 168, 39, 40, 166, 170, 180, + 341, 200, 201, 182, 203, 204, 244, 205, 206, 207, + 208, 209, 84, 85, 86, 58, 13, 14, 87, 59, + 88, 89, 90, 91, 43, 92, 93, 318, 321, 322, + 266, 11, 269, 319, 319, 319, 270, 271, 53, 372, + 95, 370, 361, 362, 371, 373, 369, 397, 319, 319, + 252, 302, 97, 319, 236, 236, 98, 101, 394, 54, + 338, 357, 358, 359, 360, 376, 264, 72, 363, -29, + 379, 378, 97, -29, 60, 61, 98, 250, 276, 194, + 195, 78, 79, 175, 78, 94, 392, 36, 37, 38, + 41, 42, 115, 116, 117, 194, 195, 74, 175, 75, + 366, 190, 281, 282, 400, 281, 282, 403, 76, 77, + 81, 175, 324, 342, 343, 344, 345, 82, 83, 158, + 159, 160, 393, 167, 106, 179, 187, 210, 381, 189, + 218, 219, 225, 277, 227, 313, 314, 315, 316, 97, + 216, 59, 288, 246, 254, 306, 256, 25, 25, 25, + 25, 120, 121, 171, 257, 172, 263, 280, 173, 125, + 126, 127, 128, 283, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 284, 286, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 287, 289, 190, 191, 192, 193, + 228, 290, 120, 121, 171, 292, 172, 194, 195, 173, + 125, 126, 127, 128, 237, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 295, 320, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 296, 300, 304, 216, 323, + 305, 307, 312, 317, 325, 319, 327, 174, 120, 121, + 122, 333, 123, 334, 335, 124, 125, 126, 127, 128, + 330, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 340, 119, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 120, 121, 122, 346, 123, 347, 348, 124, 125, + 126, 127, 128, 349, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 336, 214, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 120, 121, 122, 351, 123, 355, + 356, 124, 125, 126, 127, 128, 365, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 367, 216, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 120, 121, 122, + 368, 123, 377, 388, 124, 125, 126, 127, 128, 382, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 383, + 222, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 120, 121, 122, 384, 123, 385, 386, 124, 125, 126, + 127, 128, 387, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 389, 352, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 120, 121, 122, 390, 123, 391, 395, + 124, 125, 126, 127, 128, 396, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 399, 398, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 120, 121, 171, 401, + 172, 402, 404, 173, 125, 126, 127, 128, 44, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 213, 293, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 161, + 212, 190, 191, 192, 193, 120, 121, 171, 279, 172, + 301, 73, 173, 125, 126, 127, 128, 181, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 0, 0, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 0, 0, + 0, 191, 192, 193, 120, 121, 171, 0, 172, 0, + 0, 173, 125, 126, 127, 128, 0, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 0, 0, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 0, 0, 120, + 121, 171, 193, 172, 364, 0, 173, 125, 126, 127, + 128, 0, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 0, 0, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 120, 121, 171, 0, 172, 380, 0, 173, + 125, 126, 127, 128, 0, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 0, 0, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 120, 121, 171, 0, 172, + 0, 0, 173, 125, 126, 127, 128, 0, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 0, 0, 138, + 139, 140, 141, 142, 143, 144, 145, 146 }; static const yytype_int16 yycheck[] = { - 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, + 11, 89, 106, 91, 148, 156, 157, 123, 124, 127, + 191, 192, 193, 159, 169, 119, 165, 166, 12, 107, + 164, 29, 30, 111, 32, 33, 34, 183, 168, 169, + 174, 181, 40, 41, 42, 180, 181, 147, 174, 84, + 180, 181, 87, 88, 3, 90, 0, 157, 321, 322, + 318, 198, 199, 53, 91, 171, 172, 173, 14, 177, + 241, 3, 62, 63, 16, 59, 60, 19, 10, 9, + 107, 27, 3, 84, 111, 86, 87, 88, 9, 90, + 46, 8, 355, 351, 92, 93, 52, 175, 54, 233, + 56, 9, 3, 240, 250, 242, 236, 233, 46, 10, + 281, 282, 3, 5, 52, 113, 54, 9, 56, 10, + 214, 85, 216, 223, 3, 89, 5, 91, 222, 5, + 9, 53, 4, 5, 3, 11, 3, 9, 272, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 15, 16, 17, 104, 105, 3, 21, 104, 105, 110, + 306, 125, 126, 110, 128, 129, 244, 131, 132, 133, + 134, 135, 46, 47, 48, 4, 62, 63, 52, 8, + 54, 55, 56, 57, 8, 59, 60, 4, 4, 4, + 191, 53, 193, 10, 10, 10, 194, 195, 4, 344, + 37, 342, 4, 4, 343, 345, 342, 4, 10, 10, + 345, 4, 5, 10, 344, 345, 9, 3, 389, 4, + 298, 327, 328, 329, 330, 359, 190, 4, 336, 5, + 364, 4, 5, 9, 3, 4, 9, 57, 202, 59, + 60, 3, 4, 337, 3, 4, 380, 18, 19, 20, + 21, 22, 5, 6, 7, 59, 60, 4, 352, 4, + 338, 48, 49, 50, 398, 49, 50, 401, 4, 4, + 4, 365, 270, 308, 309, 310, 311, 4, 4, 4, + 46, 4, 388, 3, 3, 3, 3, 35, 366, 4, + 4, 3, 3, 36, 4, 259, 260, 261, 262, 5, + 3, 8, 10, 4, 3, 57, 4, 308, 309, 310, + 311, 13, 14, 15, 3, 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, 4, 48, 49, 50, 51, + 12, 4, 13, 14, 15, 4, 17, 59, 60, 20, + 21, 22, 23, 24, 11, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 3, 10, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 4, 4, 4, 3, 10, + 4, 4, 4, 4, 4, 10, 16, 58, 13, 14, 15, 4, 17, 4, 4, 20, 21, 22, 23, 24, - 4, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 16, 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, + 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, 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, 4, 4, 20, 21, 22, 23, 24, 4, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 50, + 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, 3, 20, 21, 22, + 13, 14, 15, 4, 17, 4, 4, 20, 21, 22, 23, 24, 4, 26, 27, 28, 29, 30, 31, 32, - 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, -1, 17, 18, -1, 20, 21, 22, 23, + 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, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 13, 14, 15, 19, + 17, 4, 4, 20, 21, 22, 23, 24, 24, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 138, 235, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 103, + 137, 48, 49, 50, 51, 13, 14, 15, 212, 17, + 244, 47, 20, 21, 22, 23, 24, 110, 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, -1, 17, -1, -1, 20, + 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 + 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 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 132, 135, 136, 3, 126, 127, 129, 130, 131, + 0, 133, 136, 137, 3, 127, 128, 130, 131, 132, 0, 53, 61, 62, 63, 64, 65, 66, 67, 68, - 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 + 69, 70, 71, 9, 92, 93, 8, 78, 9, 129, + 129, 3, 127, 127, 127, 3, 130, 130, 130, 3, + 127, 130, 130, 8, 76, 126, 129, 78, 78, 78, + 78, 78, 135, 4, 4, 78, 78, 78, 4, 8, + 3, 4, 110, 112, 113, 114, 115, 116, 118, 121, + 124, 125, 4, 135, 4, 4, 4, 4, 3, 4, + 134, 4, 4, 4, 46, 47, 48, 52, 54, 55, + 56, 57, 59, 60, 4, 37, 92, 5, 9, 88, + 90, 3, 82, 93, 92, 92, 3, 90, 101, 111, + 92, 90, 111, 78, 78, 5, 6, 7, 89, 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, 87, 97, 98, + 99, 101, 104, 107, 108, 109, 119, 123, 4, 46, + 4, 82, 3, 10, 81, 119, 123, 3, 119, 122, + 123, 15, 17, 20, 58, 98, 102, 111, 91, 3, + 119, 122, 123, 111, 76, 77, 78, 3, 120, 4, + 48, 49, 50, 51, 59, 60, 93, 94, 94, 94, + 90, 90, 91, 90, 90, 90, 90, 90, 90, 90, + 35, 95, 95, 89, 3, 109, 3, 104, 4, 3, + 83, 87, 3, 87, 109, 3, 83, 4, 12, 104, + 106, 3, 81, 81, 84, 86, 88, 11, 80, 84, + 94, 94, 94, 106, 101, 105, 4, 91, 4, 90, + 57, 85, 86, 85, 3, 77, 4, 3, 117, 46, + 52, 54, 56, 4, 90, 79, 93, 79, 79, 93, + 78, 78, 79, 100, 100, 100, 90, 36, 96, 96, + 4, 49, 50, 4, 4, 109, 4, 4, 10, 4, + 4, 106, 4, 80, 88, 3, 4, 100, 79, 100, + 4, 105, 4, 77, 4, 4, 57, 4, 46, 52, + 54, 56, 4, 90, 90, 90, 90, 4, 4, 10, + 10, 4, 4, 10, 78, 4, 104, 16, 16, 19, + 16, 79, 79, 4, 4, 4, 55, 3, 101, 103, + 4, 77, 92, 92, 92, 92, 4, 4, 4, 4, + 107, 4, 3, 108, 108, 4, 4, 94, 94, 94, + 94, 4, 4, 91, 18, 3, 101, 4, 4, 83, + 87, 81, 84, 85, 107, 108, 104, 3, 4, 104, + 18, 101, 4, 4, 4, 4, 4, 4, 16, 50, + 4, 4, 104, 94, 79, 3, 4, 4, 19, 3, + 104, 19, 4, 104, 4 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 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 + 0, 75, 76, 76, 77, 77, 78, 79, 79, 80, + 81, 81, 82, 83, 83, 83, 83, 84, 85, 86, + 86, 87, 88, 89, 89, 89, 90, 90, 91, 91, + 92, 92, 93, 94, 94, 95, 95, 96, 96, 97, + 97, 97, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, + 100, 101, 102, 102, 102, 102, 103, 103, 103, 103, + 103, 103, 104, 104, 105, 105, 106, 107, 107, 107, + 107, 108, 108, 108, 109, 110, 110, 110, 110, 111, + 111, 112, 112, 113, 113, 114, 114, 115, 115, 115, + 116, 116, 117, 117, 117, 117, 117, 118, 118, 118, + 118, 118, 118, 119, 120, 120, 120, 120, 121, 122, + 122, 123, 124, 124, 125, 126, 126, 126, 126, 126, + 126, 126, 126, 126, 126, 126, 127, 127, 128, 129, + 129, 130, 130, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 132, 132, 132, 132, 133, 133, 134, 135, + 135, 136, 137 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1141,9 +1143,9 @@ static const yytype_uint8 yyr2[] = 6, 6, 6, 5, 4, 4, 4, 4, 5, 0, 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, - 5, 1, 1, 1, 5, 0, 2, 4, 0, 2, - 1, 1 + 1, 6, 5, 5, 5, 5, 5, 5, 4, 4, + 5, 5, 1, 1, 1, 5, 0, 2, 4, 0, + 2, 1, 1 }; @@ -1640,363 +1642,363 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio switch (yytype) { case 5: /* NAT */ -#line 249 "src/ast-parser.y" /* yacc.c:1257 */ +#line 250 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1646 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1648 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; case 6: /* INT */ -#line 249 "src/ast-parser.y" /* yacc.c:1257 */ +#line 250 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1652 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1654 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; case 7: /* FLOAT */ -#line 249 "src/ast-parser.y" /* yacc.c:1257 */ +#line 250 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1658 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1660 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; case 8: /* TEXT */ -#line 249 "src/ast-parser.y" /* yacc.c:1257 */ +#line 250 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1664 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1666 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; case 9: /* VAR */ -#line 249 "src/ast-parser.y" /* yacc.c:1257 */ +#line 250 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1670 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1672 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; case 35: /* OFFSET_EQ_NAT */ -#line 249 "src/ast-parser.y" /* yacc.c:1257 */ +#line 250 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1676 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1678 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; case 36: /* ALIGN_EQ_NAT */ -#line 249 "src/ast-parser.y" /* yacc.c:1257 */ +#line 250 "src/ast-parser.y" /* yacc.c:1257 */ {} -#line 1682 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1684 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 75: /* non_empty_text_list */ -#line 276 "src/ast-parser.y" /* yacc.c:1257 */ + case 76: /* non_empty_text_list */ +#line 277 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_text_list(&((*yyvaluep).text_list)); } -#line 1688 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1690 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 76: /* text_list */ -#line 276 "src/ast-parser.y" /* yacc.c:1257 */ + case 77: /* text_list */ +#line 277 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_text_list(&((*yyvaluep).text_list)); } -#line 1694 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1696 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 77: /* quoted_text */ -#line 250 "src/ast-parser.y" /* yacc.c:1257 */ + case 78: /* quoted_text */ +#line 251 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).text)); } -#line 1700 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1702 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 78: /* value_type_list */ -#line 277 "src/ast-parser.y" /* yacc.c:1257 */ + case 79: /* value_type_list */ +#line 278 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).types); } -#line 1706 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1708 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 80: /* global_type */ -#line 269 "src/ast-parser.y" /* yacc.c:1257 */ + case 81: /* global_type */ +#line 270 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).global); } -#line 1712 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1714 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 81: /* func_type */ -#line 267 "src/ast-parser.y" /* yacc.c:1257 */ + case 82: /* func_type */ +#line 268 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func_sig); } -#line 1718 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1720 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 82: /* func_sig */ -#line 267 "src/ast-parser.y" /* yacc.c:1257 */ + case 83: /* func_sig */ +#line 268 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func_sig); } -#line 1724 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1726 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 84: /* memory_sig */ -#line 272 "src/ast-parser.y" /* yacc.c:1257 */ + case 85: /* memory_sig */ +#line 273 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).memory); } -#line 1730 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1732 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 86: /* type_use */ -#line 278 "src/ast-parser.y" /* yacc.c:1257 */ + case 87: /* type_use */ +#line 279 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_var(&((*yyvaluep).var)); } -#line 1736 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1738 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 88: /* literal */ -#line 251 "src/ast-parser.y" /* yacc.c:1257 */ + case 89: /* literal */ +#line 252 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).literal).text); } -#line 1742 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1744 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 89: /* var */ -#line 278 "src/ast-parser.y" /* yacc.c:1257 */ + case 90: /* var */ +#line 279 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_var(&((*yyvaluep).var)); } -#line 1748 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1750 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 90: /* var_list */ -#line 279 "src/ast-parser.y" /* yacc.c:1257 */ + case 91: /* var_list */ +#line 280 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).vars); } -#line 1754 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1756 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 91: /* bind_var_opt */ -#line 250 "src/ast-parser.y" /* yacc.c:1257 */ + case 92: /* bind_var_opt */ +#line 251 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).text)); } -#line 1760 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1762 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 92: /* bind_var */ -#line 250 "src/ast-parser.y" /* yacc.c:1257 */ + case 93: /* bind_var */ +#line 251 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).text)); } -#line 1766 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1768 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 93: /* labeling_opt */ -#line 250 "src/ast-parser.y" /* yacc.c:1257 */ + case 94: /* labeling_opt */ +#line 251 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).text)); } -#line 1772 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1774 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 96: /* instr */ -#line 264 "src/ast-parser.y" /* yacc.c:1257 */ + case 97: /* instr */ +#line 265 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_expr_list(((*yyvaluep).expr_list).first); } -#line 1778 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1780 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 97: /* plain_instr */ -#line 263 "src/ast-parser.y" /* yacc.c:1257 */ + case 98: /* plain_instr */ +#line 264 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).expr); } -#line 1784 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1786 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 98: /* block_instr */ -#line 263 "src/ast-parser.y" /* yacc.c:1257 */ + case 99: /* block_instr */ +#line 264 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).expr); } -#line 1790 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1792 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 99: /* block */ -#line 253 "src/ast-parser.y" /* yacc.c:1257 */ + case 100: /* block */ +#line 254 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).block); } -#line 1796 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1798 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 100: /* expr */ -#line 264 "src/ast-parser.y" /* yacc.c:1257 */ + case 101: /* expr */ +#line 265 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_expr_list(((*yyvaluep).expr_list).first); } -#line 1802 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1804 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 101: /* expr1 */ -#line 264 "src/ast-parser.y" /* yacc.c:1257 */ + case 102: /* expr1 */ +#line 265 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_expr_list(((*yyvaluep).expr_list).first); } -#line 1808 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1810 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 102: /* if_ */ -#line 264 "src/ast-parser.y" /* yacc.c:1257 */ + case 103: /* if_ */ +#line 265 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_expr_list(((*yyvaluep).expr_list).first); } -#line 1814 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1816 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 103: /* instr_list */ -#line 264 "src/ast-parser.y" /* yacc.c:1257 */ + case 104: /* instr_list */ +#line 265 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_expr_list(((*yyvaluep).expr_list).first); } -#line 1820 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1822 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 104: /* expr_list */ -#line 264 "src/ast-parser.y" /* yacc.c:1257 */ + case 105: /* expr_list */ +#line 265 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_expr_list(((*yyvaluep).expr_list).first); } -#line 1826 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1828 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 105: /* const_expr */ -#line 264 "src/ast-parser.y" /* yacc.c:1257 */ + case 106: /* const_expr */ +#line 265 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_expr_list(((*yyvaluep).expr_list).first); } -#line 1832 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1834 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 106: /* func_fields */ -#line 265 "src/ast-parser.y" /* yacc.c:1257 */ + case 107: /* func_fields */ +#line 266 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_func_fields(((*yyvaluep).func_fields)); } -#line 1838 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1840 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 107: /* func_body */ -#line 265 "src/ast-parser.y" /* yacc.c:1257 */ + case 108: /* func_body */ +#line 266 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_func_fields(((*yyvaluep).func_fields)); } -#line 1844 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1846 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 108: /* func_info */ -#line 266 "src/ast-parser.y" /* yacc.c:1257 */ + case 109: /* func_info */ +#line 267 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 1850 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1852 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 109: /* func */ -#line 260 "src/ast-parser.y" /* yacc.c:1257 */ + case 110: /* func */ +#line 261 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).exported_func); } -#line 1856 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1858 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 110: /* offset */ -#line 264 "src/ast-parser.y" /* yacc.c:1257 */ + case 111: /* offset */ +#line 265 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_expr_list(((*yyvaluep).expr_list).first); } -#line 1862 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1864 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 111: /* elem */ -#line 258 "src/ast-parser.y" /* yacc.c:1257 */ + case 112: /* elem */ +#line 259 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).elem_segment); } -#line 1868 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1870 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 112: /* table */ -#line 262 "src/ast-parser.y" /* yacc.c:1257 */ + case 113: /* table */ +#line 263 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).exported_table); } -#line 1874 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1876 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 113: /* data */ -#line 257 "src/ast-parser.y" /* yacc.c:1257 */ + case 114: /* data */ +#line 258 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).data_segment); } -#line 1880 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1882 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 114: /* memory */ -#line 261 "src/ast-parser.y" /* yacc.c:1257 */ + case 115: /* memory */ +#line 262 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).exported_memory); } -#line 1886 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1888 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 116: /* import_kind */ -#line 270 "src/ast-parser.y" /* yacc.c:1257 */ + case 117: /* import_kind */ +#line 271 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).import); } -#line 1892 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1894 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 117: /* import */ -#line 270 "src/ast-parser.y" /* yacc.c:1257 */ + case 118: /* import */ +#line 271 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).import); } -#line 1898 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1900 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 118: /* inline_import */ -#line 270 "src/ast-parser.y" /* yacc.c:1257 */ + case 119: /* inline_import */ +#line 271 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).import); } -#line 1904 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1906 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 119: /* export_kind */ -#line 259 "src/ast-parser.y" /* yacc.c:1257 */ + case 120: /* export_kind */ +#line 260 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).export_); } -#line 1910 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1912 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 120: /* export */ -#line 259 "src/ast-parser.y" /* yacc.c:1257 */ + case 121: /* export */ +#line 260 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).export_); } -#line 1916 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1918 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 121: /* inline_export_opt */ -#line 271 "src/ast-parser.y" /* yacc.c:1257 */ + case 122: /* inline_export_opt */ +#line 272 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).optional_export); } -#line 1922 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1924 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 122: /* inline_export */ -#line 271 "src/ast-parser.y" /* yacc.c:1257 */ + case 123: /* inline_export */ +#line 272 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).optional_export); } -#line 1928 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1930 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 123: /* type_def */ -#line 268 "src/ast-parser.y" /* yacc.c:1257 */ + case 124: /* type_def */ +#line 269 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func_type); } -#line 1934 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1936 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 124: /* start */ -#line 278 "src/ast-parser.y" /* yacc.c:1257 */ + case 125: /* start */ +#line 279 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_var(&((*yyvaluep).var)); } -#line 1940 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1942 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 125: /* module_fields */ -#line 273 "src/ast-parser.y" /* yacc.c:1257 */ + case 126: /* module_fields */ +#line 274 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).module); } -#line 1946 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1948 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 126: /* raw_module */ -#line 274 "src/ast-parser.y" /* yacc.c:1257 */ + case 127: /* raw_module */ +#line 275 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).raw_module); } -#line 1952 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1954 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 127: /* module */ -#line 273 "src/ast-parser.y" /* yacc.c:1257 */ + case 128: /* module */ +#line 274 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).module); } -#line 1958 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1960 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 128: /* script_var_opt */ -#line 278 "src/ast-parser.y" /* yacc.c:1257 */ + case 129: /* script_var_opt */ +#line 279 "src/ast-parser.y" /* yacc.c:1257 */ { destroy_var(&((*yyvaluep).var)); } -#line 1964 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1966 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 129: /* action */ -#line 252 "src/ast-parser.y" /* yacc.c:1257 */ + case 130: /* action */ +#line 253 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).action); } -#line 1970 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1972 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 130: /* assertion */ -#line 254 "src/ast-parser.y" /* yacc.c:1257 */ + case 131: /* assertion */ +#line 255 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).command); } -#line 1976 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1978 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 131: /* cmd */ -#line 254 "src/ast-parser.y" /* yacc.c:1257 */ + case 132: /* cmd */ +#line 255 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).command); } -#line 1982 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1984 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 132: /* cmd_list */ -#line 255 "src/ast-parser.y" /* yacc.c:1257 */ + case 133: /* cmd_list */ +#line 256 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).commands); } -#line 1988 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1990 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 134: /* const_list */ -#line 256 "src/ast-parser.y" /* yacc.c:1257 */ + case 135: /* const_list */ +#line 257 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).consts); } -#line 1994 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 1996 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; - case 135: /* script */ -#line 275 "src/ast-parser.y" /* yacc.c:1257 */ + case 136: /* script */ +#line 276 "src/ast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).script); } -#line 2000 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ +#line 2002 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */ break; @@ -2288,18 +2290,18 @@ yyreduce: switch (yyn) { case 2: -#line 292 "src/ast-parser.y" /* yacc.c:1646 */ +#line 293 "src/ast-parser.y" /* yacc.c:1646 */ { TextListNode* node = new TextListNode(); DUPTEXT(node->text, (yyvsp[0].text)); node->next = nullptr; (yyval.text_list).first = (yyval.text_list).last = node; } -#line 2299 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2301 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 3: -#line 298 "src/ast-parser.y" /* yacc.c:1646 */ +#line 299 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.text_list) = (yyvsp[-1].text_list); TextListNode* node = new TextListNode(); @@ -2308,17 +2310,17 @@ yyreduce: (yyval.text_list).last->next = node; (yyval.text_list).last = node; } -#line 2312 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2314 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 4: -#line 308 "src/ast-parser.y" /* yacc.c:1646 */ +#line 309 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.text_list).first = (yyval.text_list).last = nullptr; } -#line 2318 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2320 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 6: -#line 313 "src/ast-parser.y" /* yacc.c:1646 */ +#line 314 "src/ast-parser.y" /* yacc.c:1646 */ { TextListNode node; node.text = (yyvsp[0].text); @@ -2332,74 +2334,74 @@ yyreduce: (yyval.text).start = data; (yyval.text).length = size; } -#line 2336 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2338 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 7: -#line 331 "src/ast-parser.y" /* yacc.c:1646 */ +#line 332 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.types) = new TypeVector(); } -#line 2342 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2344 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 8: -#line 332 "src/ast-parser.y" /* yacc.c:1646 */ +#line 333 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.types) = (yyvsp[-1].types); (yyval.types)->push_back((yyvsp[0].type)); } -#line 2351 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2353 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 9: -#line 338 "src/ast-parser.y" /* yacc.c:1646 */ +#line 339 "src/ast-parser.y" /* yacc.c:1646 */ {} -#line 2357 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2359 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 10: -#line 341 "src/ast-parser.y" /* yacc.c:1646 */ +#line 342 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.global) = new Global(); (yyval.global)->type = (yyvsp[0].type); (yyval.global)->mutable_ = false; } -#line 2367 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2369 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 11: -#line 346 "src/ast-parser.y" /* yacc.c:1646 */ +#line 347 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.global) = new Global(); (yyval.global)->type = (yyvsp[-1].type); (yyval.global)->mutable_ = true; } -#line 2377 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2379 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 12: -#line 353 "src/ast-parser.y" /* yacc.c:1646 */ +#line 354 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = (yyvsp[-1].func_sig); } -#line 2383 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2385 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 13: -#line 356 "src/ast-parser.y" /* yacc.c:1646 */ +#line 357 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = new FuncSignature(); } -#line 2389 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2391 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 14: -#line 357 "src/ast-parser.y" /* yacc.c:1646 */ +#line 358 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = new FuncSignature(); (yyval.func_sig)->param_types = std::move(*(yyvsp[-1].types)); delete (yyvsp[-1].types); } -#line 2399 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2401 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 15: -#line 362 "src/ast-parser.y" /* yacc.c:1646 */ +#line 363 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = new FuncSignature(); (yyval.func_sig)->param_types = std::move(*(yyvsp[-5].types)); @@ -2407,65 +2409,65 @@ yyreduce: (yyval.func_sig)->result_types = std::move(*(yyvsp[-1].types)); delete (yyvsp[-1].types); } -#line 2411 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2413 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 16: -#line 369 "src/ast-parser.y" /* yacc.c:1646 */ +#line 370 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = new FuncSignature(); (yyval.func_sig)->result_types = std::move(*(yyvsp[-1].types)); delete (yyvsp[-1].types); } -#line 2421 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2423 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 17: -#line 377 "src/ast-parser.y" /* yacc.c:1646 */ +#line 378 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.table) = new Table(); (yyval.table)->elem_limits = (yyvsp[-1].limits); } -#line 2430 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2432 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 18: -#line 383 "src/ast-parser.y" /* yacc.c:1646 */ +#line 384 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.memory) = new Memory(); (yyval.memory)->page_limits = (yyvsp[0].limits); } -#line 2439 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2441 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 19: -#line 389 "src/ast-parser.y" /* yacc.c:1646 */ +#line 390 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.limits).has_max = false; (yyval.limits).initial = (yyvsp[0].u64); (yyval.limits).max = 0; } -#line 2449 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2451 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 20: -#line 394 "src/ast-parser.y" /* yacc.c:1646 */ +#line 395 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.limits).has_max = true; (yyval.limits).initial = (yyvsp[-1].u64); (yyval.limits).max = (yyvsp[0].u64); } -#line 2459 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2461 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 21: -#line 401 "src/ast-parser.y" /* yacc.c:1646 */ +#line 402 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.var) = (yyvsp[-1].var); } -#line 2465 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2467 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 22: -#line 407 "src/ast-parser.y" /* yacc.c:1646 */ +#line 408 "src/ast-parser.y" /* yacc.c:1646 */ { if (WABT_FAILED(parse_uint64((yyvsp[0].literal).text.start, (yyvsp[0].literal).text.start + (yyvsp[0].literal).text.length, &(yyval.u64)))) { @@ -2474,97 +2476,97 @@ yyreduce: WABT_PRINTF_STRING_SLICE_ARG((yyvsp[0].literal).text)); } } -#line 2478 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2480 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 23: -#line 418 "src/ast-parser.y" /* yacc.c:1646 */ +#line 419 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 2487 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2489 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 24: -#line 422 "src/ast-parser.y" /* yacc.c:1646 */ +#line 423 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 2496 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2498 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 25: -#line 426 "src/ast-parser.y" /* yacc.c:1646 */ +#line 427 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 2505 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2507 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 26: -#line 433 "src/ast-parser.y" /* yacc.c:1646 */ +#line 434 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.var).loc = (yylsp[0]); (yyval.var).type = VarType::Index; (yyval.var).index = (yyvsp[0].u64); } -#line 2515 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2517 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 27: -#line 438 "src/ast-parser.y" /* yacc.c:1646 */ +#line 439 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.var).loc = (yylsp[0]); (yyval.var).type = VarType::Name; DUPTEXT((yyval.var).name, (yyvsp[0].text)); } -#line 2525 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2527 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 28: -#line 445 "src/ast-parser.y" /* yacc.c:1646 */ +#line 446 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.vars) = new VarVector(); } -#line 2531 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2533 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 29: -#line 446 "src/ast-parser.y" /* yacc.c:1646 */ +#line 447 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.vars) = (yyvsp[-1].vars); (yyval.vars)->push_back((yyvsp[0].var)); } -#line 2540 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2542 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 30: -#line 452 "src/ast-parser.y" /* yacc.c:1646 */ +#line 453 "src/ast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.text)); } -#line 2546 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2548 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 32: -#line 456 "src/ast-parser.y" /* yacc.c:1646 */ +#line 457 "src/ast-parser.y" /* yacc.c:1646 */ { DUPTEXT((yyval.text), (yyvsp[0].text)); } -#line 2552 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2554 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 33: -#line 460 "src/ast-parser.y" /* yacc.c:1646 */ +#line 461 "src/ast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.text)); } -#line 2558 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2560 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 35: -#line 465 "src/ast-parser.y" /* yacc.c:1646 */ +#line 466 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.u64) = 0; } -#line 2564 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2566 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 36: -#line 466 "src/ast-parser.y" /* yacc.c:1646 */ +#line 467 "src/ast-parser.y" /* yacc.c:1646 */ { if (WABT_FAILED(parse_int64((yyvsp[0].text).start, (yyvsp[0].text).start + (yyvsp[0].text).length, &(yyval.u64), ParseIntType::SignedAndUnsigned))) { @@ -2573,17 +2575,17 @@ yyreduce: WABT_PRINTF_STRING_SLICE_ARG((yyvsp[0].text))); } } -#line 2577 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2579 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 37: -#line 476 "src/ast-parser.y" /* yacc.c:1646 */ +#line 477 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.u32) = USE_NATURAL_ALIGNMENT; } -#line 2583 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2585 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 38: -#line 477 "src/ast-parser.y" /* yacc.c:1646 */ +#line 478 "src/ast-parser.y" /* yacc.c:1646 */ { if (WABT_FAILED(parse_int32((yyvsp[0].text).start, (yyvsp[0].text).start + (yyvsp[0].text).length, &(yyval.u32), ParseIntType::UnsignedOnly))) { @@ -2592,165 +2594,165 @@ yyreduce: WABT_PRINTF_STRING_SLICE_ARG((yyvsp[0].text))); } } -#line 2596 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2598 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 39: -#line 488 "src/ast-parser.y" /* yacc.c:1646 */ +#line 489 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); } -#line 2602 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2604 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 40: -#line 489 "src/ast-parser.y" /* yacc.c:1646 */ +#line 490 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); } -#line 2608 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2610 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 41: -#line 490 "src/ast-parser.y" /* yacc.c:1646 */ +#line 491 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[0].expr_list); } -#line 2614 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2616 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 42: -#line 493 "src/ast-parser.y" /* yacc.c:1646 */ +#line 494 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateUnreachable(); } -#line 2622 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2624 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 43: -#line 496 "src/ast-parser.y" /* yacc.c:1646 */ +#line 497 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateNop(); } -#line 2630 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2632 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 44: -#line 499 "src/ast-parser.y" /* yacc.c:1646 */ +#line 500 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateDrop(); } -#line 2638 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2640 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 45: -#line 502 "src/ast-parser.y" /* yacc.c:1646 */ +#line 503 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateSelect(); } -#line 2646 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2648 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 46: -#line 505 "src/ast-parser.y" /* yacc.c:1646 */ +#line 506 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBr((yyvsp[0].var)); } -#line 2654 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2656 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 47: -#line 508 "src/ast-parser.y" /* yacc.c:1646 */ +#line 509 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBrIf((yyvsp[0].var)); } -#line 2662 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2664 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 48: -#line 511 "src/ast-parser.y" /* yacc.c:1646 */ +#line 512 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBrTable((yyvsp[-1].vars), (yyvsp[0].var)); } -#line 2670 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2672 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 49: -#line 514 "src/ast-parser.y" /* yacc.c:1646 */ +#line 515 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateReturn(); } -#line 2678 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2680 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 50: -#line 517 "src/ast-parser.y" /* yacc.c:1646 */ +#line 518 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateCall((yyvsp[0].var)); } -#line 2686 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2688 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 51: -#line 520 "src/ast-parser.y" /* yacc.c:1646 */ +#line 521 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateCallIndirect((yyvsp[0].var)); } -#line 2694 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2696 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 52: -#line 523 "src/ast-parser.y" /* yacc.c:1646 */ +#line 524 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateGetLocal((yyvsp[0].var)); } -#line 2702 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2704 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 53: -#line 526 "src/ast-parser.y" /* yacc.c:1646 */ +#line 527 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateSetLocal((yyvsp[0].var)); } -#line 2710 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2712 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 54: -#line 529 "src/ast-parser.y" /* yacc.c:1646 */ +#line 530 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateTeeLocal((yyvsp[0].var)); } -#line 2718 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2720 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 55: -#line 532 "src/ast-parser.y" /* yacc.c:1646 */ +#line 533 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateGetGlobal((yyvsp[0].var)); } -#line 2726 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2728 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 56: -#line 535 "src/ast-parser.y" /* yacc.c:1646 */ +#line 536 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateSetGlobal((yyvsp[0].var)); } -#line 2734 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2736 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 57: -#line 538 "src/ast-parser.y" /* yacc.c:1646 */ +#line 539 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateLoad((yyvsp[-2].opcode), (yyvsp[0].u32), (yyvsp[-1].u64)); } -#line 2742 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2744 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 58: -#line 541 "src/ast-parser.y" /* yacc.c:1646 */ +#line 542 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateStore((yyvsp[-2].opcode), (yyvsp[0].u32), (yyvsp[-1].u64)); } -#line 2750 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2752 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 59: -#line 544 "src/ast-parser.y" /* yacc.c:1646 */ +#line 545 "src/ast-parser.y" /* yacc.c:1646 */ { Const const_; WABT_ZERO_MEMORY(const_); @@ -2764,145 +2766,145 @@ yyreduce: delete [] (yyvsp[0].literal).text.start; (yyval.expr) = Expr::CreateConst(const_); } -#line 2768 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2770 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 60: -#line 557 "src/ast-parser.y" /* yacc.c:1646 */ +#line 558 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateUnary((yyvsp[0].opcode)); } -#line 2776 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2778 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 61: -#line 560 "src/ast-parser.y" /* yacc.c:1646 */ +#line 561 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBinary((yyvsp[0].opcode)); } -#line 2784 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2786 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 62: -#line 563 "src/ast-parser.y" /* yacc.c:1646 */ +#line 564 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateCompare((yyvsp[0].opcode)); } -#line 2792 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2794 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 63: -#line 566 "src/ast-parser.y" /* yacc.c:1646 */ +#line 567 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateConvert((yyvsp[0].opcode)); } -#line 2800 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2802 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 64: -#line 569 "src/ast-parser.y" /* yacc.c:1646 */ +#line 570 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateCurrentMemory(); } -#line 2808 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2810 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 65: -#line 572 "src/ast-parser.y" /* yacc.c:1646 */ +#line 573 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateGrowMemory(); } -#line 2816 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2818 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 66: -#line 577 "src/ast-parser.y" /* yacc.c:1646 */ +#line 578 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBlock((yyvsp[-2].block)); (yyval.expr)->block->label = (yyvsp[-3].text); CHECK_END_LABEL((yylsp[0]), (yyval.expr)->block->label, (yyvsp[0].text)); } -#line 2826 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2828 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 67: -#line 582 "src/ast-parser.y" /* yacc.c:1646 */ +#line 583 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateLoop((yyvsp[-2].block)); (yyval.expr)->loop->label = (yyvsp[-3].text); CHECK_END_LABEL((yylsp[0]), (yyval.expr)->loop->label, (yyvsp[0].text)); } -#line 2836 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2838 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 68: -#line 587 "src/ast-parser.y" /* yacc.c:1646 */ +#line 588 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateIf((yyvsp[-2].block), nullptr); (yyval.expr)->if_.true_->label = (yyvsp[-3].text); CHECK_END_LABEL((yylsp[0]), (yyval.expr)->if_.true_->label, (yyvsp[0].text)); } -#line 2846 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2848 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 69: -#line 592 "src/ast-parser.y" /* yacc.c:1646 */ +#line 593 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateIf((yyvsp[-5].block), (yyvsp[-2].expr_list).first); (yyval.expr)->if_.true_->label = (yyvsp[-6].text); CHECK_END_LABEL((yylsp[-3]), (yyval.expr)->if_.true_->label, (yyvsp[-3].text)); CHECK_END_LABEL((yylsp[0]), (yyval.expr)->if_.true_->label, (yyvsp[0].text)); } -#line 2857 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2859 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 70: -#line 600 "src/ast-parser.y" /* yacc.c:1646 */ +#line 601 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.block) = new Block(); (yyval.block)->sig = std::move(*(yyvsp[-1].types)); delete (yyvsp[-1].types); (yyval.block)->first = (yyvsp[0].expr_list).first; } -#line 2868 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2870 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 71: -#line 609 "src/ast-parser.y" /* yacc.c:1646 */ +#line 610 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[-1].expr_list); } -#line 2874 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2876 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 72: -#line 613 "src/ast-parser.y" /* yacc.c:1646 */ +#line 614 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_exprs2(&(yylsp[-1]), &(yyvsp[0].expr_list), (yyvsp[-1].expr)); } -#line 2882 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2884 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 73: -#line 616 "src/ast-parser.y" /* yacc.c:1646 */ +#line 617 "src/ast-parser.y" /* yacc.c:1646 */ { Expr* expr = Expr::CreateBlock((yyvsp[0].block)); expr->block->label = (yyvsp[-1].text); (yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr); } -#line 2892 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2894 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 74: -#line 621 "src/ast-parser.y" /* yacc.c:1646 */ +#line 622 "src/ast-parser.y" /* yacc.c:1646 */ { Expr* expr = Expr::CreateLoop((yyvsp[0].block)); expr->loop->label = (yyvsp[-1].text); (yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr); } -#line 2902 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2904 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 75: -#line 626 "src/ast-parser.y" /* yacc.c:1646 */ +#line 627 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[0].expr_list); Expr* if_ = (yyvsp[0].expr_list).last; @@ -2911,121 +2913,121 @@ yyreduce: if_->if_.true_->sig = std::move(*(yyvsp[-1].types)); delete (yyvsp[-1].types); } -#line 2915 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2917 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 76: -#line 636 "src/ast-parser.y" /* yacc.c:1646 */ +#line 637 "src/ast-parser.y" /* yacc.c:1646 */ { Expr* expr = Expr::CreateIf(new Block((yyvsp[-5].expr_list).first), (yyvsp[-1].expr_list).first); (yyval.expr_list) = join_exprs1(&(yylsp[-7]), expr); } -#line 2924 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2926 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 77: -#line 640 "src/ast-parser.y" /* yacc.c:1646 */ +#line 641 "src/ast-parser.y" /* yacc.c:1646 */ { Expr* expr = Expr::CreateIf(new Block((yyvsp[-1].expr_list).first), nullptr); (yyval.expr_list) = join_exprs1(&(yylsp[-3]), expr); } -#line 2933 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2935 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 78: -#line 644 "src/ast-parser.y" /* yacc.c:1646 */ +#line 645 "src/ast-parser.y" /* yacc.c:1646 */ { Expr* expr = Expr::CreateIf(new Block((yyvsp[-5].expr_list).first), (yyvsp[-1].expr_list).first); (yyval.expr_list) = join_exprs2(&(yylsp[-8]), &(yyvsp[-8].expr_list), expr); } -#line 2942 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2944 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 79: -#line 648 "src/ast-parser.y" /* yacc.c:1646 */ +#line 649 "src/ast-parser.y" /* yacc.c:1646 */ { Expr* expr = Expr::CreateIf(new Block((yyvsp[-1].expr_list).first), nullptr); (yyval.expr_list) = join_exprs2(&(yylsp[-4]), &(yyvsp[-4].expr_list), expr); } -#line 2951 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2953 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 80: -#line 652 "src/ast-parser.y" /* yacc.c:1646 */ +#line 653 "src/ast-parser.y" /* yacc.c:1646 */ { Expr* expr = Expr::CreateIf(new Block((yyvsp[-1].expr_list).first), (yyvsp[0].expr_list).first); (yyval.expr_list) = join_exprs2(&(yylsp[-2]), &(yyvsp[-2].expr_list), expr); } -#line 2960 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2962 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 81: -#line 656 "src/ast-parser.y" /* yacc.c:1646 */ +#line 657 "src/ast-parser.y" /* yacc.c:1646 */ { Expr* expr = Expr::CreateIf(new Block((yyvsp[0].expr_list).first), nullptr); (yyval.expr_list) = join_exprs2(&(yylsp[-1]), &(yyvsp[-1].expr_list), expr); } -#line 2969 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2971 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 82: -#line 663 "src/ast-parser.y" /* yacc.c:1646 */ +#line 664 "src/ast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.expr_list)); } -#line 2975 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2977 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 83: -#line 664 "src/ast-parser.y" /* yacc.c:1646 */ +#line 665 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list).first = (yyvsp[-1].expr_list).first; (yyvsp[-1].expr_list).last->next = (yyvsp[0].expr_list).first; (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.cc" /* yacc.c:1646 */ +#line 2988 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 84: -#line 672 "src/ast-parser.y" /* yacc.c:1646 */ +#line 673 "src/ast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.expr_list)); } -#line 2992 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 2994 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 85: -#line 673 "src/ast-parser.y" /* yacc.c:1646 */ +#line 674 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list).first = (yyvsp[-1].expr_list).first; (yyvsp[-1].expr_list).last->next = (yyvsp[0].expr_list).first; (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.cc" /* yacc.c:1646 */ +#line 3005 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 88: -#line 687 "src/ast-parser.y" /* yacc.c:1646 */ +#line 688 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_fields) = new FuncField(); (yyval.func_fields)->type = FuncFieldType::ResultTypes; (yyval.func_fields)->types = (yyvsp[-2].types); (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 3014 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3016 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 89: -#line 693 "src/ast-parser.y" /* yacc.c:1646 */ +#line 694 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_fields) = new FuncField(); (yyval.func_fields)->type = FuncFieldType::ParamTypes; (yyval.func_fields)->types = (yyvsp[-2].types); (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 3025 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3027 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 90: -#line 699 "src/ast-parser.y" /* yacc.c:1646 */ +#line 700 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_fields) = new FuncField(); (yyval.func_fields)->type = FuncFieldType::BoundParam; @@ -3034,33 +3036,33 @@ 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.cc" /* yacc.c:1646 */ +#line 3040 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 91: -#line 709 "src/ast-parser.y" /* yacc.c:1646 */ +#line 710 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_fields) = new FuncField(); (yyval.func_fields)->type = FuncFieldType::Exprs; (yyval.func_fields)->first_expr = (yyvsp[0].expr_list).first; (yyval.func_fields)->next = nullptr; } -#line 3049 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3051 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 92: -#line 715 "src/ast-parser.y" /* yacc.c:1646 */ +#line 716 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_fields) = new FuncField(); (yyval.func_fields)->type = FuncFieldType::LocalTypes; (yyval.func_fields)->types = (yyvsp[-2].types); (yyval.func_fields)->next = (yyvsp[0].func_fields); } -#line 3060 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3062 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 93: -#line 721 "src/ast-parser.y" /* yacc.c:1646 */ +#line 722 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_fields) = new FuncField(); (yyval.func_fields)->type = FuncFieldType::BoundLocal; @@ -3069,11 +3071,11 @@ 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.cc" /* yacc.c:1646 */ +#line 3075 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 94: -#line 731 "src/ast-parser.y" /* yacc.c:1646 */ +#line 732 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func) = new Func(); FuncField* field = (yyvsp[0].func_fields); @@ -3124,11 +3126,11 @@ yyreduce: field = next; } } -#line 3128 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3130 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 95: -#line 783 "src/ast-parser.y" /* yacc.c:1646 */ +#line 784 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.exported_func) = new ExportedFunc(); (yyval.exported_func)->func.reset((yyvsp[-1].func)); @@ -3138,11 +3140,11 @@ yyreduce: (yyval.exported_func)->export_ = std::move(*(yyvsp[-3].optional_export)); delete (yyvsp[-3].optional_export); } -#line 3142 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3144 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 96: -#line 793 "src/ast-parser.y" /* yacc.c:1646 */ +#line 794 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.exported_func) = new ExportedFunc(); (yyval.exported_func)->func.reset((yyvsp[-1].func)); @@ -3150,11 +3152,11 @@ yyreduce: (yyval.exported_func)->func->decl.type_var = (yyvsp[-2].var); (yyval.exported_func)->func->name = (yyvsp[-3].text); } -#line 3154 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3156 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 97: -#line 800 "src/ast-parser.y" /* yacc.c:1646 */ +#line 801 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.exported_func) = new ExportedFunc(); (yyval.exported_func)->func.reset((yyvsp[-1].func)); @@ -3162,29 +3164,29 @@ yyreduce: (yyval.exported_func)->export_ = std::move(*(yyvsp[-2].optional_export)); delete (yyvsp[-2].optional_export); } -#line 3166 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3168 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 98: -#line 808 "src/ast-parser.y" /* yacc.c:1646 */ +#line 809 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.exported_func) = new ExportedFunc(); (yyval.exported_func)->func.reset((yyvsp[-1].func)); (yyval.exported_func)->func->name = (yyvsp[-2].text); } -#line 3176 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3178 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 99: -#line 818 "src/ast-parser.y" /* yacc.c:1646 */ +#line 819 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[-1].expr_list); } -#line 3184 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3186 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 101: -#line 825 "src/ast-parser.y" /* yacc.c:1646 */ +#line 826 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.elem_segment) = new ElemSegment(); (yyval.elem_segment)->table_var = (yyvsp[-3].var); @@ -3192,11 +3194,11 @@ yyreduce: (yyval.elem_segment)->vars = std::move(*(yyvsp[-1].vars)); delete (yyvsp[-1].vars); } -#line 3196 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3198 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 102: -#line 832 "src/ast-parser.y" /* yacc.c:1646 */ +#line 833 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.elem_segment) = new ElemSegment(); (yyval.elem_segment)->table_var.loc = (yylsp[-3]); @@ -3206,11 +3208,11 @@ yyreduce: (yyval.elem_segment)->vars = std::move(*(yyvsp[-1].vars)); delete (yyvsp[-1].vars); } -#line 3210 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3212 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 103: -#line 844 "src/ast-parser.y" /* yacc.c:1646 */ +#line 845 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.exported_table) = new ExportedTable(); (yyval.exported_table)->table.reset((yyvsp[-1].table)); @@ -3219,11 +3221,11 @@ yyreduce: (yyval.exported_table)->export_ = std::move(*(yyvsp[-2].optional_export)); delete (yyvsp[-2].optional_export); } -#line 3223 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3225 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 104: -#line 853 "src/ast-parser.y" /* yacc.c:1646 */ +#line 854 "src/ast-parser.y" /* yacc.c:1646 */ { Expr* expr = Expr::CreateConst(Const(Const::I32(), 0)); expr->loc = (yylsp[-8]); @@ -3242,11 +3244,11 @@ yyreduce: (yyval.exported_table)->export_ = std::move(*(yyvsp[-6].optional_export)); delete (yyvsp[-6].optional_export); } -#line 3246 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3248 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 105: -#line 874 "src/ast-parser.y" /* yacc.c:1646 */ +#line 875 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.data_segment) = new DataSegment(); (yyval.data_segment)->memory_var = (yyvsp[-3].var); @@ -3254,11 +3256,11 @@ yyreduce: dup_text_list(&(yyvsp[-1].text_list), &(yyval.data_segment)->data, &(yyval.data_segment)->size); destroy_text_list(&(yyvsp[-1].text_list)); } -#line 3258 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3260 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 106: -#line 881 "src/ast-parser.y" /* yacc.c:1646 */ +#line 882 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.data_segment) = new DataSegment(); (yyval.data_segment)->memory_var.loc = (yylsp[-3]); @@ -3268,11 +3270,11 @@ yyreduce: dup_text_list(&(yyvsp[-1].text_list), &(yyval.data_segment)->data, &(yyval.data_segment)->size); destroy_text_list(&(yyvsp[-1].text_list)); } -#line 3272 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3274 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 107: -#line 893 "src/ast-parser.y" /* yacc.c:1646 */ +#line 894 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.exported_memory) = new ExportedMemory(); (yyval.exported_memory)->memory.reset((yyvsp[-1].memory)); @@ -3281,11 +3283,11 @@ yyreduce: (yyval.exported_memory)->export_ = std::move(*(yyvsp[-2].optional_export)); delete (yyvsp[-2].optional_export); } -#line 3285 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3287 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 108: -#line 901 "src/ast-parser.y" /* yacc.c:1646 */ +#line 902 "src/ast-parser.y" /* yacc.c:1646 */ { Expr* expr = Expr::CreateConst(Const(Const::I32(), 0)); expr->loc = (yylsp[-7]); @@ -3306,11 +3308,11 @@ yyreduce: (yyval.exported_memory)->export_ = std::move(*(yyvsp[-5].optional_export)); delete (yyvsp[-5].optional_export); } -#line 3310 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3312 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 109: -#line 922 "src/ast-parser.y" /* yacc.c:1646 */ +#line 923 "src/ast-parser.y" /* yacc.c:1646 */ { Expr* expr = Expr::CreateConst(Const(Const::I32(), 0)); expr->loc = (yylsp[-6]); @@ -3330,11 +3332,11 @@ yyreduce: (yyval.exported_memory)->memory->page_limits.has_max = true; (yyval.exported_memory)->export_.has_export = false; } -#line 3334 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3336 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 110: -#line 944 "src/ast-parser.y" /* yacc.c:1646 */ +#line 945 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.exported_global) = new ExportedGlobal(); (yyval.exported_global)->global.reset((yyvsp[-2].global)); @@ -3343,11 +3345,11 @@ yyreduce: (yyval.exported_global)->export_ = std::move(*(yyvsp[-3].optional_export)); delete (yyvsp[-3].optional_export); } -#line 3347 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3349 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 111: -#line 952 "src/ast-parser.y" /* yacc.c:1646 */ +#line 953 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.exported_global) = new ExportedGlobal(); (yyval.exported_global)->global.reset((yyvsp[-2].global)); @@ -3355,11 +3357,11 @@ yyreduce: (yyval.exported_global)->global->init_expr = (yyvsp[-1].expr_list).first; (yyval.exported_global)->export_.has_export = false; } -#line 3359 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3361 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 112: -#line 965 "src/ast-parser.y" /* yacc.c:1646 */ +#line 966 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new Import(); (yyval.import)->kind = ExternalKind::Func; @@ -3368,11 +3370,11 @@ yyreduce: (yyval.import)->func->decl.has_func_type = true; (yyval.import)->func->decl.type_var = (yyvsp[-1].var); } -#line 3372 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3374 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 113: -#line 973 "src/ast-parser.y" /* yacc.c:1646 */ +#line 974 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new Import(); (yyval.import)->kind = ExternalKind::Func; @@ -3381,54 +3383,54 @@ yyreduce: (yyval.import)->func->decl.sig = std::move(*(yyvsp[-1].func_sig)); delete (yyvsp[-1].func_sig); } -#line 3385 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3387 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 114: -#line 981 "src/ast-parser.y" /* yacc.c:1646 */ +#line 982 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new Import(); (yyval.import)->kind = ExternalKind::Table; (yyval.import)->table = (yyvsp[-1].table); (yyval.import)->table->name = (yyvsp[-2].text); } -#line 3396 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3398 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 115: -#line 987 "src/ast-parser.y" /* yacc.c:1646 */ +#line 988 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new Import(); (yyval.import)->kind = ExternalKind::Memory; (yyval.import)->memory = (yyvsp[-1].memory); (yyval.import)->memory->name = (yyvsp[-2].text); } -#line 3407 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3409 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 116: -#line 993 "src/ast-parser.y" /* yacc.c:1646 */ +#line 994 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new Import(); (yyval.import)->kind = ExternalKind::Global; (yyval.import)->global = (yyvsp[-1].global); (yyval.import)->global->name = (yyvsp[-2].text); } -#line 3418 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3420 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 117: -#line 1001 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1002 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = (yyvsp[-1].import); (yyval.import)->module_name = (yyvsp[-3].text); (yyval.import)->field_name = (yyvsp[-2].text); } -#line 3428 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3430 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 118: -#line 1006 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1007 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = (yyvsp[-2].import); (yyval.import)->kind = ExternalKind::Func; @@ -3437,11 +3439,11 @@ yyreduce: (yyval.import)->func->decl.has_func_type = true; (yyval.import)->func->decl.type_var = (yyvsp[-1].var); } -#line 3441 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3443 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 119: -#line 1014 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1015 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = (yyvsp[-2].import); (yyval.import)->kind = ExternalKind::Func; @@ -3450,158 +3452,158 @@ yyreduce: (yyval.import)->func->decl.sig = std::move(*(yyvsp[-1].func_sig)); delete (yyvsp[-1].func_sig); } -#line 3454 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3456 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 120: -#line 1022 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1023 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = (yyvsp[-2].import); (yyval.import)->kind = ExternalKind::Table; (yyval.import)->table = (yyvsp[-1].table); (yyval.import)->table->name = (yyvsp[-3].text); } -#line 3465 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3467 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 121: -#line 1028 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1029 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = (yyvsp[-2].import); (yyval.import)->kind = ExternalKind::Memory; (yyval.import)->memory = (yyvsp[-1].memory); (yyval.import)->memory->name = (yyvsp[-3].text); } -#line 3476 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3478 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 122: -#line 1034 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1035 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = (yyvsp[-2].import); (yyval.import)->kind = ExternalKind::Global; (yyval.import)->global = (yyvsp[-1].global); (yyval.import)->global->name = (yyvsp[-3].text); } -#line 3487 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3489 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 123: -#line 1043 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1044 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new Import(); (yyval.import)->module_name = (yyvsp[-2].text); (yyval.import)->field_name = (yyvsp[-1].text); } -#line 3497 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3499 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 124: -#line 1051 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1052 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.export_) = new Export(); (yyval.export_)->kind = ExternalKind::Func; (yyval.export_)->var = (yyvsp[-1].var); } -#line 3507 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3509 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 125: -#line 1056 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1057 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.export_) = new Export(); (yyval.export_)->kind = ExternalKind::Table; (yyval.export_)->var = (yyvsp[-1].var); } -#line 3517 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3519 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 126: -#line 1061 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1062 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.export_) = new Export(); (yyval.export_)->kind = ExternalKind::Memory; (yyval.export_)->var = (yyvsp[-1].var); } -#line 3527 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3529 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 127: -#line 1066 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1067 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.export_) = new Export(); (yyval.export_)->kind = ExternalKind::Global; (yyval.export_)->var = (yyvsp[-1].var); } -#line 3537 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3539 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 128: -#line 1073 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1074 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.export_) = (yyvsp[-1].export_); (yyval.export_)->name = (yyvsp[-2].text); } -#line 3546 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3548 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 129: -#line 1080 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1081 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.optional_export) = new OptionalExport(); (yyval.optional_export)->has_export = false; } -#line 3555 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3557 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 131: -#line 1087 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1088 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.optional_export) = new OptionalExport(); (yyval.optional_export)->has_export = true; (yyval.optional_export)->export_.reset(new Export()); (yyval.optional_export)->export_->name = (yyvsp[-1].text); } -#line 3566 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3568 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 132: -#line 1099 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1100 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_type) = new FuncType(); (yyval.func_type)->sig = std::move(*(yyvsp[-1].func_sig)); delete (yyvsp[-1].func_sig); } -#line 3576 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3578 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 133: -#line 1104 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1105 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.func_type) = new FuncType(); (yyval.func_type)->name = (yyvsp[-2].text); (yyval.func_type)->sig = std::move(*(yyvsp[-1].func_sig)); delete (yyvsp[-1].func_sig); } -#line 3587 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3589 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 134: -#line 1113 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1114 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.var) = (yyvsp[-1].var); } -#line 3593 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3595 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 135: -#line 1117 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1118 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = new Module(); } -#line 3601 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3603 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 136: -#line 1120 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1121 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); ModuleField* field; @@ -3609,11 +3611,11 @@ yyreduce: APPEND_ITEM_TO_VECTOR((yyval.module), func_types, field->func_type); INSERT_BINDING((yyval.module), func_type, func_types, (yylsp[0]), (yyvsp[0].func_type)->name); } -#line 3613 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3615 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 137: -#line 1127 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1128 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); ModuleField* field; @@ -3623,11 +3625,11 @@ yyreduce: APPEND_INLINE_EXPORT((yyval.module), Global, (yylsp[0]), (yyvsp[0].exported_global), (yyval.module)->globals.size() - 1); delete (yyvsp[0].exported_global); } -#line 3627 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3629 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 138: -#line 1136 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1137 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); ModuleField* field; @@ -3645,11 +3647,11 @@ yyreduce: } delete (yyvsp[0].exported_table); } -#line 3649 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3651 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 139: -#line 1153 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1154 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); ModuleField* field; @@ -3667,11 +3669,11 @@ yyreduce: } delete (yyvsp[0].exported_memory); } -#line 3671 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3673 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 140: -#line 1170 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1171 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); ModuleField* field; @@ -3682,44 +3684,44 @@ yyreduce: APPEND_INLINE_EXPORT((yyval.module), Func, (yylsp[0]), (yyvsp[0].exported_func), (yyval.module)->funcs.size() - 1); delete (yyvsp[0].exported_func); } -#line 3686 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3688 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 141: -#line 1180 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1181 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); ModuleField* field; APPEND_FIELD_TO_LIST((yyval.module), field, ElemSegment, elem_segment, (yylsp[0]), (yyvsp[0].elem_segment)); APPEND_ITEM_TO_VECTOR((yyval.module), elem_segments, field->elem_segment); } -#line 3697 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3699 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 142: -#line 1186 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1187 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); ModuleField* field; APPEND_FIELD_TO_LIST((yyval.module), field, DataSegment, data_segment, (yylsp[0]), (yyvsp[0].data_segment)); APPEND_ITEM_TO_VECTOR((yyval.module), data_segments, field->data_segment); } -#line 3708 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3710 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 143: -#line 1192 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1193 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); ModuleField* field; APPEND_FIELD_TO_LIST((yyval.module), field, Start, start, (yylsp[0]), (yyvsp[0].var)); (yyval.module)->start = &field->start; } -#line 3719 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3721 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 144: -#line 1198 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1199 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); ModuleField* field; @@ -3753,11 +3755,11 @@ yyreduce: } APPEND_ITEM_TO_VECTOR((yyval.module), imports, field->import); } -#line 3757 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3759 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 145: -#line 1231 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1232 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); ModuleField* field; @@ -3765,11 +3767,11 @@ yyreduce: APPEND_ITEM_TO_VECTOR((yyval.module), exports, field->export_); INSERT_BINDING((yyval.module), export, exports, (yylsp[0]), field->export_->name); } -#line 3769 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3771 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 146: -#line 1241 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1242 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.raw_module) = new RawModule(); (yyval.raw_module)->type = RawModuleType::Text; @@ -3790,11 +3792,11 @@ yyreduce: } } } -#line 3794 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3796 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 147: -#line 1261 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1262 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.raw_module) = new RawModule(); (yyval.raw_module)->type = RawModuleType::Binary; @@ -3803,11 +3805,11 @@ yyreduce: dup_text_list(&(yyvsp[-1].text_list), &(yyval.raw_module)->binary.data, &(yyval.raw_module)->binary.size); destroy_text_list(&(yyvsp[-1].text_list)); } -#line 3807 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3809 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 148: -#line 1272 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1273 "src/ast-parser.y" /* yacc.c:1646 */ { if ((yyvsp[0].raw_module)->type == RawModuleType::Text) { (yyval.module) = (yyvsp[0].raw_module)->text; @@ -3831,31 +3833,31 @@ yyreduce: } delete (yyvsp[0].raw_module); } -#line 3835 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3837 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 149: -#line 1300 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1301 "src/ast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.var)); (yyval.var).type = VarType::Index; (yyval.var).index = INVALID_VAR_INDEX; } -#line 3845 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3847 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 150: -#line 1305 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1306 "src/ast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.var)); (yyval.var).type = VarType::Name; DUPTEXT((yyval.var).name, (yyvsp[0].text)); } -#line 3855 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3857 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 151: -#line 1313 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1314 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.action) = new Action(); (yyval.action)->loc = (yylsp[-4]); @@ -3866,11 +3868,11 @@ yyreduce: (yyval.action)->invoke->args = std::move(*(yyvsp[-1].consts)); delete (yyvsp[-1].consts); } -#line 3870 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3872 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 152: -#line 1323 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1324 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.action) = new Action(); (yyval.action)->loc = (yylsp[-3]); @@ -3878,118 +3880,128 @@ yyreduce: (yyval.action)->type = ActionType::Get; (yyval.action)->name = (yyvsp[-1].text); } -#line 3882 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3884 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 153: -#line 1333 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1334 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::AssertMalformed; (yyval.command)->assert_malformed.module = (yyvsp[-2].raw_module); (yyval.command)->assert_malformed.text = (yyvsp[-1].text); } -#line 3893 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3895 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 154: -#line 1339 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1340 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::AssertInvalid; (yyval.command)->assert_invalid.module = (yyvsp[-2].raw_module); (yyval.command)->assert_invalid.text = (yyvsp[-1].text); } -#line 3904 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3906 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 155: -#line 1345 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1346 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::AssertUnlinkable; (yyval.command)->assert_unlinkable.module = (yyvsp[-2].raw_module); (yyval.command)->assert_unlinkable.text = (yyvsp[-1].text); } -#line 3915 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3917 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 156: -#line 1351 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1352 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::AssertUninstantiable; (yyval.command)->assert_uninstantiable.module = (yyvsp[-2].raw_module); (yyval.command)->assert_uninstantiable.text = (yyvsp[-1].text); } -#line 3926 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3928 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 157: -#line 1357 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1358 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::AssertReturn; (yyval.command)->assert_return.action = (yyvsp[-2].action); (yyval.command)->assert_return.expected = (yyvsp[-1].consts); } -#line 3937 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3939 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 158: -#line 1363 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1364 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); - (yyval.command)->type = CommandType::AssertReturnNan; - (yyval.command)->assert_return_nan.action = (yyvsp[-1].action); + (yyval.command)->type = CommandType::AssertReturnCanonicalNan; + (yyval.command)->assert_return_canonical_nan.action = (yyvsp[-1].action); } -#line 3947 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3949 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; case 159: -#line 1368 "src/ast-parser.y" /* yacc.c:1646 */ +#line 1369 "src/ast-parser.y" /* yacc.c:1646 */ + { + (yyval.command) = new Command(); + (yyval.command)->type = CommandType::AssertReturnArithmeticNan; + (yyval.command)->assert_return_arithmetic_nan.action = (yyvsp[-1].action); + } +#line 3959 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ + break; + + case 160: +#line 1374 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::AssertTrap; (yyval.command)->assert_trap.action = (yyvsp[-2].action); (yyval.command)->assert_trap.text = (yyvsp[-1].text); } -#line 3958 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3970 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; - case 160: -#line 1374 "src/ast-parser.y" /* yacc.c:1646 */ + case 161: +#line 1380 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::AssertExhaustion; (yyval.command)->assert_trap.action = (yyvsp[-2].action); (yyval.command)->assert_trap.text = (yyvsp[-1].text); } -#line 3969 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3981 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; - case 161: -#line 1383 "src/ast-parser.y" /* yacc.c:1646 */ + case 162: +#line 1389 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::Action; (yyval.command)->action = (yyvsp[0].action); } -#line 3979 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 3991 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; - case 163: -#line 1389 "src/ast-parser.y" /* yacc.c:1646 */ + case 164: +#line 1395 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::Module; (yyval.command)->module = (yyvsp[0].module); } -#line 3989 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 4001 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; - case 164: -#line 1394 "src/ast-parser.y" /* yacc.c:1646 */ + case 165: +#line 1400 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::Register; @@ -3997,26 +4009,26 @@ yyreduce: (yyval.command)->register_.var = (yyvsp[-1].var); (yyval.command)->register_.var.loc = (yylsp[-1]); } -#line 4001 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 4013 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; - case 165: -#line 1403 "src/ast-parser.y" /* yacc.c:1646 */ + case 166: +#line 1409 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.commands) = new CommandPtrVector(); } -#line 4007 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 4019 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; - case 166: -#line 1404 "src/ast-parser.y" /* yacc.c:1646 */ + case 167: +#line 1410 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.commands) = (yyvsp[-1].commands); (yyval.commands)->emplace_back((yyvsp[0].command)); } -#line 4016 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 4028 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; - case 167: -#line 1411 "src/ast-parser.y" /* yacc.c:1646 */ + case 168: +#line 1417 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.const_).loc = (yylsp[-2]); if (WABT_FAILED(parse_const((yyvsp[-2].type), (yyvsp[-1].literal).type, (yyvsp[-1].literal).text.start, @@ -4027,26 +4039,26 @@ yyreduce: } delete [] (yyvsp[-1].literal).text.start; } -#line 4031 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 4043 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; - case 168: -#line 1423 "src/ast-parser.y" /* yacc.c:1646 */ + case 169: +#line 1429 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.consts) = new ConstVector(); } -#line 4037 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 4049 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; - case 169: -#line 1424 "src/ast-parser.y" /* yacc.c:1646 */ + case 170: +#line 1430 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.consts) = (yyvsp[-1].consts); (yyval.consts)->push_back((yyvsp[0].const_)); } -#line 4046 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 4058 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; - case 170: -#line 1431 "src/ast-parser.y" /* yacc.c:1646 */ + case 171: +#line 1437 "src/ast-parser.y" /* yacc.c:1646 */ { (yyval.script) = new Script(); (yyval.script)->commands = std::move(*(yyvsp[0].commands)); @@ -4073,8 +4085,13 @@ yyreduce: case CommandType::AssertReturn: module_var = &command.assert_return.action->module_var; goto has_module_var; - case CommandType::AssertReturnNan: - module_var = &command.assert_return_nan.action->module_var; + case CommandType::AssertReturnCanonicalNan: + module_var = + &command.assert_return_canonical_nan.action->module_var; + goto has_module_var; + case CommandType::AssertReturnArithmeticNan: + module_var = + &command.assert_return_arithmetic_nan.action->module_var; goto has_module_var; case CommandType::AssertTrap: case CommandType::AssertExhaustion: @@ -4103,11 +4120,11 @@ yyreduce: } parser->script = (yyval.script); } -#line 4107 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 4124 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ break; -#line 4111 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ +#line 4128 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4342,7 +4359,7 @@ yyreturn: #endif return yyresult; } -#line 1495 "src/ast-parser.y" /* yacc.c:1906 */ +#line 1506 "src/ast-parser.y" /* yacc.c:1906 */ void append_expr_list(ExprList* expr_list, ExprList* expr) { diff --git a/src/prebuilt/ast-parser-gen.hh b/src/prebuilt/ast-parser-gen.hh index 1d4117b2..53b5e4e3 100644 --- a/src/prebuilt/ast-parser-gen.hh +++ b/src/prebuilt/ast-parser-gen.hh @@ -119,12 +119,13 @@ extern int wabt_ast_parser_debug; WABT_TOKEN_TYPE_ASSERT_INVALID = 320, WABT_TOKEN_TYPE_ASSERT_UNLINKABLE = 321, WABT_TOKEN_TYPE_ASSERT_RETURN = 322, - WABT_TOKEN_TYPE_ASSERT_RETURN_NAN = 323, - WABT_TOKEN_TYPE_ASSERT_TRAP = 324, - WABT_TOKEN_TYPE_ASSERT_EXHAUSTION = 325, - WABT_TOKEN_TYPE_INPUT = 326, - WABT_TOKEN_TYPE_OUTPUT = 327, - WABT_TOKEN_TYPE_LOW = 328 + WABT_TOKEN_TYPE_ASSERT_RETURN_CANONICAL_NAN = 323, + WABT_TOKEN_TYPE_ASSERT_RETURN_ARITHMETIC_NAN = 324, + WABT_TOKEN_TYPE_ASSERT_TRAP = 325, + WABT_TOKEN_TYPE_ASSERT_EXHAUSTION = 326, + WABT_TOKEN_TYPE_INPUT = 327, + WABT_TOKEN_TYPE_OUTPUT = 328, + WABT_TOKEN_TYPE_LOW = 329 }; #endif diff --git a/src/prebuilt/ast-parser-gen.output b/src/prebuilt/ast-parser-gen.output index 7d0a0aad..371633b3 100644 --- a/src/prebuilt/ast-parser-gen.output +++ b/src/prebuilt/ast-parser-gen.output @@ -220,26 +220,27 @@ Grammar 154 | "(" ASSERT_UNLINKABLE raw_module quoted_text ")" 155 | "(" ASSERT_TRAP raw_module quoted_text ")" 156 | "(" ASSERT_RETURN action const_list ")" - 157 | "(" ASSERT_RETURN_NAN action ")" - 158 | "(" ASSERT_TRAP action quoted_text ")" - 159 | "(" ASSERT_EXHAUSTION action quoted_text ")" + 157 | "(" ASSERT_RETURN_CANONICAL_NAN action ")" + 158 | "(" ASSERT_RETURN_ARITHMETIC_NAN action ")" + 159 | "(" ASSERT_TRAP action quoted_text ")" + 160 | "(" ASSERT_EXHAUSTION action quoted_text ")" - 160 cmd: action - 161 | assertion - 162 | module - 163 | "(" REGISTER quoted_text script_var_opt ")" + 161 cmd: action + 162 | assertion + 163 | module + 164 | "(" REGISTER quoted_text script_var_opt ")" - 164 cmd_list: %empty - 165 | cmd_list cmd + 165 cmd_list: %empty + 166 | cmd_list cmd - 166 const: "(" CONST literal ")" + 167 const: "(" CONST literal ")" - 167 const_list: %empty - 168 | const_list const + 168 const_list: %empty + 169 | const_list const - 169 script: cmd_list + 170 script: cmd_list - 170 script_start: script + 171 script_start: script Terminals, with rules where they appear @@ -249,11 +250,11 @@ error (256) "(" (258) 10 11 13 14 15 20 70 75 76 77 78 87 88 89 91 92 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 130 131 132 - 133 145 146 150 151 152 153 154 155 156 157 158 159 163 166 + 133 145 146 150 151 152 153 154 155 156 157 158 159 160 164 167 ")" (259) 10 11 13 14 15 20 70 75 76 77 78 87 88 89 91 92 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 130 131 132 - 133 145 146 150 151 152 153 154 155 156 157 158 159 163 166 + 133 145 146 150 151 152 153 154 155 156 157 158 159 160 164 167 NAT (260) 21 22 INT (261) 23 FLOAT (262) 24 @@ -286,7 +287,7 @@ LOAD (288) 56 STORE (289) 57 OFFSET_EQ_NAT (290) 35 ALIGN_EQ_NAT (291) 37 -CONST (292) 58 166 +CONST (292) 58 167 UNARY (293) 59 BINARY (294) 60 COMPARE (295) 61 @@ -310,161 +311,162 @@ DATA (312) 104 105 107 108 OFFSET (313) 98 IMPORT (314) 116 122 EXPORT (315) 127 130 -REGISTER (316) 163 +REGISTER (316) 164 INVOKE (317) 150 GET (318) 151 ASSERT_MALFORMED (319) 152 ASSERT_INVALID (320) 153 ASSERT_UNLINKABLE (321) 154 ASSERT_RETURN (322) 156 -ASSERT_RETURN_NAN (323) 157 -ASSERT_TRAP (324) 155 158 -ASSERT_EXHAUSTION (325) 159 -INPUT (326) -OUTPUT (327) -LOW (328) +ASSERT_RETURN_CANONICAL_NAN (323) 157 +ASSERT_RETURN_ARITHMETIC_NAN (324) 158 +ASSERT_TRAP (325) 155 159 +ASSERT_EXHAUSTION (326) 160 +INPUT (327) +OUTPUT (328) +LOW (329) Nonterminals, with rules where they appear -$accept (74) +$accept (75) on left: 0 -non_empty_text_list (75) +non_empty_text_list (76) on left: 1 2, on right: 2 4 146 -text_list (76) +text_list (77) on left: 3 4, on right: 104 105 107 108 -quoted_text (77) - on left: 5, on right: 116 122 127 130 150 151 152 153 154 155 158 - 159 163 -value_type_list (78) +quoted_text (78) + on left: 5, on right: 116 122 127 130 150 151 152 153 154 155 159 + 160 164 +value_type_list (79) on left: 6 7, on right: 7 13 14 15 69 74 87 88 91 -elem_type (79) +elem_type (80) on left: 8, on right: 16 103 -global_type (80) +global_type (81) on left: 9 10, on right: 109 110 115 121 -func_type (81) +func_type (82) on left: 11, on right: 131 132 -func_sig (82) +func_sig (83) on left: 12 13 14 15, on right: 11 112 118 -table_sig (83) +table_sig (84) on left: 16, on right: 102 113 119 -memory_sig (84) +memory_sig (85) on left: 17, on right: 106 114 120 -limits (85) +limits (86) on left: 18 19, on right: 16 17 -type_use (86) +type_use (87) on left: 20, on right: 94 95 111 117 -nat (87) +nat (88) on left: 21, on right: 18 19 25 -literal (88) - on left: 22 23 24, on right: 58 166 -var (89) +literal (89) + on left: 22 23 24, on right: 58 167 +var (90) on left: 25 26, on right: 20 28 45 46 47 49 50 51 52 53 54 55 100 104 123 124 125 126 133 -var_list (90) +var_list (91) on left: 27 28, on right: 28 47 100 101 103 -bind_var_opt (91) +bind_var_opt (92) on left: 29 30, on right: 94 95 96 97 102 103 106 107 108 109 110 111 112 113 114 115 117 118 119 120 121 145 146 -bind_var (92) +bind_var (93) on left: 31, on right: 30 33 89 92 132 -labeling_opt (93) +labeling_opt (94) on left: 32 33, on right: 65 66 67 68 72 73 74 -offset_opt (94) +offset_opt (95) on left: 34 35, on right: 56 57 -align_opt (95) +align_opt (96) on left: 36 37, on right: 56 57 -instr (96) +instr (97) on left: 38 39 40, on right: 82 -plain_instr (97) +plain_instr (98) on left: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64, on right: 38 71 -block_instr (98) +block_instr (99) on left: 65 66 67 68, on right: 39 -block (99) +block (100) on left: 69, on right: 65 66 67 68 72 73 -expr (100) +expr (101) on left: 70, on right: 40 77 78 79 80 84 99 -expr1 (101) +expr1 (102) on left: 71 72 73 74, on right: 70 -if_ (102) +if_ (103) on left: 75 76 77 78 79 80, on right: 74 -instr_list (103) +instr_list (104) on left: 81 82, on right: 68 69 75 76 77 78 82 85 90 -expr_list (104) +expr_list (105) on left: 83 84, on right: 71 84 -const_expr (105) +const_expr (106) on left: 85, on right: 98 109 110 -func_fields (106) +func_fields (107) on left: 86 87 88 89, on right: 88 89 93 -func_body (107) +func_body (108) on left: 90 91 92, on right: 86 87 91 92 -func_info (108) +func_info (109) on left: 93, on right: 94 95 96 97 -func (109) +func (110) on left: 94 95 96 97, on right: 139 -offset (110) +offset (111) on left: 98 99, on right: 100 101 104 105 -elem (111) +elem (112) on left: 100 101, on right: 140 -table (112) +table (113) on left: 102 103, on right: 137 -data (113) +data (114) on left: 104 105, on right: 141 -memory (114) +memory (115) on left: 106 107 108, on right: 138 -global (115) +global (116) on left: 109 110, on right: 136 -import_kind (116) +import_kind (117) on left: 111 112 113 114 115, on right: 116 -import (117) +import (118) on left: 116 117 118 119 120 121, on right: 143 -inline_import (118) +inline_import (119) on left: 122, on right: 117 118 119 120 121 -export_kind (119) +export_kind (120) on left: 123 124 125 126, on right: 127 -export (120) +export (121) on left: 127, on right: 144 -inline_export_opt (121) +inline_export_opt (122) on left: 128 129, on right: 102 103 106 -inline_export (122) +inline_export (123) on left: 130, on right: 94 96 107 109 129 -type_def (123) +type_def (124) on left: 131 132, on right: 135 -start (124) +start (125) on left: 133, on right: 142 -module_fields (125) +module_fields (126) on left: 134 135 136 137 138 139 140 141 142 143 144, on right: 135 136 137 138 139 140 141 142 143 144 145 -raw_module (126) +raw_module (127) on left: 145 146, on right: 147 152 153 154 155 -module (127) - on left: 147, on right: 162 -script_var_opt (128) - on left: 148 149, on right: 150 151 163 -action (129) - on left: 150 151, on right: 156 157 158 159 160 -assertion (130) - on left: 152 153 154 155 156 157 158 159, on right: 161 -cmd (131) - on left: 160 161 162 163, on right: 165 -cmd_list (132) - on left: 164 165, on right: 165 169 -const (133) - on left: 166, on right: 168 -const_list (134) - on left: 167 168, on right: 150 156 168 -script (135) - on left: 169, on right: 170 -script_start (136) - on left: 170, on right: 0 +module (128) + on left: 147, on right: 163 +script_var_opt (129) + on left: 148 149, on right: 150 151 164 +action (130) + on left: 150 151, on right: 156 157 158 159 160 161 +assertion (131) + on left: 152 153 154 155 156 157 158 159 160, on right: 162 +cmd (132) + on left: 161 162 163 164, on right: 166 +cmd_list (133) + on left: 165 166, on right: 166 170 +const (134) + on left: 167, on right: 169 +const_list (135) + on left: 168 169, on right: 150 156 169 +script (136) + on left: 170, on right: 171 +script_start (137) + on left: 171, on right: 0 State 0 0 $accept: . script_start "EOF" - $default reduce using rule 164 (cmd_list) + $default reduce using rule 165 (cmd_list) cmd_list go to state 1 script go to state 2 @@ -473,12 +475,12 @@ State 0 State 1 - 165 cmd_list: cmd_list . cmd - 169 script: cmd_list . + 166 cmd_list: cmd_list . cmd + 170 script: cmd_list . "(" shift, and go to state 4 - $default reduce using rule 169 (script) + $default reduce using rule 170 (script) raw_module go to state 5 module go to state 6 @@ -489,9 +491,9 @@ State 1 State 2 - 170 script_start: script . + 171 script_start: script . - $default reduce using rule 170 (script_start) + $default reduce using rule 171 (script_start) State 3 @@ -512,22 +514,24 @@ State 4 154 | "(" . ASSERT_UNLINKABLE raw_module quoted_text ")" 155 | "(" . ASSERT_TRAP raw_module quoted_text ")" 156 | "(" . ASSERT_RETURN action const_list ")" - 157 | "(" . ASSERT_RETURN_NAN action ")" - 158 | "(" . ASSERT_TRAP action quoted_text ")" - 159 | "(" . ASSERT_EXHAUSTION action quoted_text ")" - 163 cmd: "(" . REGISTER quoted_text script_var_opt ")" - - MODULE shift, and go to state 11 - REGISTER shift, and go to state 12 - INVOKE shift, and go to state 13 - GET shift, and go to state 14 - ASSERT_MALFORMED shift, and go to state 15 - ASSERT_INVALID shift, and go to state 16 - ASSERT_UNLINKABLE shift, and go to state 17 - ASSERT_RETURN shift, and go to state 18 - ASSERT_RETURN_NAN shift, and go to state 19 - ASSERT_TRAP shift, and go to state 20 - ASSERT_EXHAUSTION shift, and go to state 21 + 157 | "(" . ASSERT_RETURN_CANONICAL_NAN action ")" + 158 | "(" . ASSERT_RETURN_ARITHMETIC_NAN action ")" + 159 | "(" . ASSERT_TRAP action quoted_text ")" + 160 | "(" . ASSERT_EXHAUSTION action quoted_text ")" + 164 cmd: "(" . REGISTER quoted_text script_var_opt ")" + + MODULE shift, and go to state 11 + REGISTER shift, and go to state 12 + INVOKE shift, and go to state 13 + GET shift, and go to state 14 + ASSERT_MALFORMED shift, and go to state 15 + ASSERT_INVALID shift, and go to state 16 + ASSERT_UNLINKABLE shift, and go to state 17 + ASSERT_RETURN shift, and go to state 18 + ASSERT_RETURN_CANONICAL_NAN shift, and go to state 19 + ASSERT_RETURN_ARITHMETIC_NAN shift, and go to state 20 + ASSERT_TRAP shift, and go to state 21 + ASSERT_EXHAUSTION shift, and go to state 22 State 5 @@ -539,30 +543,30 @@ State 5 State 6 - 162 cmd: module . + 163 cmd: module . - $default reduce using rule 162 (cmd) + $default reduce using rule 163 (cmd) State 7 - 160 cmd: action . + 161 cmd: action . - $default reduce using rule 160 (cmd) + $default reduce using rule 161 (cmd) State 8 - 161 cmd: assertion . + 162 cmd: assertion . - $default reduce using rule 161 (cmd) + $default reduce using rule 162 (cmd) State 9 - 165 cmd_list: cmd_list cmd . + 166 cmd_list: cmd_list cmd . - $default reduce using rule 165 (cmd_list) + $default reduce using rule 166 (cmd_list) State 10 @@ -577,181 +581,190 @@ State 11 145 raw_module: "(" MODULE . bind_var_opt module_fields ")" 146 | "(" MODULE . bind_var_opt non_empty_text_list ")" - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 29 (bind_var_opt) - bind_var_opt go to state 23 - bind_var go to state 24 + bind_var_opt go to state 24 + bind_var go to state 25 State 12 - 163 cmd: "(" REGISTER . quoted_text script_var_opt ")" + 164 cmd: "(" REGISTER . quoted_text script_var_opt ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 26 + quoted_text go to state 27 State 13 150 action: "(" INVOKE . script_var_opt quoted_text const_list ")" - VAR shift, and go to state 27 + VAR shift, and go to state 28 $default reduce using rule 148 (script_var_opt) - script_var_opt go to state 28 + script_var_opt go to state 29 State 14 151 action: "(" GET . script_var_opt quoted_text ")" - VAR shift, and go to state 27 + VAR shift, and go to state 28 $default reduce using rule 148 (script_var_opt) - script_var_opt go to state 29 + script_var_opt go to state 30 State 15 152 assertion: "(" ASSERT_MALFORMED . raw_module quoted_text ")" - "(" shift, and go to state 30 + "(" shift, and go to state 31 - raw_module go to state 31 + raw_module go to state 32 State 16 153 assertion: "(" ASSERT_INVALID . raw_module quoted_text ")" - "(" shift, and go to state 30 + "(" shift, and go to state 31 - raw_module go to state 32 + raw_module go to state 33 State 17 154 assertion: "(" ASSERT_UNLINKABLE . raw_module quoted_text ")" - "(" shift, and go to state 30 + "(" shift, and go to state 31 - raw_module go to state 33 + raw_module go to state 34 State 18 156 assertion: "(" ASSERT_RETURN . action const_list ")" - "(" shift, and go to state 34 + "(" shift, and go to state 35 - action go to state 35 + action go to state 36 State 19 - 157 assertion: "(" ASSERT_RETURN_NAN . action ")" + 157 assertion: "(" ASSERT_RETURN_CANONICAL_NAN . action ")" - "(" shift, and go to state 34 + "(" shift, and go to state 35 - action go to state 36 + action go to state 37 State 20 - 155 assertion: "(" ASSERT_TRAP . raw_module quoted_text ")" - 158 | "(" ASSERT_TRAP . action quoted_text ")" + 158 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN . action ")" - "(" shift, and go to state 37 + "(" shift, and go to state 35 - raw_module go to state 38 - action go to state 39 + action go to state 38 State 21 - 159 assertion: "(" ASSERT_EXHAUSTION . action quoted_text ")" + 155 assertion: "(" ASSERT_TRAP . raw_module quoted_text ")" + 159 | "(" ASSERT_TRAP . action quoted_text ")" - "(" shift, and go to state 34 + "(" shift, and go to state 39 - action go to state 40 + raw_module go to state 40 + action go to state 41 State 22 + 160 assertion: "(" ASSERT_EXHAUSTION . action quoted_text ")" + + "(" shift, and go to state 35 + + action go to state 42 + + +State 23 + 31 bind_var: VAR . $default reduce using rule 31 (bind_var) -State 23 +State 24 145 raw_module: "(" MODULE bind_var_opt . module_fields ")" 146 | "(" MODULE bind_var_opt . non_empty_text_list ")" - TEXT shift, and go to state 41 + TEXT shift, and go to state 43 $default reduce using rule 134 (module_fields) - non_empty_text_list go to state 42 - module_fields go to state 43 + non_empty_text_list go to state 44 + module_fields go to state 45 -State 24 +State 25 30 bind_var_opt: bind_var . $default reduce using rule 30 (bind_var_opt) -State 25 +State 26 5 quoted_text: TEXT . $default reduce using rule 5 (quoted_text) -State 26 +State 27 - 163 cmd: "(" REGISTER quoted_text . script_var_opt ")" + 164 cmd: "(" REGISTER quoted_text . script_var_opt ")" - VAR shift, and go to state 27 + VAR shift, and go to state 28 $default reduce using rule 148 (script_var_opt) - script_var_opt go to state 44 + script_var_opt go to state 46 -State 27 +State 28 149 script_var_opt: VAR . $default reduce using rule 149 (script_var_opt) -State 28 +State 29 150 action: "(" INVOKE script_var_opt . quoted_text const_list ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 45 + quoted_text go to state 47 -State 29 +State 30 151 action: "(" GET script_var_opt . quoted_text ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 46 + quoted_text go to state 48 -State 30 +State 31 145 raw_module: "(" . MODULE bind_var_opt module_fields ")" 146 | "(" . MODULE bind_var_opt non_empty_text_list ")" @@ -759,34 +772,34 @@ State 30 MODULE shift, and go to state 11 -State 31 +State 32 152 assertion: "(" ASSERT_MALFORMED raw_module . quoted_text ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 47 + quoted_text go to state 49 -State 32 +State 33 153 assertion: "(" ASSERT_INVALID raw_module . quoted_text ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 48 + quoted_text go to state 50 -State 33 +State 34 154 assertion: "(" ASSERT_UNLINKABLE raw_module . quoted_text ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 49 + quoted_text go to state 51 -State 34 +State 35 150 action: "(" . INVOKE script_var_opt quoted_text const_list ")" 151 | "(" . GET script_var_opt quoted_text ")" @@ -795,23 +808,30 @@ State 34 GET shift, and go to state 14 -State 35 +State 36 156 assertion: "(" ASSERT_RETURN action . const_list ")" - $default reduce using rule 167 (const_list) + $default reduce using rule 168 (const_list) - const_list go to state 50 + const_list go to state 52 -State 36 +State 37 - 157 assertion: "(" ASSERT_RETURN_NAN action . ")" + 157 assertion: "(" ASSERT_RETURN_CANONICAL_NAN action . ")" - ")" shift, and go to state 51 + ")" shift, and go to state 53 -State 37 +State 38 + + 158 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN action . ")" + + ")" shift, and go to state 54 + + +State 39 145 raw_module: "(" . MODULE bind_var_opt module_fields ")" 146 | "(" . MODULE bind_var_opt non_empty_text_list ")" @@ -823,50 +843,50 @@ State 37 GET shift, and go to state 14 -State 38 +State 40 155 assertion: "(" ASSERT_TRAP raw_module . quoted_text ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 52 + quoted_text go to state 55 -State 39 +State 41 - 158 assertion: "(" ASSERT_TRAP action . quoted_text ")" + 159 assertion: "(" ASSERT_TRAP action . quoted_text ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 53 + quoted_text go to state 56 -State 40 +State 42 - 159 assertion: "(" ASSERT_EXHAUSTION action . quoted_text ")" + 160 assertion: "(" ASSERT_EXHAUSTION action . quoted_text ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 54 + quoted_text go to state 57 -State 41 +State 43 1 non_empty_text_list: TEXT . $default reduce using rule 1 (non_empty_text_list) -State 42 +State 44 2 non_empty_text_list: non_empty_text_list . TEXT 146 raw_module: "(" MODULE bind_var_opt non_empty_text_list . ")" - ")" shift, and go to state 55 - TEXT shift, and go to state 56 + ")" shift, and go to state 58 + TEXT shift, and go to state 59 -State 43 +State 45 135 module_fields: module_fields . type_def 136 | module_fields . global @@ -880,119 +900,126 @@ State 43 144 | module_fields . export 145 raw_module: "(" MODULE bind_var_opt module_fields . ")" - "(" shift, and go to state 57 - ")" shift, and go to state 58 + "(" shift, and go to state 60 + ")" shift, and go to state 61 - func go to state 59 - elem go to state 60 - table go to state 61 - data go to state 62 - memory go to state 63 - global go to state 64 - import go to state 65 - export go to state 66 - type_def go to state 67 - start go to state 68 + func go to state 62 + elem go to state 63 + table go to state 64 + data go to state 65 + memory go to state 66 + global go to state 67 + import go to state 68 + export go to state 69 + type_def go to state 70 + start go to state 71 -State 44 +State 46 - 163 cmd: "(" REGISTER quoted_text script_var_opt . ")" + 164 cmd: "(" REGISTER quoted_text script_var_opt . ")" - ")" shift, and go to state 69 + ")" shift, and go to state 72 -State 45 +State 47 150 action: "(" INVOKE script_var_opt quoted_text . const_list ")" - $default reduce using rule 167 (const_list) + $default reduce using rule 168 (const_list) - const_list go to state 70 + const_list go to state 73 -State 46 +State 48 151 action: "(" GET script_var_opt quoted_text . ")" - ")" shift, and go to state 71 + ")" shift, and go to state 74 -State 47 +State 49 152 assertion: "(" ASSERT_MALFORMED raw_module quoted_text . ")" - ")" shift, and go to state 72 + ")" shift, and go to state 75 -State 48 +State 50 153 assertion: "(" ASSERT_INVALID raw_module quoted_text . ")" - ")" shift, and go to state 73 + ")" shift, and go to state 76 -State 49 +State 51 154 assertion: "(" ASSERT_UNLINKABLE raw_module quoted_text . ")" - ")" shift, and go to state 74 + ")" shift, and go to state 77 -State 50 +State 52 156 assertion: "(" ASSERT_RETURN action const_list . ")" - 168 const_list: const_list . const + 169 const_list: const_list . const - "(" shift, and go to state 75 - ")" shift, and go to state 76 + "(" shift, and go to state 78 + ")" shift, and go to state 79 - const go to state 77 + const go to state 80 -State 51 +State 53 - 157 assertion: "(" ASSERT_RETURN_NAN action ")" . + 157 assertion: "(" ASSERT_RETURN_CANONICAL_NAN action ")" . $default reduce using rule 157 (assertion) -State 52 +State 54 + + 158 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN action ")" . + + $default reduce using rule 158 (assertion) + + +State 55 155 assertion: "(" ASSERT_TRAP raw_module quoted_text . ")" - ")" shift, and go to state 78 + ")" shift, and go to state 81 -State 53 +State 56 - 158 assertion: "(" ASSERT_TRAP action quoted_text . ")" + 159 assertion: "(" ASSERT_TRAP action quoted_text . ")" - ")" shift, and go to state 79 + ")" shift, and go to state 82 -State 54 +State 57 - 159 assertion: "(" ASSERT_EXHAUSTION action quoted_text . ")" + 160 assertion: "(" ASSERT_EXHAUSTION action quoted_text . ")" - ")" shift, and go to state 80 + ")" shift, and go to state 83 -State 55 +State 58 146 raw_module: "(" MODULE bind_var_opt non_empty_text_list ")" . $default reduce using rule 146 (raw_module) -State 56 +State 59 2 non_empty_text_list: non_empty_text_list TEXT . $default reduce using rule 2 (non_empty_text_list) -State 57 +State 60 94 func: "(" . FUNC bind_var_opt inline_export type_use func_info ")" 95 | "(" . FUNC bind_var_opt type_use func_info ")" @@ -1020,184 +1047,184 @@ State 57 132 | "(" . TYPE bind_var func_type ")" 133 start: "(" . START var ")" - FUNC shift, and go to state 81 - START shift, and go to state 82 - TYPE shift, and go to state 83 - GLOBAL shift, and go to state 84 - TABLE shift, and go to state 85 - ELEM shift, and go to state 86 - MEMORY shift, and go to state 87 - DATA shift, and go to state 88 - IMPORT shift, and go to state 89 - EXPORT shift, and go to state 90 + FUNC shift, and go to state 84 + START shift, and go to state 85 + TYPE shift, and go to state 86 + GLOBAL shift, and go to state 87 + TABLE shift, and go to state 88 + ELEM shift, and go to state 89 + MEMORY shift, and go to state 90 + DATA shift, and go to state 91 + IMPORT shift, and go to state 92 + EXPORT shift, and go to state 93 -State 58 +State 61 145 raw_module: "(" MODULE bind_var_opt module_fields ")" . $default reduce using rule 145 (raw_module) -State 59 +State 62 139 module_fields: module_fields func . $default reduce using rule 139 (module_fields) -State 60 +State 63 140 module_fields: module_fields elem . $default reduce using rule 140 (module_fields) -State 61 +State 64 137 module_fields: module_fields table . $default reduce using rule 137 (module_fields) -State 62 +State 65 141 module_fields: module_fields data . $default reduce using rule 141 (module_fields) -State 63 +State 66 138 module_fields: module_fields memory . $default reduce using rule 138 (module_fields) -State 64 +State 67 136 module_fields: module_fields global . $default reduce using rule 136 (module_fields) -State 65 +State 68 143 module_fields: module_fields import . $default reduce using rule 143 (module_fields) -State 66 +State 69 144 module_fields: module_fields export . $default reduce using rule 144 (module_fields) -State 67 +State 70 135 module_fields: module_fields type_def . $default reduce using rule 135 (module_fields) -State 68 +State 71 142 module_fields: module_fields start . $default reduce using rule 142 (module_fields) -State 69 +State 72 - 163 cmd: "(" REGISTER quoted_text script_var_opt ")" . + 164 cmd: "(" REGISTER quoted_text script_var_opt ")" . - $default reduce using rule 163 (cmd) + $default reduce using rule 164 (cmd) -State 70 +State 73 150 action: "(" INVOKE script_var_opt quoted_text const_list . ")" - 168 const_list: const_list . const + 169 const_list: const_list . const - "(" shift, and go to state 75 - ")" shift, and go to state 91 + "(" shift, and go to state 78 + ")" shift, and go to state 94 - const go to state 77 + const go to state 80 -State 71 +State 74 151 action: "(" GET script_var_opt quoted_text ")" . $default reduce using rule 151 (action) -State 72 +State 75 152 assertion: "(" ASSERT_MALFORMED raw_module quoted_text ")" . $default reduce using rule 152 (assertion) -State 73 +State 76 153 assertion: "(" ASSERT_INVALID raw_module quoted_text ")" . $default reduce using rule 153 (assertion) -State 74 +State 77 154 assertion: "(" ASSERT_UNLINKABLE raw_module quoted_text ")" . $default reduce using rule 154 (assertion) -State 75 +State 78 - 166 const: "(" . CONST literal ")" + 167 const: "(" . CONST literal ")" - CONST shift, and go to state 92 + CONST shift, and go to state 95 -State 76 +State 79 156 assertion: "(" ASSERT_RETURN action const_list ")" . $default reduce using rule 156 (assertion) -State 77 +State 80 - 168 const_list: const_list const . + 169 const_list: const_list const . - $default reduce using rule 168 (const_list) + $default reduce using rule 169 (const_list) -State 78 +State 81 155 assertion: "(" ASSERT_TRAP raw_module quoted_text ")" . $default reduce using rule 155 (assertion) -State 79 +State 82 - 158 assertion: "(" ASSERT_TRAP action quoted_text ")" . + 159 assertion: "(" ASSERT_TRAP action quoted_text ")" . - $default reduce using rule 158 (assertion) + $default reduce using rule 159 (assertion) -State 80 +State 83 - 159 assertion: "(" ASSERT_EXHAUSTION action quoted_text ")" . + 160 assertion: "(" ASSERT_EXHAUSTION action quoted_text ")" . - $default reduce using rule 159 (assertion) + $default reduce using rule 160 (assertion) -State 81 +State 84 94 func: "(" FUNC . bind_var_opt inline_export type_use func_info ")" 95 | "(" FUNC . bind_var_opt type_use func_info ")" @@ -1206,147 +1233,147 @@ State 81 117 import: "(" FUNC . bind_var_opt inline_import type_use ")" 118 | "(" FUNC . bind_var_opt inline_import func_sig ")" - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 29 (bind_var_opt) - bind_var_opt go to state 93 - bind_var go to state 24 + bind_var_opt go to state 96 + bind_var go to state 25 -State 82 +State 85 133 start: "(" START . var ")" - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 97 + nat go to state 99 + var go to state 100 -State 83 +State 86 131 type_def: "(" TYPE . func_type ")" 132 | "(" TYPE . bind_var func_type ")" - "(" shift, and go to state 98 - VAR shift, and go to state 22 + "(" shift, and go to state 101 + VAR shift, and go to state 23 - func_type go to state 99 - bind_var go to state 100 + func_type go to state 102 + bind_var go to state 103 -State 84 +State 87 109 global: "(" GLOBAL . bind_var_opt inline_export global_type const_expr ")" 110 | "(" GLOBAL . bind_var_opt global_type const_expr ")" 121 import: "(" GLOBAL . bind_var_opt inline_import global_type ")" - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 29 (bind_var_opt) - bind_var_opt go to state 101 - bind_var go to state 24 + bind_var_opt go to state 104 + bind_var go to state 25 -State 85 +State 88 102 table: "(" TABLE . bind_var_opt inline_export_opt table_sig ")" 103 | "(" TABLE . bind_var_opt inline_export_opt elem_type "(" ELEM var_list ")" ")" 119 import: "(" TABLE . bind_var_opt inline_import table_sig ")" - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 29 (bind_var_opt) - bind_var_opt go to state 102 - bind_var go to state 24 + bind_var_opt go to state 105 + bind_var go to state 25 -State 86 +State 89 100 elem: "(" ELEM . var offset var_list ")" 101 | "(" ELEM . offset var_list ")" - "(" shift, and go to state 103 - NAT shift, and go to state 94 - VAR shift, and go to state 95 + "(" shift, and go to state 106 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 104 - expr go to state 105 - offset go to state 106 + nat go to state 99 + var go to state 107 + expr go to state 108 + offset go to state 109 -State 87 +State 90 106 memory: "(" MEMORY . bind_var_opt inline_export_opt memory_sig ")" 107 | "(" MEMORY . bind_var_opt inline_export "(" DATA text_list ")" ")" 108 | "(" MEMORY . bind_var_opt "(" DATA text_list ")" ")" 120 import: "(" MEMORY . bind_var_opt inline_import memory_sig ")" - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 29 (bind_var_opt) - bind_var_opt go to state 107 - bind_var go to state 24 + bind_var_opt go to state 110 + bind_var go to state 25 -State 88 +State 91 104 data: "(" DATA . var offset text_list ")" 105 | "(" DATA . offset text_list ")" - "(" shift, and go to state 103 - NAT shift, and go to state 94 - VAR shift, and go to state 95 + "(" shift, and go to state 106 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 108 - expr go to state 105 - offset go to state 109 + nat go to state 99 + var go to state 111 + expr go to state 108 + offset go to state 112 -State 89 +State 92 116 import: "(" IMPORT . quoted_text quoted_text import_kind ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 110 + quoted_text go to state 113 -State 90 +State 93 127 export: "(" EXPORT . quoted_text export_kind ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 111 + quoted_text go to state 114 -State 91 +State 94 150 action: "(" INVOKE script_var_opt quoted_text const_list ")" . $default reduce using rule 150 (action) -State 92 +State 95 - 166 const: "(" CONST . literal ")" + 167 const: "(" CONST . literal ")" - NAT shift, and go to state 112 - INT shift, and go to state 113 - FLOAT shift, and go to state 114 + NAT shift, and go to state 115 + INT shift, and go to state 116 + FLOAT shift, and go to state 117 - literal go to state 115 + literal go to state 118 -State 93 +State 96 94 func: "(" FUNC bind_var_opt . inline_export type_use func_info ")" 95 | "(" FUNC bind_var_opt . type_use func_info ")" @@ -1355,279 +1382,279 @@ State 93 117 import: "(" FUNC bind_var_opt . inline_import type_use ")" 118 | "(" FUNC bind_var_opt . inline_import func_sig ")" - "(" shift, and go to state 116 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 119 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - type_use go to state 144 - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 149 - func_fields go to state 150 - func_body go to state 151 - func_info go to state 152 - inline_import go to state 153 - inline_export go to state 154 + type_use go to state 147 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 152 + func_fields go to state 153 + func_body go to state 154 + func_info go to state 155 + inline_import go to state 156 + inline_export go to state 157 -State 94 +State 97 21 nat: NAT . $default reduce using rule 21 (nat) -State 95 +State 98 26 var: VAR . $default reduce using rule 26 (var) -State 96 +State 99 25 var: nat . $default reduce using rule 25 (var) -State 97 +State 100 133 start: "(" START var . ")" - ")" shift, and go to state 155 + ")" shift, and go to state 158 -State 98 +State 101 11 func_type: "(" . FUNC func_sig ")" - FUNC shift, and go to state 156 + FUNC shift, and go to state 159 -State 99 +State 102 131 type_def: "(" TYPE func_type . ")" - ")" shift, and go to state 157 + ")" shift, and go to state 160 -State 100 +State 103 132 type_def: "(" TYPE bind_var . func_type ")" - "(" shift, and go to state 98 + "(" shift, and go to state 101 - func_type go to state 158 + func_type go to state 161 -State 101 +State 104 109 global: "(" GLOBAL bind_var_opt . inline_export global_type const_expr ")" 110 | "(" GLOBAL bind_var_opt . global_type const_expr ")" 121 import: "(" GLOBAL bind_var_opt . inline_import global_type ")" - "(" shift, and go to state 159 - VALUE_TYPE shift, and go to state 160 + "(" shift, and go to state 162 + VALUE_TYPE shift, and go to state 163 - global_type go to state 161 - inline_import go to state 162 - inline_export go to state 163 + global_type go to state 164 + inline_import go to state 165 + inline_export go to state 166 -State 102 +State 105 102 table: "(" TABLE bind_var_opt . inline_export_opt table_sig ")" 103 | "(" TABLE bind_var_opt . inline_export_opt elem_type "(" ELEM var_list ")" ")" 119 import: "(" TABLE bind_var_opt . inline_import table_sig ")" - "(" shift, and go to state 164 + "(" shift, and go to state 167 $default reduce using rule 128 (inline_export_opt) - inline_import go to state 165 - inline_export_opt go to state 166 - inline_export go to state 167 + inline_import go to state 168 + inline_export_opt go to state 169 + inline_export go to state 170 -State 103 +State 106 70 expr: "(" . expr1 ")" 98 offset: "(" . OFFSET const_expr ")" - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 168 - IF shift, and go to state 169 - LOOP shift, and go to state 170 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 - OFFSET shift, and go to state 171 - - plain_instr go to state 172 - expr1 go to state 173 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 171 + IF shift, and go to state 172 + LOOP shift, and go to state 173 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 + OFFSET shift, and go to state 174 + + plain_instr go to state 175 + expr1 go to state 176 -State 104 +State 107 100 elem: "(" ELEM var . offset var_list ")" - "(" shift, and go to state 103 + "(" shift, and go to state 106 - expr go to state 105 - offset go to state 174 + expr go to state 108 + offset go to state 177 -State 105 +State 108 99 offset: expr . $default reduce using rule 99 (offset) -State 106 +State 109 101 elem: "(" ELEM offset . var_list ")" $default reduce using rule 27 (var_list) - var_list go to state 175 + var_list go to state 178 -State 107 +State 110 106 memory: "(" MEMORY bind_var_opt . inline_export_opt memory_sig ")" 107 | "(" MEMORY bind_var_opt . inline_export "(" DATA text_list ")" ")" 108 | "(" MEMORY bind_var_opt . "(" DATA text_list ")" ")" 120 import: "(" MEMORY bind_var_opt . inline_import memory_sig ")" - "(" shift, and go to state 176 + "(" shift, and go to state 179 $default reduce using rule 128 (inline_export_opt) - inline_import go to state 177 - inline_export_opt go to state 178 - inline_export go to state 179 + inline_import go to state 180 + inline_export_opt go to state 181 + inline_export go to state 182 -State 108 +State 111 104 data: "(" DATA var . offset text_list ")" - "(" shift, and go to state 103 + "(" shift, and go to state 106 - expr go to state 105 - offset go to state 180 + expr go to state 108 + offset go to state 183 -State 109 +State 112 105 data: "(" DATA offset . text_list ")" - TEXT shift, and go to state 41 + TEXT shift, and go to state 43 $default reduce using rule 3 (text_list) - non_empty_text_list go to state 181 - text_list go to state 182 + non_empty_text_list go to state 184 + text_list go to state 185 -State 110 +State 113 116 import: "(" IMPORT quoted_text . quoted_text import_kind ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 183 + quoted_text go to state 186 -State 111 +State 114 127 export: "(" EXPORT quoted_text . export_kind ")" - "(" shift, and go to state 184 + "(" shift, and go to state 187 - export_kind go to state 185 + export_kind go to state 188 -State 112 +State 115 22 literal: NAT . $default reduce using rule 22 (literal) -State 113 +State 116 23 literal: INT . $default reduce using rule 23 (literal) -State 114 +State 117 24 literal: FLOAT . $default reduce using rule 24 (literal) -State 115 +State 118 - 166 const: "(" CONST literal . ")" + 167 const: "(" CONST literal . ")" - ")" shift, and go to state 186 + ")" shift, and go to state 189 -State 116 +State 119 20 type_use: "(" . TYPE var ")" 70 expr: "(" . expr1 ")" @@ -1639,1091 +1666,1091 @@ State 116 122 inline_import: "(" . IMPORT quoted_text quoted_text ")" 130 inline_export: "(" . EXPORT quoted_text ")" - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 168 - IF shift, and go to state 169 - LOOP shift, and go to state 170 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 - TYPE shift, and go to state 187 - PARAM shift, and go to state 188 - RESULT shift, and go to state 189 - LOCAL shift, and go to state 190 - IMPORT shift, and go to state 191 - EXPORT shift, and go to state 192 - - plain_instr go to state 172 - expr1 go to state 173 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 171 + IF shift, and go to state 172 + LOOP shift, and go to state 173 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 + TYPE shift, and go to state 190 + PARAM shift, and go to state 191 + RESULT shift, and go to state 192 + LOCAL shift, and go to state 193 + IMPORT shift, and go to state 194 + EXPORT shift, and go to state 195 + + plain_instr go to state 175 + expr1 go to state 176 -State 117 +State 120 42 plain_instr: NOP . $default reduce using rule 42 (plain_instr) -State 118 +State 121 43 plain_instr: DROP . $default reduce using rule 43 (plain_instr) -State 119 +State 122 65 block_instr: BLOCK . labeling_opt block END labeling_opt - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 32 (labeling_opt) - bind_var go to state 193 - labeling_opt go to state 194 + bind_var go to state 196 + labeling_opt go to state 197 -State 120 +State 123 67 block_instr: IF . labeling_opt block END labeling_opt 68 | IF . labeling_opt block ELSE labeling_opt instr_list END labeling_opt - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 32 (labeling_opt) - bind_var go to state 193 - labeling_opt go to state 195 + bind_var go to state 196 + labeling_opt go to state 198 -State 121 +State 124 66 block_instr: LOOP . labeling_opt block END labeling_opt - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 32 (labeling_opt) - bind_var go to state 193 - labeling_opt go to state 196 + bind_var go to state 196 + labeling_opt go to state 199 -State 122 +State 125 45 plain_instr: BR . var - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 197 + nat go to state 99 + var go to state 200 -State 123 +State 126 46 plain_instr: BR_IF . var - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 198 + nat go to state 99 + var go to state 201 -State 124 +State 127 47 plain_instr: BR_TABLE . var_list var $default reduce using rule 27 (var_list) - var_list go to state 199 + var_list go to state 202 -State 125 +State 128 49 plain_instr: CALL . var - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 200 + nat go to state 99 + var go to state 203 -State 126 +State 129 50 plain_instr: CALL_INDIRECT . var - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 201 + nat go to state 99 + var go to state 204 -State 127 +State 130 48 plain_instr: RETURN . $default reduce using rule 48 (plain_instr) -State 128 +State 131 51 plain_instr: GET_LOCAL . var - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 202 + nat go to state 99 + var go to state 205 -State 129 +State 132 52 plain_instr: SET_LOCAL . var - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 203 + nat go to state 99 + var go to state 206 -State 130 +State 133 53 plain_instr: TEE_LOCAL . var - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 204 + nat go to state 99 + var go to state 207 -State 131 +State 134 54 plain_instr: GET_GLOBAL . var - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 205 + nat go to state 99 + var go to state 208 -State 132 +State 135 55 plain_instr: SET_GLOBAL . var - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 206 + nat go to state 99 + var go to state 209 -State 133 +State 136 56 plain_instr: LOAD . offset_opt align_opt - OFFSET_EQ_NAT shift, and go to state 207 + OFFSET_EQ_NAT shift, and go to state 210 $default reduce using rule 34 (offset_opt) - offset_opt go to state 208 + offset_opt go to state 211 -State 134 +State 137 57 plain_instr: STORE . offset_opt align_opt - OFFSET_EQ_NAT shift, and go to state 207 + OFFSET_EQ_NAT shift, and go to state 210 $default reduce using rule 34 (offset_opt) - offset_opt go to state 209 + offset_opt go to state 212 -State 135 +State 138 58 plain_instr: CONST . literal - NAT shift, and go to state 112 - INT shift, and go to state 113 - FLOAT shift, and go to state 114 + NAT shift, and go to state 115 + INT shift, and go to state 116 + FLOAT shift, and go to state 117 - literal go to state 210 + literal go to state 213 -State 136 +State 139 59 plain_instr: UNARY . $default reduce using rule 59 (plain_instr) -State 137 +State 140 60 plain_instr: BINARY . $default reduce using rule 60 (plain_instr) -State 138 +State 141 61 plain_instr: COMPARE . $default reduce using rule 61 (plain_instr) -State 139 +State 142 62 plain_instr: CONVERT . $default reduce using rule 62 (plain_instr) -State 140 +State 143 44 plain_instr: SELECT . $default reduce using rule 44 (plain_instr) -State 141 +State 144 41 plain_instr: UNREACHABLE . $default reduce using rule 41 (plain_instr) -State 142 +State 145 63 plain_instr: CURRENT_MEMORY . $default reduce using rule 63 (plain_instr) -State 143 +State 146 64 plain_instr: GROW_MEMORY . $default reduce using rule 64 (plain_instr) -State 144 +State 147 95 func: "(" FUNC bind_var_opt type_use . func_info ")" - "(" shift, and go to state 211 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 214 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 149 - func_fields go to state 150 - func_body go to state 151 - func_info go to state 212 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 152 + func_fields go to state 153 + func_body go to state 154 + func_info go to state 215 -State 145 +State 148 82 instr_list: instr . instr_list - "(" shift, and go to state 213 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 216 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 214 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 217 -State 146 +State 149 38 instr: plain_instr . $default reduce using rule 38 (instr) -State 147 +State 150 39 instr: block_instr . $default reduce using rule 39 (instr) -State 148 +State 151 40 instr: expr . $default reduce using rule 40 (instr) -State 149 +State 152 90 func_body: instr_list . $default reduce using rule 90 (func_body) -State 150 +State 153 93 func_info: func_fields . $default reduce using rule 93 (func_info) -State 151 +State 154 86 func_fields: func_body . $default reduce using rule 86 (func_fields) -State 152 +State 155 97 func: "(" FUNC bind_var_opt func_info . ")" - ")" shift, and go to state 215 + ")" shift, and go to state 218 -State 153 +State 156 117 import: "(" FUNC bind_var_opt inline_import . type_use ")" 118 | "(" FUNC bind_var_opt inline_import . func_sig ")" - "(" shift, and go to state 216 + "(" shift, and go to state 219 $default reduce using rule 12 (func_sig) - func_sig go to state 217 - type_use go to state 218 + func_sig go to state 220 + type_use go to state 221 -State 154 +State 157 94 func: "(" FUNC bind_var_opt inline_export . type_use func_info ")" 96 | "(" FUNC bind_var_opt inline_export . func_info ")" - "(" shift, and go to state 219 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 222 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - type_use go to state 220 - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 149 - func_fields go to state 150 - func_body go to state 151 - func_info go to state 221 + type_use go to state 223 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 152 + func_fields go to state 153 + func_body go to state 154 + func_info go to state 224 -State 155 +State 158 133 start: "(" START var ")" . $default reduce using rule 133 (start) -State 156 +State 159 11 func_type: "(" FUNC . func_sig ")" - "(" shift, and go to state 222 + "(" shift, and go to state 225 $default reduce using rule 12 (func_sig) - func_sig go to state 223 + func_sig go to state 226 -State 157 +State 160 131 type_def: "(" TYPE func_type ")" . $default reduce using rule 131 (type_def) -State 158 +State 161 132 type_def: "(" TYPE bind_var func_type . ")" - ")" shift, and go to state 224 + ")" shift, and go to state 227 -State 159 +State 162 10 global_type: "(" . MUT VALUE_TYPE ")" 122 inline_import: "(" . IMPORT quoted_text quoted_text ")" 130 inline_export: "(" . EXPORT quoted_text ")" - MUT shift, and go to state 225 - IMPORT shift, and go to state 191 - EXPORT shift, and go to state 192 + MUT shift, and go to state 228 + IMPORT shift, and go to state 194 + EXPORT shift, and go to state 195 -State 160 +State 163 9 global_type: VALUE_TYPE . $default reduce using rule 9 (global_type) -State 161 +State 164 110 global: "(" GLOBAL bind_var_opt global_type . const_expr ")" - "(" shift, and go to state 213 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 216 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 226 - const_expr go to state 227 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 229 + const_expr go to state 230 -State 162 +State 165 121 import: "(" GLOBAL bind_var_opt inline_import . global_type ")" - "(" shift, and go to state 228 - VALUE_TYPE shift, and go to state 160 + "(" shift, and go to state 231 + VALUE_TYPE shift, and go to state 163 - global_type go to state 229 + global_type go to state 232 -State 163 +State 166 109 global: "(" GLOBAL bind_var_opt inline_export . global_type const_expr ")" - "(" shift, and go to state 228 - VALUE_TYPE shift, and go to state 160 + "(" shift, and go to state 231 + VALUE_TYPE shift, and go to state 163 - global_type go to state 230 + global_type go to state 233 -State 164 +State 167 122 inline_import: "(" . IMPORT quoted_text quoted_text ")" 130 inline_export: "(" . EXPORT quoted_text ")" - IMPORT shift, and go to state 191 - EXPORT shift, and go to state 192 + IMPORT shift, and go to state 194 + EXPORT shift, and go to state 195 -State 165 +State 168 119 import: "(" TABLE bind_var_opt inline_import . table_sig ")" - NAT shift, and go to state 94 + NAT shift, and go to state 97 - table_sig go to state 231 - limits go to state 232 - nat go to state 233 + table_sig go to state 234 + limits go to state 235 + nat go to state 236 -State 166 +State 169 102 table: "(" TABLE bind_var_opt inline_export_opt . table_sig ")" 103 | "(" TABLE bind_var_opt inline_export_opt . elem_type "(" ELEM var_list ")" ")" - NAT shift, and go to state 94 - ANYFUNC shift, and go to state 234 + NAT shift, and go to state 97 + ANYFUNC shift, and go to state 237 - elem_type go to state 235 - table_sig go to state 236 - limits go to state 232 - nat go to state 233 + elem_type go to state 238 + table_sig go to state 239 + limits go to state 235 + nat go to state 236 -State 167 +State 170 129 inline_export_opt: inline_export . $default reduce using rule 129 (inline_export_opt) -State 168 +State 171 72 expr1: BLOCK . labeling_opt block - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 32 (labeling_opt) - bind_var go to state 193 - labeling_opt go to state 237 + bind_var go to state 196 + labeling_opt go to state 240 -State 169 +State 172 74 expr1: IF . labeling_opt value_type_list if_ - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 32 (labeling_opt) - bind_var go to state 193 - labeling_opt go to state 238 + bind_var go to state 196 + labeling_opt go to state 241 -State 170 +State 173 73 expr1: LOOP . labeling_opt block - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 32 (labeling_opt) - bind_var go to state 193 - labeling_opt go to state 239 + bind_var go to state 196 + labeling_opt go to state 242 -State 171 +State 174 98 offset: "(" OFFSET . const_expr ")" - "(" shift, and go to state 213 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 216 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 226 - const_expr go to state 240 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 229 + const_expr go to state 243 -State 172 +State 175 71 expr1: plain_instr . expr_list - "(" shift, and go to state 213 + "(" shift, and go to state 216 $default reduce using rule 83 (expr_list) - expr go to state 241 - expr_list go to state 242 + expr go to state 244 + expr_list go to state 245 -State 173 +State 176 70 expr: "(" expr1 . ")" - ")" shift, and go to state 243 + ")" shift, and go to state 246 -State 174 +State 177 100 elem: "(" ELEM var offset . var_list ")" $default reduce using rule 27 (var_list) - var_list go to state 244 + var_list go to state 247 -State 175 +State 178 28 var_list: var_list . var 101 elem: "(" ELEM offset var_list . ")" - ")" shift, and go to state 245 - NAT shift, and go to state 94 - VAR shift, and go to state 95 + ")" shift, and go to state 248 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 246 + nat go to state 99 + var go to state 249 -State 176 +State 179 108 memory: "(" MEMORY bind_var_opt "(" . DATA text_list ")" ")" 122 inline_import: "(" . IMPORT quoted_text quoted_text ")" 130 inline_export: "(" . EXPORT quoted_text ")" - DATA shift, and go to state 247 - IMPORT shift, and go to state 191 - EXPORT shift, and go to state 192 + DATA shift, and go to state 250 + IMPORT shift, and go to state 194 + EXPORT shift, and go to state 195 -State 177 +State 180 120 import: "(" MEMORY bind_var_opt inline_import . memory_sig ")" - NAT shift, and go to state 94 + NAT shift, and go to state 97 - memory_sig go to state 248 - limits go to state 249 - nat go to state 233 + memory_sig go to state 251 + limits go to state 252 + nat go to state 236 -State 178 +State 181 106 memory: "(" MEMORY bind_var_opt inline_export_opt . memory_sig ")" - NAT shift, and go to state 94 + NAT shift, and go to state 97 - memory_sig go to state 250 - limits go to state 249 - nat go to state 233 + memory_sig go to state 253 + limits go to state 252 + nat go to state 236 -State 179 +State 182 107 memory: "(" MEMORY bind_var_opt inline_export . "(" DATA text_list ")" ")" 129 inline_export_opt: inline_export . - "(" shift, and go to state 251 + "(" shift, and go to state 254 $default reduce using rule 129 (inline_export_opt) -State 180 +State 183 104 data: "(" DATA var offset . text_list ")" - TEXT shift, and go to state 41 + TEXT shift, and go to state 43 $default reduce using rule 3 (text_list) - non_empty_text_list go to state 181 - text_list go to state 252 + non_empty_text_list go to state 184 + text_list go to state 255 -State 181 +State 184 2 non_empty_text_list: non_empty_text_list . TEXT 4 text_list: non_empty_text_list . - TEXT shift, and go to state 56 + TEXT shift, and go to state 59 $default reduce using rule 4 (text_list) -State 182 +State 185 105 data: "(" DATA offset text_list . ")" - ")" shift, and go to state 253 + ")" shift, and go to state 256 -State 183 +State 186 116 import: "(" IMPORT quoted_text quoted_text . import_kind ")" - "(" shift, and go to state 254 + "(" shift, and go to state 257 - import_kind go to state 255 + import_kind go to state 258 -State 184 +State 187 123 export_kind: "(" . FUNC var ")" 124 | "(" . TABLE var ")" 125 | "(" . MEMORY var ")" 126 | "(" . GLOBAL var ")" - FUNC shift, and go to state 256 - GLOBAL shift, and go to state 257 - TABLE shift, and go to state 258 - MEMORY shift, and go to state 259 + FUNC shift, and go to state 259 + GLOBAL shift, and go to state 260 + TABLE shift, and go to state 261 + MEMORY shift, and go to state 262 -State 185 +State 188 127 export: "(" EXPORT quoted_text export_kind . ")" - ")" shift, and go to state 260 + ")" shift, and go to state 263 -State 186 +State 189 - 166 const: "(" CONST literal ")" . + 167 const: "(" CONST literal ")" . - $default reduce using rule 166 (const) + $default reduce using rule 167 (const) -State 187 +State 190 20 type_use: "(" TYPE . var ")" - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 261 + nat go to state 99 + var go to state 264 -State 188 +State 191 88 func_fields: "(" PARAM . value_type_list ")" func_fields 89 | "(" PARAM . bind_var VALUE_TYPE ")" func_fields - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 6 (value_type_list) - value_type_list go to state 262 - bind_var go to state 263 + value_type_list go to state 265 + bind_var go to state 266 -State 189 +State 192 87 func_fields: "(" RESULT . value_type_list ")" func_body $default reduce using rule 6 (value_type_list) - value_type_list go to state 264 + value_type_list go to state 267 -State 190 +State 193 91 func_body: "(" LOCAL . value_type_list ")" func_body 92 | "(" LOCAL . bind_var VALUE_TYPE ")" func_body - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 6 (value_type_list) - value_type_list go to state 265 - bind_var go to state 266 + value_type_list go to state 268 + bind_var go to state 269 -State 191 +State 194 122 inline_import: "(" IMPORT . quoted_text quoted_text ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 267 + quoted_text go to state 270 -State 192 +State 195 130 inline_export: "(" EXPORT . quoted_text ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 268 + quoted_text go to state 271 -State 193 +State 196 33 labeling_opt: bind_var . $default reduce using rule 33 (labeling_opt) -State 194 +State 197 65 block_instr: BLOCK labeling_opt . block END labeling_opt $default reduce using rule 6 (value_type_list) - value_type_list go to state 269 - block go to state 270 + value_type_list go to state 272 + block go to state 273 -State 195 +State 198 67 block_instr: IF labeling_opt . block END labeling_opt 68 | IF labeling_opt . block ELSE labeling_opt instr_list END labeling_opt $default reduce using rule 6 (value_type_list) - value_type_list go to state 269 - block go to state 271 + value_type_list go to state 272 + block go to state 274 -State 196 +State 199 66 block_instr: LOOP labeling_opt . block END labeling_opt $default reduce using rule 6 (value_type_list) - value_type_list go to state 269 - block go to state 272 + value_type_list go to state 272 + block go to state 275 -State 197 +State 200 45 plain_instr: BR var . $default reduce using rule 45 (plain_instr) -State 198 +State 201 46 plain_instr: BR_IF var . $default reduce using rule 46 (plain_instr) -State 199 +State 202 28 var_list: var_list . var 47 plain_instr: BR_TABLE var_list . var - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 273 + nat go to state 99 + var go to state 276 -State 200 +State 203 49 plain_instr: CALL var . $default reduce using rule 49 (plain_instr) -State 201 +State 204 50 plain_instr: CALL_INDIRECT var . $default reduce using rule 50 (plain_instr) -State 202 +State 205 51 plain_instr: GET_LOCAL var . $default reduce using rule 51 (plain_instr) -State 203 +State 206 52 plain_instr: SET_LOCAL var . $default reduce using rule 52 (plain_instr) -State 204 +State 207 53 plain_instr: TEE_LOCAL var . $default reduce using rule 53 (plain_instr) -State 205 +State 208 54 plain_instr: GET_GLOBAL var . $default reduce using rule 54 (plain_instr) -State 206 +State 209 55 plain_instr: SET_GLOBAL var . $default reduce using rule 55 (plain_instr) -State 207 +State 210 35 offset_opt: OFFSET_EQ_NAT . $default reduce using rule 35 (offset_opt) -State 208 +State 211 56 plain_instr: LOAD offset_opt . align_opt - ALIGN_EQ_NAT shift, and go to state 274 + ALIGN_EQ_NAT shift, and go to state 277 $default reduce using rule 36 (align_opt) - align_opt go to state 275 + align_opt go to state 278 -State 209 +State 212 57 plain_instr: STORE offset_opt . align_opt - ALIGN_EQ_NAT shift, and go to state 274 + ALIGN_EQ_NAT shift, and go to state 277 $default reduce using rule 36 (align_opt) - align_opt go to state 276 + align_opt go to state 279 -State 210 +State 213 58 plain_instr: CONST literal . $default reduce using rule 58 (plain_instr) -State 211 +State 214 70 expr: "(" . expr1 ")" 87 func_fields: "(" . RESULT value_type_list ")" func_body @@ -2732,125 +2759,125 @@ State 211 91 func_body: "(" . LOCAL value_type_list ")" func_body 92 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 168 - IF shift, and go to state 169 - LOOP shift, and go to state 170 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 - PARAM shift, and go to state 188 - RESULT shift, and go to state 189 - LOCAL shift, and go to state 190 - - plain_instr go to state 172 - expr1 go to state 173 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 171 + IF shift, and go to state 172 + LOOP shift, and go to state 173 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 + PARAM shift, and go to state 191 + RESULT shift, and go to state 192 + LOCAL shift, and go to state 193 + + plain_instr go to state 175 + expr1 go to state 176 -State 212 +State 215 95 func: "(" FUNC bind_var_opt type_use func_info . ")" - ")" shift, and go to state 277 + ")" shift, and go to state 280 -State 213 +State 216 70 expr: "(" . expr1 ")" - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 168 - IF shift, and go to state 169 - LOOP shift, and go to state 170 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 - - plain_instr go to state 172 - expr1 go to state 173 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 171 + IF shift, and go to state 172 + LOOP shift, and go to state 173 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 + + plain_instr go to state 175 + expr1 go to state 176 -State 214 +State 217 82 instr_list: instr instr_list . $default reduce using rule 82 (instr_list) -State 215 +State 218 97 func: "(" FUNC bind_var_opt func_info ")" . $default reduce using rule 97 (func) -State 216 +State 219 13 func_sig: "(" . PARAM value_type_list ")" 14 | "(" . PARAM value_type_list ")" "(" RESULT value_type_list ")" 15 | "(" . RESULT value_type_list ")" 20 type_use: "(" . TYPE var ")" - TYPE shift, and go to state 187 - PARAM shift, and go to state 278 - RESULT shift, and go to state 279 + TYPE shift, and go to state 190 + PARAM shift, and go to state 281 + RESULT shift, and go to state 282 -State 217 +State 220 118 import: "(" FUNC bind_var_opt inline_import func_sig . ")" - ")" shift, and go to state 280 + ")" shift, and go to state 283 -State 218 +State 221 117 import: "(" FUNC bind_var_opt inline_import type_use . ")" - ")" shift, and go to state 281 + ")" shift, and go to state 284 -State 219 +State 222 20 type_use: "(" . TYPE var ")" 70 expr: "(" . expr1 ")" @@ -2860,389 +2887,389 @@ State 219 91 func_body: "(" . LOCAL value_type_list ")" func_body 92 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 168 - IF shift, and go to state 169 - LOOP shift, and go to state 170 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 - TYPE shift, and go to state 187 - PARAM shift, and go to state 188 - RESULT shift, and go to state 189 - LOCAL shift, and go to state 190 - - plain_instr go to state 172 - expr1 go to state 173 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 171 + IF shift, and go to state 172 + LOOP shift, and go to state 173 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 + TYPE shift, and go to state 190 + PARAM shift, and go to state 191 + RESULT shift, and go to state 192 + LOCAL shift, and go to state 193 + + plain_instr go to state 175 + expr1 go to state 176 -State 220 +State 223 94 func: "(" FUNC bind_var_opt inline_export type_use . func_info ")" - "(" shift, and go to state 211 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 214 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 149 - func_fields go to state 150 - func_body go to state 151 - func_info go to state 282 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 152 + func_fields go to state 153 + func_body go to state 154 + func_info go to state 285 -State 221 +State 224 96 func: "(" FUNC bind_var_opt inline_export func_info . ")" - ")" shift, and go to state 283 + ")" shift, and go to state 286 -State 222 +State 225 13 func_sig: "(" . PARAM value_type_list ")" 14 | "(" . PARAM value_type_list ")" "(" RESULT value_type_list ")" 15 | "(" . RESULT value_type_list ")" - PARAM shift, and go to state 278 - RESULT shift, and go to state 279 + PARAM shift, and go to state 281 + RESULT shift, and go to state 282 -State 223 +State 226 11 func_type: "(" FUNC func_sig . ")" - ")" shift, and go to state 284 + ")" shift, and go to state 287 -State 224 +State 227 132 type_def: "(" TYPE bind_var func_type ")" . $default reduce using rule 132 (type_def) -State 225 +State 228 10 global_type: "(" MUT . VALUE_TYPE ")" - VALUE_TYPE shift, and go to state 285 + VALUE_TYPE shift, and go to state 288 -State 226 +State 229 85 const_expr: instr_list . $default reduce using rule 85 (const_expr) -State 227 +State 230 110 global: "(" GLOBAL bind_var_opt global_type const_expr . ")" - ")" shift, and go to state 286 + ")" shift, and go to state 289 -State 228 +State 231 10 global_type: "(" . MUT VALUE_TYPE ")" - MUT shift, and go to state 225 + MUT shift, and go to state 228 -State 229 +State 232 121 import: "(" GLOBAL bind_var_opt inline_import global_type . ")" - ")" shift, and go to state 287 + ")" shift, and go to state 290 -State 230 +State 233 109 global: "(" GLOBAL bind_var_opt inline_export global_type . const_expr ")" - "(" shift, and go to state 213 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 216 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 226 - const_expr go to state 288 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 229 + const_expr go to state 291 -State 231 +State 234 119 import: "(" TABLE bind_var_opt inline_import table_sig . ")" - ")" shift, and go to state 289 + ")" shift, and go to state 292 -State 232 +State 235 16 table_sig: limits . elem_type - ANYFUNC shift, and go to state 234 + ANYFUNC shift, and go to state 237 - elem_type go to state 290 + elem_type go to state 293 -State 233 +State 236 18 limits: nat . 19 | nat . nat - NAT shift, and go to state 94 + NAT shift, and go to state 97 $default reduce using rule 18 (limits) - nat go to state 291 + nat go to state 294 -State 234 +State 237 8 elem_type: ANYFUNC . $default reduce using rule 8 (elem_type) -State 235 +State 238 103 table: "(" TABLE bind_var_opt inline_export_opt elem_type . "(" ELEM var_list ")" ")" - "(" shift, and go to state 292 + "(" shift, and go to state 295 -State 236 +State 239 102 table: "(" TABLE bind_var_opt inline_export_opt table_sig . ")" - ")" shift, and go to state 293 + ")" shift, and go to state 296 -State 237 +State 240 72 expr1: BLOCK labeling_opt . block $default reduce using rule 6 (value_type_list) - value_type_list go to state 269 - block go to state 294 + value_type_list go to state 272 + block go to state 297 -State 238 +State 241 74 expr1: IF labeling_opt . value_type_list if_ $default reduce using rule 6 (value_type_list) - value_type_list go to state 295 + value_type_list go to state 298 -State 239 +State 242 73 expr1: LOOP labeling_opt . block $default reduce using rule 6 (value_type_list) - value_type_list go to state 269 - block go to state 296 + value_type_list go to state 272 + block go to state 299 -State 240 +State 243 98 offset: "(" OFFSET const_expr . ")" - ")" shift, and go to state 297 + ")" shift, and go to state 300 -State 241 +State 244 84 expr_list: expr . expr_list - "(" shift, and go to state 213 + "(" shift, and go to state 216 $default reduce using rule 83 (expr_list) - expr go to state 241 - expr_list go to state 298 + expr go to state 244 + expr_list go to state 301 -State 242 +State 245 71 expr1: plain_instr expr_list . $default reduce using rule 71 (expr1) -State 243 +State 246 70 expr: "(" expr1 ")" . $default reduce using rule 70 (expr) -State 244 +State 247 28 var_list: var_list . var 100 elem: "(" ELEM var offset var_list . ")" - ")" shift, and go to state 299 - NAT shift, and go to state 94 - VAR shift, and go to state 95 + ")" shift, and go to state 302 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 246 + nat go to state 99 + var go to state 249 -State 245 +State 248 101 elem: "(" ELEM offset var_list ")" . $default reduce using rule 101 (elem) -State 246 +State 249 28 var_list: var_list var . $default reduce using rule 28 (var_list) -State 247 +State 250 108 memory: "(" MEMORY bind_var_opt "(" DATA . text_list ")" ")" - TEXT shift, and go to state 41 + TEXT shift, and go to state 43 $default reduce using rule 3 (text_list) - non_empty_text_list go to state 181 - text_list go to state 300 + non_empty_text_list go to state 184 + text_list go to state 303 -State 248 +State 251 120 import: "(" MEMORY bind_var_opt inline_import memory_sig . ")" - ")" shift, and go to state 301 + ")" shift, and go to state 304 -State 249 +State 252 17 memory_sig: limits . $default reduce using rule 17 (memory_sig) -State 250 +State 253 106 memory: "(" MEMORY bind_var_opt inline_export_opt memory_sig . ")" - ")" shift, and go to state 302 + ")" shift, and go to state 305 -State 251 +State 254 107 memory: "(" MEMORY bind_var_opt inline_export "(" . DATA text_list ")" ")" - DATA shift, and go to state 303 + DATA shift, and go to state 306 -State 252 +State 255 104 data: "(" DATA var offset text_list . ")" - ")" shift, and go to state 304 + ")" shift, and go to state 307 -State 253 +State 256 105 data: "(" DATA offset text_list ")" . $default reduce using rule 105 (data) -State 254 +State 257 111 import_kind: "(" . FUNC bind_var_opt type_use ")" 112 | "(" . FUNC bind_var_opt func_sig ")" @@ -3250,202 +3277,202 @@ State 254 114 | "(" . MEMORY bind_var_opt memory_sig ")" 115 | "(" . GLOBAL bind_var_opt global_type ")" - FUNC shift, and go to state 305 - GLOBAL shift, and go to state 306 - TABLE shift, and go to state 307 - MEMORY shift, and go to state 308 + FUNC shift, and go to state 308 + GLOBAL shift, and go to state 309 + TABLE shift, and go to state 310 + MEMORY shift, and go to state 311 -State 255 +State 258 116 import: "(" IMPORT quoted_text quoted_text import_kind . ")" - ")" shift, and go to state 309 + ")" shift, and go to state 312 -State 256 +State 259 123 export_kind: "(" FUNC . var ")" - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 310 + nat go to state 99 + var go to state 313 -State 257 +State 260 126 export_kind: "(" GLOBAL . var ")" - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 311 + nat go to state 99 + var go to state 314 -State 258 +State 261 124 export_kind: "(" TABLE . var ")" - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 312 + nat go to state 99 + var go to state 315 -State 259 +State 262 125 export_kind: "(" MEMORY . var ")" - NAT shift, and go to state 94 - VAR shift, and go to state 95 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 313 + nat go to state 99 + var go to state 316 -State 260 +State 263 127 export: "(" EXPORT quoted_text export_kind ")" . $default reduce using rule 127 (export) -State 261 +State 264 20 type_use: "(" TYPE var . ")" - ")" shift, and go to state 314 + ")" shift, and go to state 317 -State 262 +State 265 7 value_type_list: value_type_list . VALUE_TYPE 88 func_fields: "(" PARAM value_type_list . ")" func_fields - ")" shift, and go to state 315 - VALUE_TYPE shift, and go to state 316 + ")" shift, and go to state 318 + VALUE_TYPE shift, and go to state 319 -State 263 +State 266 89 func_fields: "(" PARAM bind_var . VALUE_TYPE ")" func_fields - VALUE_TYPE shift, and go to state 317 + VALUE_TYPE shift, and go to state 320 -State 264 +State 267 7 value_type_list: value_type_list . VALUE_TYPE 87 func_fields: "(" RESULT value_type_list . ")" func_body - ")" shift, and go to state 318 - VALUE_TYPE shift, and go to state 316 + ")" shift, and go to state 321 + VALUE_TYPE shift, and go to state 319 -State 265 +State 268 7 value_type_list: value_type_list . VALUE_TYPE 91 func_body: "(" LOCAL value_type_list . ")" func_body - ")" shift, and go to state 319 - VALUE_TYPE shift, and go to state 316 + ")" shift, and go to state 322 + VALUE_TYPE shift, and go to state 319 -State 266 +State 269 92 func_body: "(" LOCAL bind_var . VALUE_TYPE ")" func_body - VALUE_TYPE shift, and go to state 320 + VALUE_TYPE shift, and go to state 323 -State 267 +State 270 122 inline_import: "(" IMPORT quoted_text . quoted_text ")" - TEXT shift, and go to state 25 + TEXT shift, and go to state 26 - quoted_text go to state 321 + quoted_text go to state 324 -State 268 +State 271 130 inline_export: "(" EXPORT quoted_text . ")" - ")" shift, and go to state 322 + ")" shift, and go to state 325 -State 269 +State 272 7 value_type_list: value_type_list . VALUE_TYPE 69 block: value_type_list . instr_list - "(" shift, and go to state 213 - VALUE_TYPE shift, and go to state 316 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 216 + VALUE_TYPE shift, and go to state 319 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 323 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 326 -State 270 +State 273 65 block_instr: BLOCK labeling_opt block . END labeling_opt - END shift, and go to state 324 + END shift, and go to state 327 -State 271 +State 274 67 block_instr: IF labeling_opt block . END labeling_opt 68 | IF labeling_opt block . ELSE labeling_opt instr_list END labeling_opt - END shift, and go to state 325 - ELSE shift, and go to state 326 + END shift, and go to state 328 + ELSE shift, and go to state 329 -State 272 +State 275 66 block_instr: LOOP labeling_opt block . END labeling_opt - END shift, and go to state 327 + END shift, and go to state 330 -State 273 +State 276 28 var_list: var_list var . 47 plain_instr: BR_TABLE var_list var . @@ -3455,1467 +3482,1467 @@ State 273 $default reduce using rule 47 (plain_instr) -State 274 +State 277 37 align_opt: ALIGN_EQ_NAT . $default reduce using rule 37 (align_opt) -State 275 +State 278 56 plain_instr: LOAD offset_opt align_opt . $default reduce using rule 56 (plain_instr) -State 276 +State 279 57 plain_instr: STORE offset_opt align_opt . $default reduce using rule 57 (plain_instr) -State 277 +State 280 95 func: "(" FUNC bind_var_opt type_use func_info ")" . $default reduce using rule 95 (func) -State 278 +State 281 13 func_sig: "(" PARAM . value_type_list ")" 14 | "(" PARAM . value_type_list ")" "(" RESULT value_type_list ")" $default reduce using rule 6 (value_type_list) - value_type_list go to state 328 + value_type_list go to state 331 -State 279 +State 282 15 func_sig: "(" RESULT . value_type_list ")" $default reduce using rule 6 (value_type_list) - value_type_list go to state 329 + value_type_list go to state 332 -State 280 +State 283 118 import: "(" FUNC bind_var_opt inline_import func_sig ")" . $default reduce using rule 118 (import) -State 281 +State 284 117 import: "(" FUNC bind_var_opt inline_import type_use ")" . $default reduce using rule 117 (import) -State 282 +State 285 94 func: "(" FUNC bind_var_opt inline_export type_use func_info . ")" - ")" shift, and go to state 330 + ")" shift, and go to state 333 -State 283 +State 286 96 func: "(" FUNC bind_var_opt inline_export func_info ")" . $default reduce using rule 96 (func) -State 284 +State 287 11 func_type: "(" FUNC func_sig ")" . $default reduce using rule 11 (func_type) -State 285 +State 288 10 global_type: "(" MUT VALUE_TYPE . ")" - ")" shift, and go to state 331 + ")" shift, and go to state 334 -State 286 +State 289 110 global: "(" GLOBAL bind_var_opt global_type const_expr ")" . $default reduce using rule 110 (global) -State 287 +State 290 121 import: "(" GLOBAL bind_var_opt inline_import global_type ")" . $default reduce using rule 121 (import) -State 288 +State 291 109 global: "(" GLOBAL bind_var_opt inline_export global_type const_expr . ")" - ")" shift, and go to state 332 + ")" shift, and go to state 335 -State 289 +State 292 119 import: "(" TABLE bind_var_opt inline_import table_sig ")" . $default reduce using rule 119 (import) -State 290 +State 293 16 table_sig: limits elem_type . $default reduce using rule 16 (table_sig) -State 291 +State 294 19 limits: nat nat . $default reduce using rule 19 (limits) -State 292 +State 295 103 table: "(" TABLE bind_var_opt inline_export_opt elem_type "(" . ELEM var_list ")" ")" - ELEM shift, and go to state 333 + ELEM shift, and go to state 336 -State 293 +State 296 102 table: "(" TABLE bind_var_opt inline_export_opt table_sig ")" . $default reduce using rule 102 (table) -State 294 +State 297 72 expr1: BLOCK labeling_opt block . $default reduce using rule 72 (expr1) -State 295 +State 298 7 value_type_list: value_type_list . VALUE_TYPE 74 expr1: IF labeling_opt value_type_list . if_ - "(" shift, and go to state 334 - VALUE_TYPE shift, and go to state 316 + "(" shift, and go to state 337 + VALUE_TYPE shift, and go to state 319 - expr go to state 335 - if_ go to state 336 + expr go to state 338 + if_ go to state 339 -State 296 +State 299 73 expr1: LOOP labeling_opt block . $default reduce using rule 73 (expr1) -State 297 +State 300 98 offset: "(" OFFSET const_expr ")" . $default reduce using rule 98 (offset) -State 298 +State 301 84 expr_list: expr expr_list . $default reduce using rule 84 (expr_list) -State 299 +State 302 100 elem: "(" ELEM var offset var_list ")" . $default reduce using rule 100 (elem) -State 300 +State 303 108 memory: "(" MEMORY bind_var_opt "(" DATA text_list . ")" ")" - ")" shift, and go to state 337 + ")" shift, and go to state 340 -State 301 +State 304 120 import: "(" MEMORY bind_var_opt inline_import memory_sig ")" . $default reduce using rule 120 (import) -State 302 +State 305 106 memory: "(" MEMORY bind_var_opt inline_export_opt memory_sig ")" . $default reduce using rule 106 (memory) -State 303 +State 306 107 memory: "(" MEMORY bind_var_opt inline_export "(" DATA . text_list ")" ")" - TEXT shift, and go to state 41 + TEXT shift, and go to state 43 $default reduce using rule 3 (text_list) - non_empty_text_list go to state 181 - text_list go to state 338 + non_empty_text_list go to state 184 + text_list go to state 341 -State 304 +State 307 104 data: "(" DATA var offset text_list ")" . $default reduce using rule 104 (data) -State 305 +State 308 111 import_kind: "(" FUNC . bind_var_opt type_use ")" 112 | "(" FUNC . bind_var_opt func_sig ")" - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 29 (bind_var_opt) - bind_var_opt go to state 339 - bind_var go to state 24 + bind_var_opt go to state 342 + bind_var go to state 25 -State 306 +State 309 115 import_kind: "(" GLOBAL . bind_var_opt global_type ")" - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 29 (bind_var_opt) - bind_var_opt go to state 340 - bind_var go to state 24 + bind_var_opt go to state 343 + bind_var go to state 25 -State 307 +State 310 113 import_kind: "(" TABLE . bind_var_opt table_sig ")" - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 29 (bind_var_opt) - bind_var_opt go to state 341 - bind_var go to state 24 + bind_var_opt go to state 344 + bind_var go to state 25 -State 308 +State 311 114 import_kind: "(" MEMORY . bind_var_opt memory_sig ")" - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 29 (bind_var_opt) - bind_var_opt go to state 342 - bind_var go to state 24 + bind_var_opt go to state 345 + bind_var go to state 25 -State 309 +State 312 116 import: "(" IMPORT quoted_text quoted_text import_kind ")" . $default reduce using rule 116 (import) -State 310 +State 313 123 export_kind: "(" FUNC var . ")" - ")" shift, and go to state 343 + ")" shift, and go to state 346 -State 311 +State 314 126 export_kind: "(" GLOBAL var . ")" - ")" shift, and go to state 344 + ")" shift, and go to state 347 -State 312 +State 315 124 export_kind: "(" TABLE var . ")" - ")" shift, and go to state 345 + ")" shift, and go to state 348 -State 313 +State 316 125 export_kind: "(" MEMORY var . ")" - ")" shift, and go to state 346 + ")" shift, and go to state 349 -State 314 +State 317 20 type_use: "(" TYPE var ")" . $default reduce using rule 20 (type_use) -State 315 +State 318 88 func_fields: "(" PARAM value_type_list ")" . func_fields - "(" shift, and go to state 211 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 214 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 149 - func_fields go to state 347 - func_body go to state 151 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 152 + func_fields go to state 350 + func_body go to state 154 -State 316 +State 319 7 value_type_list: value_type_list VALUE_TYPE . $default reduce using rule 7 (value_type_list) -State 317 +State 320 89 func_fields: "(" PARAM bind_var VALUE_TYPE . ")" func_fields - ")" shift, and go to state 348 + ")" shift, and go to state 351 -State 318 +State 321 87 func_fields: "(" RESULT value_type_list ")" . func_body - "(" shift, and go to state 349 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 352 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 149 - func_body go to state 350 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 152 + func_body go to state 353 -State 319 +State 322 91 func_body: "(" LOCAL value_type_list ")" . func_body - "(" shift, and go to state 349 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 352 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 149 - func_body go to state 351 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 152 + func_body go to state 354 -State 320 +State 323 92 func_body: "(" LOCAL bind_var VALUE_TYPE . ")" func_body - ")" shift, and go to state 352 + ")" shift, and go to state 355 -State 321 +State 324 122 inline_import: "(" IMPORT quoted_text quoted_text . ")" - ")" shift, and go to state 353 + ")" shift, and go to state 356 -State 322 +State 325 130 inline_export: "(" EXPORT quoted_text ")" . $default reduce using rule 130 (inline_export) -State 323 +State 326 69 block: value_type_list instr_list . $default reduce using rule 69 (block) -State 324 +State 327 65 block_instr: BLOCK labeling_opt block END . labeling_opt - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 32 (labeling_opt) - bind_var go to state 193 - labeling_opt go to state 354 + bind_var go to state 196 + labeling_opt go to state 357 -State 325 +State 328 67 block_instr: IF labeling_opt block END . labeling_opt - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 32 (labeling_opt) - bind_var go to state 193 - labeling_opt go to state 355 + bind_var go to state 196 + labeling_opt go to state 358 -State 326 +State 329 68 block_instr: IF labeling_opt block ELSE . labeling_opt instr_list END labeling_opt - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 32 (labeling_opt) - bind_var go to state 193 - labeling_opt go to state 356 + bind_var go to state 196 + labeling_opt go to state 359 -State 327 +State 330 66 block_instr: LOOP labeling_opt block END . labeling_opt - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 32 (labeling_opt) - bind_var go to state 193 - labeling_opt go to state 357 + bind_var go to state 196 + labeling_opt go to state 360 -State 328 +State 331 7 value_type_list: value_type_list . VALUE_TYPE 13 func_sig: "(" PARAM value_type_list . ")" 14 | "(" PARAM value_type_list . ")" "(" RESULT value_type_list ")" - ")" shift, and go to state 358 - VALUE_TYPE shift, and go to state 316 + ")" shift, and go to state 361 + VALUE_TYPE shift, and go to state 319 -State 329 +State 332 7 value_type_list: value_type_list . VALUE_TYPE 15 func_sig: "(" RESULT value_type_list . ")" - ")" shift, and go to state 359 - VALUE_TYPE shift, and go to state 316 + ")" shift, and go to state 362 + VALUE_TYPE shift, and go to state 319 -State 330 +State 333 94 func: "(" FUNC bind_var_opt inline_export type_use func_info ")" . $default reduce using rule 94 (func) -State 331 +State 334 10 global_type: "(" MUT VALUE_TYPE ")" . $default reduce using rule 10 (global_type) -State 332 +State 335 109 global: "(" GLOBAL bind_var_opt inline_export global_type const_expr ")" . $default reduce using rule 109 (global) -State 333 +State 336 103 table: "(" TABLE bind_var_opt inline_export_opt elem_type "(" ELEM . var_list ")" ")" $default reduce using rule 27 (var_list) - var_list go to state 360 + var_list go to state 363 -State 334 +State 337 70 expr: "(" . expr1 ")" 75 if_: "(" . THEN instr_list ")" "(" ELSE instr_list ")" 76 | "(" . THEN instr_list ")" - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 168 - IF shift, and go to state 169 - THEN shift, and go to state 361 - LOOP shift, and go to state 170 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 - - plain_instr go to state 172 - expr1 go to state 173 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 171 + IF shift, and go to state 172 + THEN shift, and go to state 364 + LOOP shift, and go to state 173 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 + + plain_instr go to state 175 + expr1 go to state 176 -State 335 +State 338 77 if_: expr . "(" THEN instr_list ")" "(" ELSE instr_list ")" 78 | expr . "(" THEN instr_list ")" 79 | expr . expr expr 80 | expr . expr - "(" shift, and go to state 362 + "(" shift, and go to state 365 - expr go to state 363 + expr go to state 366 -State 336 +State 339 74 expr1: IF labeling_opt value_type_list if_ . $default reduce using rule 74 (expr1) -State 337 +State 340 108 memory: "(" MEMORY bind_var_opt "(" DATA text_list ")" . ")" - ")" shift, and go to state 364 + ")" shift, and go to state 367 -State 338 +State 341 107 memory: "(" MEMORY bind_var_opt inline_export "(" DATA text_list . ")" ")" - ")" shift, and go to state 365 + ")" shift, and go to state 368 -State 339 +State 342 111 import_kind: "(" FUNC bind_var_opt . type_use ")" 112 | "(" FUNC bind_var_opt . func_sig ")" - "(" shift, and go to state 216 + "(" shift, and go to state 219 $default reduce using rule 12 (func_sig) - func_sig go to state 366 - type_use go to state 367 + func_sig go to state 369 + type_use go to state 370 -State 340 +State 343 115 import_kind: "(" GLOBAL bind_var_opt . global_type ")" - "(" shift, and go to state 228 - VALUE_TYPE shift, and go to state 160 + "(" shift, and go to state 231 + VALUE_TYPE shift, and go to state 163 - global_type go to state 368 + global_type go to state 371 -State 341 +State 344 113 import_kind: "(" TABLE bind_var_opt . table_sig ")" - NAT shift, and go to state 94 + NAT shift, and go to state 97 - table_sig go to state 369 - limits go to state 232 - nat go to state 233 + table_sig go to state 372 + limits go to state 235 + nat go to state 236 -State 342 +State 345 114 import_kind: "(" MEMORY bind_var_opt . memory_sig ")" - NAT shift, and go to state 94 + NAT shift, and go to state 97 - memory_sig go to state 370 - limits go to state 249 - nat go to state 233 + memory_sig go to state 373 + limits go to state 252 + nat go to state 236 -State 343 +State 346 123 export_kind: "(" FUNC var ")" . $default reduce using rule 123 (export_kind) -State 344 +State 347 126 export_kind: "(" GLOBAL var ")" . $default reduce using rule 126 (export_kind) -State 345 +State 348 124 export_kind: "(" TABLE var ")" . $default reduce using rule 124 (export_kind) -State 346 +State 349 125 export_kind: "(" MEMORY var ")" . $default reduce using rule 125 (export_kind) -State 347 +State 350 88 func_fields: "(" PARAM value_type_list ")" func_fields . $default reduce using rule 88 (func_fields) -State 348 +State 351 89 func_fields: "(" PARAM bind_var VALUE_TYPE ")" . func_fields - "(" shift, and go to state 211 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 214 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 149 - func_fields go to state 371 - func_body go to state 151 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 152 + func_fields go to state 374 + func_body go to state 154 -State 349 +State 352 70 expr: "(" . expr1 ")" 91 func_body: "(" . LOCAL value_type_list ")" func_body 92 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 168 - IF shift, and go to state 169 - LOOP shift, and go to state 170 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 - LOCAL shift, and go to state 190 - - plain_instr go to state 172 - expr1 go to state 173 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 171 + IF shift, and go to state 172 + LOOP shift, and go to state 173 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 + LOCAL shift, and go to state 193 + + plain_instr go to state 175 + expr1 go to state 176 -State 350 +State 353 87 func_fields: "(" RESULT value_type_list ")" func_body . $default reduce using rule 87 (func_fields) -State 351 +State 354 91 func_body: "(" LOCAL value_type_list ")" func_body . $default reduce using rule 91 (func_body) -State 352 +State 355 92 func_body: "(" LOCAL bind_var VALUE_TYPE ")" . func_body - "(" shift, and go to state 349 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 352 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 149 - func_body go to state 372 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 152 + func_body go to state 375 -State 353 +State 356 122 inline_import: "(" IMPORT quoted_text quoted_text ")" . $default reduce using rule 122 (inline_import) -State 354 +State 357 65 block_instr: BLOCK labeling_opt block END labeling_opt . $default reduce using rule 65 (block_instr) -State 355 +State 358 67 block_instr: IF labeling_opt block END labeling_opt . $default reduce using rule 67 (block_instr) -State 356 +State 359 68 block_instr: IF labeling_opt block ELSE labeling_opt . instr_list END labeling_opt - "(" shift, and go to state 213 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 216 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 373 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 376 -State 357 +State 360 66 block_instr: LOOP labeling_opt block END labeling_opt . $default reduce using rule 66 (block_instr) -State 358 +State 361 13 func_sig: "(" PARAM value_type_list ")" . 14 | "(" PARAM value_type_list ")" . "(" RESULT value_type_list ")" - "(" shift, and go to state 374 + "(" shift, and go to state 377 $default reduce using rule 13 (func_sig) -State 359 +State 362 15 func_sig: "(" RESULT value_type_list ")" . $default reduce using rule 15 (func_sig) -State 360 +State 363 28 var_list: var_list . var 103 table: "(" TABLE bind_var_opt inline_export_opt elem_type "(" ELEM var_list . ")" ")" - ")" shift, and go to state 375 - NAT shift, and go to state 94 - VAR shift, and go to state 95 + ")" shift, and go to state 378 + NAT shift, and go to state 97 + VAR shift, and go to state 98 - nat go to state 96 - var go to state 246 + nat go to state 99 + var go to state 249 -State 361 +State 364 75 if_: "(" THEN . instr_list ")" "(" ELSE instr_list ")" 76 | "(" THEN . instr_list ")" - "(" shift, and go to state 213 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 216 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 376 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 379 -State 362 +State 365 70 expr: "(" . expr1 ")" 77 if_: expr "(" . THEN instr_list ")" "(" ELSE instr_list ")" 78 | expr "(" . THEN instr_list ")" - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 168 - IF shift, and go to state 169 - THEN shift, and go to state 377 - LOOP shift, and go to state 170 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 - - plain_instr go to state 172 - expr1 go to state 173 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 171 + IF shift, and go to state 172 + THEN shift, and go to state 380 + LOOP shift, and go to state 173 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 + + plain_instr go to state 175 + expr1 go to state 176 -State 363 +State 366 79 if_: expr expr . expr 80 | expr expr . - "(" shift, and go to state 213 + "(" shift, and go to state 216 $default reduce using rule 80 (if_) - expr go to state 378 + expr go to state 381 -State 364 +State 367 108 memory: "(" MEMORY bind_var_opt "(" DATA text_list ")" ")" . $default reduce using rule 108 (memory) -State 365 +State 368 107 memory: "(" MEMORY bind_var_opt inline_export "(" DATA text_list ")" . ")" - ")" shift, and go to state 379 + ")" shift, and go to state 382 -State 366 +State 369 112 import_kind: "(" FUNC bind_var_opt func_sig . ")" - ")" shift, and go to state 380 + ")" shift, and go to state 383 -State 367 +State 370 111 import_kind: "(" FUNC bind_var_opt type_use . ")" - ")" shift, and go to state 381 + ")" shift, and go to state 384 -State 368 +State 371 115 import_kind: "(" GLOBAL bind_var_opt global_type . ")" - ")" shift, and go to state 382 + ")" shift, and go to state 385 -State 369 +State 372 113 import_kind: "(" TABLE bind_var_opt table_sig . ")" - ")" shift, and go to state 383 + ")" shift, and go to state 386 -State 370 +State 373 114 import_kind: "(" MEMORY bind_var_opt memory_sig . ")" - ")" shift, and go to state 384 + ")" shift, and go to state 387 -State 371 +State 374 89 func_fields: "(" PARAM bind_var VALUE_TYPE ")" func_fields . $default reduce using rule 89 (func_fields) -State 372 +State 375 92 func_body: "(" LOCAL bind_var VALUE_TYPE ")" func_body . $default reduce using rule 92 (func_body) -State 373 +State 376 68 block_instr: IF labeling_opt block ELSE labeling_opt instr_list . END labeling_opt - END shift, and go to state 385 + END shift, and go to state 388 -State 374 +State 377 14 func_sig: "(" PARAM value_type_list ")" "(" . RESULT value_type_list ")" - RESULT shift, and go to state 386 + RESULT shift, and go to state 389 -State 375 +State 378 103 table: "(" TABLE bind_var_opt inline_export_opt elem_type "(" ELEM var_list ")" . ")" - ")" shift, and go to state 387 + ")" shift, and go to state 390 -State 376 +State 379 75 if_: "(" THEN instr_list . ")" "(" ELSE instr_list ")" 76 | "(" THEN instr_list . ")" - ")" shift, and go to state 388 + ")" shift, and go to state 391 -State 377 +State 380 77 if_: expr "(" THEN . instr_list ")" "(" ELSE instr_list ")" 78 | expr "(" THEN . instr_list ")" - "(" shift, and go to state 213 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 216 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 389 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 392 -State 378 +State 381 79 if_: expr expr expr . $default reduce using rule 79 (if_) -State 379 +State 382 107 memory: "(" MEMORY bind_var_opt inline_export "(" DATA text_list ")" ")" . $default reduce using rule 107 (memory) -State 380 +State 383 112 import_kind: "(" FUNC bind_var_opt func_sig ")" . $default reduce using rule 112 (import_kind) -State 381 +State 384 111 import_kind: "(" FUNC bind_var_opt type_use ")" . $default reduce using rule 111 (import_kind) -State 382 +State 385 115 import_kind: "(" GLOBAL bind_var_opt global_type ")" . $default reduce using rule 115 (import_kind) -State 383 +State 386 113 import_kind: "(" TABLE bind_var_opt table_sig ")" . $default reduce using rule 113 (import_kind) -State 384 +State 387 114 import_kind: "(" MEMORY bind_var_opt memory_sig ")" . $default reduce using rule 114 (import_kind) -State 385 +State 388 68 block_instr: IF labeling_opt block ELSE labeling_opt instr_list END . labeling_opt - VAR shift, and go to state 22 + VAR shift, and go to state 23 $default reduce using rule 32 (labeling_opt) - bind_var go to state 193 - labeling_opt go to state 390 + bind_var go to state 196 + labeling_opt go to state 393 -State 386 +State 389 14 func_sig: "(" PARAM value_type_list ")" "(" RESULT . value_type_list ")" $default reduce using rule 6 (value_type_list) - value_type_list go to state 391 + value_type_list go to state 394 -State 387 +State 390 103 table: "(" TABLE bind_var_opt inline_export_opt elem_type "(" ELEM var_list ")" ")" . $default reduce using rule 103 (table) -State 388 +State 391 75 if_: "(" THEN instr_list ")" . "(" ELSE instr_list ")" 76 | "(" THEN instr_list ")" . - "(" shift, and go to state 392 + "(" shift, and go to state 395 $default reduce using rule 76 (if_) -State 389 +State 392 77 if_: expr "(" THEN instr_list . ")" "(" ELSE instr_list ")" 78 | expr "(" THEN instr_list . ")" - ")" shift, and go to state 393 + ")" shift, and go to state 396 -State 390 +State 393 68 block_instr: IF labeling_opt block ELSE labeling_opt instr_list END labeling_opt . $default reduce using rule 68 (block_instr) -State 391 +State 394 7 value_type_list: value_type_list . VALUE_TYPE 14 func_sig: "(" PARAM value_type_list ")" "(" RESULT value_type_list . ")" - ")" shift, and go to state 394 - VALUE_TYPE shift, and go to state 316 + ")" shift, and go to state 397 + VALUE_TYPE shift, and go to state 319 -State 392 +State 395 75 if_: "(" THEN instr_list ")" "(" . ELSE instr_list ")" - ELSE shift, and go to state 395 + ELSE shift, and go to state 398 -State 393 +State 396 77 if_: expr "(" THEN instr_list ")" . "(" ELSE instr_list ")" 78 | expr "(" THEN instr_list ")" . - "(" shift, and go to state 396 + "(" shift, and go to state 399 $default reduce using rule 78 (if_) -State 394 +State 397 14 func_sig: "(" PARAM value_type_list ")" "(" RESULT value_type_list ")" . $default reduce using rule 14 (func_sig) -State 395 +State 398 75 if_: "(" THEN instr_list ")" "(" ELSE . instr_list ")" - "(" shift, and go to state 213 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 216 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 397 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 400 -State 396 +State 399 77 if_: expr "(" THEN instr_list ")" "(" . ELSE instr_list ")" - ELSE shift, and go to state 398 + ELSE shift, and go to state 401 -State 397 +State 400 75 if_: "(" THEN instr_list ")" "(" ELSE instr_list . ")" - ")" shift, and go to state 399 + ")" shift, and go to state 402 -State 398 +State 401 77 if_: expr "(" THEN instr_list ")" "(" ELSE . instr_list ")" - "(" shift, and go to state 213 - NOP shift, and go to state 117 - DROP shift, and go to state 118 - BLOCK shift, and go to state 119 - IF shift, and go to state 120 - LOOP shift, and go to state 121 - BR shift, and go to state 122 - BR_IF shift, and go to state 123 - BR_TABLE shift, and go to state 124 - CALL shift, and go to state 125 - CALL_INDIRECT shift, and go to state 126 - RETURN shift, and go to state 127 - GET_LOCAL shift, and go to state 128 - SET_LOCAL shift, and go to state 129 - TEE_LOCAL shift, and go to state 130 - GET_GLOBAL shift, and go to state 131 - SET_GLOBAL shift, and go to state 132 - LOAD shift, and go to state 133 - STORE shift, and go to state 134 - CONST shift, and go to state 135 - UNARY shift, and go to state 136 - BINARY shift, and go to state 137 - COMPARE shift, and go to state 138 - CONVERT shift, and go to state 139 - SELECT shift, and go to state 140 - UNREACHABLE shift, and go to state 141 - CURRENT_MEMORY shift, and go to state 142 - GROW_MEMORY shift, and go to state 143 + "(" shift, and go to state 216 + NOP shift, and go to state 120 + DROP shift, and go to state 121 + BLOCK shift, and go to state 122 + IF shift, and go to state 123 + LOOP shift, and go to state 124 + BR shift, and go to state 125 + BR_IF shift, and go to state 126 + BR_TABLE shift, and go to state 127 + CALL shift, and go to state 128 + CALL_INDIRECT shift, and go to state 129 + RETURN shift, and go to state 130 + GET_LOCAL shift, and go to state 131 + SET_LOCAL shift, and go to state 132 + TEE_LOCAL shift, and go to state 133 + GET_GLOBAL shift, and go to state 134 + SET_GLOBAL shift, and go to state 135 + LOAD shift, and go to state 136 + STORE shift, and go to state 137 + CONST shift, and go to state 138 + UNARY shift, and go to state 139 + BINARY shift, and go to state 140 + COMPARE shift, and go to state 141 + CONVERT shift, and go to state 142 + SELECT shift, and go to state 143 + UNREACHABLE shift, and go to state 144 + CURRENT_MEMORY shift, and go to state 145 + GROW_MEMORY shift, and go to state 146 $default reduce using rule 81 (instr_list) - instr go to state 145 - plain_instr go to state 146 - block_instr go to state 147 - expr go to state 148 - instr_list go to state 400 + instr go to state 148 + plain_instr go to state 149 + block_instr go to state 150 + expr go to state 151 + instr_list go to state 403 -State 399 +State 402 75 if_: "(" THEN instr_list ")" "(" ELSE instr_list ")" . $default reduce using rule 75 (if_) -State 400 +State 403 77 if_: expr "(" THEN instr_list ")" "(" ELSE instr_list . ")" - ")" shift, and go to state 401 + ")" shift, and go to state 404 -State 401 +State 404 77 if_: expr "(" THEN instr_list ")" "(" ELSE instr_list ")" . diff --git a/src/resolve-names.cc b/src/resolve-names.cc index 045505eb..b20d1d78 100644 --- a/src/resolve-names.cc +++ b/src/resolve-names.cc @@ -355,7 +355,8 @@ static void visit_command(Context* ctx, Command* command) { case CommandType::Action: case CommandType::AssertReturn: - case CommandType::AssertReturnNan: + case CommandType::AssertReturnCanonicalNan: + case CommandType::AssertReturnArithmeticNan: case CommandType::AssertTrap: case CommandType::AssertExhaustion: case CommandType::Register: diff --git a/src/tools/wasm-interp.cc b/src/tools/wasm-interp.cc index f006f7ba..924c6b20 100644 --- a/src/tools/wasm-interp.cc +++ b/src/tools/wasm-interp.cc @@ -1331,7 +1331,9 @@ static Result on_assert_return_command( return result; } -static Result on_assert_return_nan_command(Context* ctx, Action* action) { +static Result on_assert_return_nan_command(Context* ctx, + Action* action, + bool canonical) { std::vector<InterpreterTypedValue> results; InterpreterResult iresult; @@ -1348,8 +1350,11 @@ static Result on_assert_return_nan_command(Context* ctx, Action* action) { const InterpreterTypedValue& actual = results[0]; switch (actual.type) { - case Type::F32: - if (!is_nan_f32(actual.value.f32_bits)) { + case Type::F32: { + typedef bool (*IsNanFunc)(uint32_t); + IsNanFunc is_nan_func = + canonical ? is_canonical_nan_f32 : is_arithmetic_nan_f32; + if (!is_nan_func(actual.value.f32_bits)) { char actual_str[MAX_TYPED_VALUE_CHARS]; sprint_typed_value(actual_str, sizeof(actual_str), &actual); print_command_error(ctx, "expected result to be nan, got %s", @@ -1357,9 +1362,13 @@ static Result on_assert_return_nan_command(Context* ctx, Action* action) { result = Result::Error; } break; + } - case Type::F64: - if (!is_nan_f64(actual.value.f64_bits)) { + case Type::F64: { + typedef bool (*IsNanFunc)(uint64_t); + IsNanFunc is_nan_func = + canonical ? is_canonical_nan_f64 : is_arithmetic_nan_f64; + if (!is_nan_func(actual.value.f64_bits)) { char actual_str[MAX_TYPED_VALUE_CHARS]; sprint_typed_value(actual_str, sizeof(actual_str), &actual); print_command_error(ctx, "expected result to be nan, got %s", @@ -1367,6 +1376,7 @@ static Result on_assert_return_nan_command(Context* ctx, Action* action) { result = Result::Error; } break; + } default: print_command_error(ctx, @@ -1526,7 +1536,20 @@ static Result parse_command(Context* ctx) { EXPECT_KEY("expected"); CHECK_RESULT(parse_const_vector(ctx, &expected)); on_assert_return_command(ctx, &action, expected); - } else if (match(ctx, "\"assert_return_nan\"")) { + } else if (match(ctx, "\"assert_return_canonical_nan\"")) { + Action action; + TypeVector expected; + + EXPECT(","); + CHECK_RESULT(parse_line(ctx)); + EXPECT(","); + CHECK_RESULT(parse_action(ctx, &action)); + EXPECT(","); + /* Not needed for wabt-interp, but useful for other parsers. */ + EXPECT_KEY("expected"); + CHECK_RESULT(parse_type_vector(ctx, &expected)); + on_assert_return_nan_command(ctx, &action, true); + } else if (match(ctx, "\"assert_return_arithmetic_nan\"")) { Action action; TypeVector expected; @@ -1538,7 +1561,7 @@ static Result parse_command(Context* ctx) { /* Not needed for wabt-interp, but useful for other parsers. */ EXPECT_KEY("expected"); CHECK_RESULT(parse_type_vector(ctx, &expected)); - on_assert_return_nan_command(ctx, &action); + on_assert_return_nan_command(ctx, &action, false); } else if (match(ctx, "\"assert_trap\"")) { Action action; StringSlice text; diff --git a/src/validator.cc b/src/validator.cc index 02c83e4d..dc1f12b1 100644 --- a/src/validator.cc +++ b/src/validator.cc @@ -921,6 +921,29 @@ static ActionResult check_action(Context* ctx, const Action* action) { return result; } +static void check_assert_return_nan_command(Context* ctx, + const Action* action) { + ActionResult result = check_action(ctx, action); + + /* a valid result type will either be f32 or f64; convert a TYPES result + * into a TYPE result, so it is easier to check below. Type::Any is + * used to specify a type that should not be checked (because an earlier + * error occurred). */ + if (result.kind == ActionResultKind::Types) { + if (result.types->size() == 1) { + result.kind = ActionResultKind::Type; + result.type = (*result.types)[0]; + } else { + print_error(ctx, &action->loc, "expected 1 result, got %" PRIzd, + result.types->size()); + result.type = Type::Any; + } + } + + if (result.kind == ActionResultKind::Type && result.type != Type::Any) + check_assert_return_nan_type(ctx, &action->loc, result.type, "action"); +} + static void check_command(Context* ctx, const Command* command) { switch (command->type) { case CommandType::Module: @@ -962,29 +985,15 @@ static void check_command(Context* ctx, const Command* command) { break; } - case CommandType::AssertReturnNan: { - const Action* action = command->assert_return_nan.action; - ActionResult result = check_action(ctx, action); - - /* a valid result type will either be f32 or f64; convert a TYPES result - * into a TYPE result, so it is easier to check below. Type::Any is - * used to specify a type that should not be checked (because an earlier - * error occurred). */ - if (result.kind == ActionResultKind::Types) { - if (result.types->size() == 1) { - result.kind = ActionResultKind::Type; - result.type = (*result.types)[0]; - } else { - print_error(ctx, &action->loc, "expected 1 result, got %" PRIzd, - result.types->size()); - result.type = Type::Any; - } - } + case CommandType::AssertReturnCanonicalNan: + check_assert_return_nan_command( + ctx, command->assert_return_canonical_nan.action); + break; - if (result.kind == ActionResultKind::Type && result.type != Type::Any) - check_assert_return_nan_type(ctx, &action->loc, result.type, "action"); + case CommandType::AssertReturnArithmeticNan: + check_assert_return_nan_command( + ctx, command->assert_return_arithmetic_nan.action); break; - } case CommandType::AssertTrap: case CommandType::AssertExhaustion: diff --git a/test/gen-spec-js.py b/test/gen-spec-js.py index c8502f31..11372abd 100755 --- a/test/gen-spec-js.py +++ b/test/gen-spec-js.py @@ -38,12 +38,14 @@ F32_NEG_INF = 0xff800000 F32_NEG_ZERO = 0x80000000 F32_SIGN_BIT = F32_NEG_ZERO F32_SIG_MASK = 0x7fffff +F32_QUIET_NAN = 0x7fc00000 F32_QUIET_NAN_TAG = 0x400000 F64_INF = 0x7ff0000000000000 F64_NEG_INF = 0xfff0000000000000 F64_NEG_ZERO = 0x8000000000000000 F64_SIGN_BIT = F64_NEG_ZERO F64_SIG_MASK = 0xfffffffffffff +F64_QUIET_NAN = 0x7ff8000000000000 F64_QUIET_NAN_TAG = 0x8000000000000 @@ -183,7 +185,8 @@ def IsValidJSCommand(command): expected = command['expected'] return (IsValidJSAction(action) and all(IsValidJSConstant(x) for x in expected)) - elif type_ in ('assert_return_nan', 'assert_trap', 'assert_exhaustion'): + elif type_ in ('assert_return_canonical_nan', 'assert_return_arithmetic_nan', + 'assert_trap', 'assert_exhaustion'): return IsValidJSAction(action) @@ -197,8 +200,9 @@ def CollectInvalidModuleCommands(commands): module_name = command.get('name') if module_name: module_map[module_name] = pair - elif command['type'] in ('assert_return', 'assert_return_nan', - 'assert_trap', 'assert_exhaustion'): + elif command['type'] in ( + 'assert_return', 'assert_return_canonical_nan', + 'assert_return_arithmetic_nan', 'assert_trap', 'assert_exhaustion'): if IsValidJSCommand(command): continue @@ -249,25 +253,13 @@ class ModuleExtender(object): self._Reinterpret(expected['type']) self._Constant(expected) self._Reinterpret(expected['type']) - self._Compare(expected['type']) + self._Eq(expected['type']) self.lines.extend(['i32.eqz', 'br_if 0']) self.lines.extend(['return', 'end', 'unreachable', ')']) - elif command_type == 'assert_return_nan': - type_ = command['expected'][0]['type'] - self.lines.append('(func (export "%s")' % new_field) - self.lines.append('(local %s)' % type_) - self.lines.append('block') - self._Action(command['action']) - self.lines.append('tee_local 0') - self._Reinterpret(type_) - self.lines.append('get_local 0') - self._Reinterpret(type_) - self._Compare(type_) - self.lines.extend( - ['i32.eqz', 'br_if 0', 'return', 'end', 'unreachable', ')']) - - # Change the command to assert_return, it won't return NaN anymore. - command['type'] = 'assert_return' + elif command_type == 'assert_return_canonical_nan': + self._AssertReturnNan(new_field, command, True) + elif command_type == 'assert_return_arithmetic_nan': + self._AssertReturnNan(new_field, command, False) elif command_type in ('assert_trap', 'assert_exhaustion'): self.lines.append('(func (export "%s")' % new_field) self._Action(command['action']) @@ -280,6 +272,22 @@ class ModuleExtender(object): command['action']['args'] = [] command['expected'] = [] + def _AssertReturnNan(self, new_field, command, canonical): + type_ = command['expected'][0]['type'] + self.lines.append('(func (export "%s")' % new_field) + self.lines.append('block') + self._Action(command['action']) + self._Reinterpret(type_) + self._NanBitmask(canonical, type_) + self._And(type_) + self._QuietNan(type_) + self._Eq(type_) + self.lines.extend( + ['i32.eqz', 'br_if 0', 'return', 'end', 'unreachable', ')']) + + # Change the command to assert_return, it won't return NaN anymore. + command['type'] = 'assert_return' + def _GetExports(self, wast): result = {} pattern = r'^\s*\(export \"(.*?)\"\s*\((\w+) (\d+)' @@ -306,7 +314,7 @@ class ModuleExtender(object): 'f64': ['i64.reinterpret/f64'] }[type_]) - def _Compare(self, type_): + def _Eq(self, type_): self.lines.append({ 'i32': 'i32.eq', 'i64': 'i64.eq', @@ -314,6 +322,36 @@ class ModuleExtender(object): 'f64': 'i64.eq' }[type_]) + def _And(self, type_): + self.lines.append({ + 'i32': 'i32.and', + 'i64': 'i64.and', + 'f32': 'i32.and', + 'f64': 'i64.and' + }[type_]) + + def _NanBitmask(self, canonical, type_): + # When checking for canonical NaNs, the value can differ only in the sign + # bit from +nan. For arithmetic NaNs, the sign bit and the rest of the tag + # can differ as well. + assert(type_ in ('f32', 'f64')) + if not canonical: + return self._QuietNan(type_) + + if type_ == 'f32': + line = 'i32.const 0x7fffffff' + else: + line = 'i64.const 0x7fffffffffffffff' + self.lines.append(line) + + def _QuietNan(self, type_): + assert(type_ in ('f32', 'f64')) + if type_ == 'f32': + line = 'i32.const 0x%x' % F32_QUIET_NAN + else: + line = 'i64.const 0x%x' % F64_QUIET_NAN + self.lines.append(line) + def _Constant(self, const): inst = None type_ = const['type'] @@ -359,7 +397,8 @@ class JSWriter(object): 'assert_unlinkable': self._WriteAssertModuleCommand, 'assert_uninstantiable': self._WriteAssertModuleCommand, 'assert_return': self._WriteAssertReturnCommand, - 'assert_return_nan': self._WriteAssertActionCommand, + 'assert_return_canonical_nan': self._WriteAssertActionCommand, + 'assert_return_arithmetic_nan': self._WriteAssertActionCommand, 'assert_trap': self._WriteAssertActionCommand, 'assert_exhaustion': self._WriteAssertActionCommand, } diff --git a/test/gen-spec-js/assert_return_nan.txt b/test/gen-spec-js/assert_return_nan.txt index 754d1345..b154c108 100644 --- a/test/gen-spec-js/assert_return_nan.txt +++ b/test/gen-spec-js/assert_return_nan.txt @@ -1,16 +1,35 @@ ;;; TOOL: run-gen-spec-js ;;; FLAGS: --prefix=%(test_dir)s/gen-spec-empty-prefix.js (module - (func (export "nan") (result f32) f32.const nan) - (func (export "passthru") (param f32) (result f32) get_local 0)) + (func (export "f32_nan") (result f32) f32.const nan) + (func (export "f32_nan_with_tag") (result f32) f32.const nan:0x1234) + (func (export "f32_passthru") (param f32) (result f32) get_local 0) + + (func (export "f64_nan") (result f64) f64.const nan) + (func (export "f64_nan_with_tag") (result f64) f64.const nan:0x1234) + (func (export "f64_passthru") (param f64) (result f64) get_local 0)) + +(assert_return_canonical_nan (invoke "f32_nan")) +(assert_return_arithmetic_nan (invoke "f32_nan_with_tag")) +(assert_return_canonical_nan (invoke "f64_nan")) +(assert_return_arithmetic_nan (invoke "f64_nan_with_tag")) -(assert_return_nan (invoke "nan")) ;; Rewritten to avoid passing nan as a parameter. -(assert_return_nan (invoke "passthru" (f32.const -nan))) +(assert_return_canonical_nan (invoke "f32_passthru" (f32.const -nan))) +(assert_return_arithmetic_nan (invoke "f32_passthru" (f32.const nan:0x1234))) +(assert_return_canonical_nan (invoke "f64_passthru" (f64.const -nan))) +(assert_return_arithmetic_nan (invoke "f64_passthru" (f64.const nan:0x1234))) + (;; STDOUT ;;; // A deliberately empty file for testing. -$$ = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x0d\x03\x60\x00\x01\x7d\x60\x01\x7d\x01\x7d\x60\x00\x00\x03\x04\x03\x00\x01\x02\x07\x1d\x03\x03\x6e\x61\x6e\x00\x00\x08\x70\x61\x73\x73\x74\x68\x72\x75\x00\x01\x08\x61\x73\x73\x65\x72\x74\x5f\x30\x00\x02\x0a\x29\x03\x07\x00\x43\x00\x00\xc0\x7f\x0b\x04\x00\x20\x00\x0b\x1a\x01\x01\x7d\x02\x40\x43\x00\x00\xc0\xff\x10\x01\x22\x00\xbc\x20\x00\xbc\x46\x45\x0d\x00\x0f\x0b\x00\x0b"); -assert_return_nan(() => $$.exports["nan"]()); +$$ = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x16\x05\x60\x00\x01\x7d\x60\x01\x7d\x01\x7d\x60\x00\x01\x7c\x60\x01\x7c\x01\x7c\x60\x00\x00\x03\x0b\x0a\x00\x00\x01\x02\x02\x03\x04\x04\x04\x04\x07\x85\x01\x0a\x07\x66\x33\x32\x5f\x6e\x61\x6e\x00\x00\x10\x66\x33\x32\x5f\x6e\x61\x6e\x5f\x77\x69\x74\x68\x5f\x74\x61\x67\x00\x01\x0c\x66\x33\x32\x5f\x70\x61\x73\x73\x74\x68\x72\x75\x00\x02\x07\x66\x36\x34\x5f\x6e\x61\x6e\x00\x03\x10\x66\x36\x34\x5f\x6e\x61\x6e\x5f\x77\x69\x74\x68\x5f\x74\x61\x67\x00\x04\x0c\x66\x36\x34\x5f\x70\x61\x73\x73\x74\x68\x72\x75\x00\x05\x08\x61\x73\x73\x65\x72\x74\x5f\x30\x00\x06\x08\x61\x73\x73\x65\x72\x74\x5f\x31\x00\x07\x08\x61\x73\x73\x65\x72\x74\x5f\x32\x00\x08\x08\x61\x73\x73\x65\x72\x74\x5f\x33\x00\x09\x0a\xd3\x01\x0a\x07\x00\x43\x00\x00\xc0\x7f\x0b\x07\x00\x43\x34\x12\x80\x7f\x0b\x04\x00\x20\x00\x0b\x0b\x00\x44\x00\x00\x00\x00\x00\x00\xf8\x7f\x0b\x0b\x00\x44\x34\x12\x00\x00\x00\x00\xf0\x7f\x0b\x04\x00\x20\x00\x0b\x20\x00\x02\x40\x43\x00\x00\xc0\xff\x10\x02\xbc\x41\xff\xff\xff\xff\x07\x71\x41\x80\x80\x80\xfe\x07\x46\x45\x0d\x00\x0f\x0b\x00\x0b\x20\x00\x02\x40\x43\x34\x12\x80\x7f\x10\x02\xbc\x41\x80\x80\x80\xfe\x07\x71\x41\x80\x80\x80\xfe\x07\x46\x45\x0d\x00\x0f\x0b\x00\x0b\x2e\x00\x02\x40\x44\x00\x00\x00\x00\x00\x00\xf8\xff\x10\x05\xbd\x42\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x83\x42\x80\x80\x80\x80\x80\x80\x80\xfc\xff\x00\x51\x45\x0d\x00\x0f\x0b\x00\x0b\x2e\x00\x02\x40\x44\x34\x12\x00\x00\x00\x00\xf0\x7f\x10\x05\xbd\x42\x80\x80\x80\x80\x80\x80\x80\xfc\xff\x00\x83\x42\x80\x80\x80\x80\x80\x80\x80\xfc\xff\x00\x51\x45\x0d\x00\x0f\x0b\x00\x0b"); +assert_return_canonical_nan(() => $$.exports["f32_nan"]()); +assert_return_arithmetic_nan(() => $$.exports["f32_nan_with_tag"]()); +assert_return_canonical_nan(() => $$.exports["f64_nan"]()); +assert_return_arithmetic_nan(() => $$.exports["f64_nan_with_tag"]()); assert_return(() => $$.exports["assert_0"]()); +assert_return(() => $$.exports["assert_1"]()); +assert_return(() => $$.exports["assert_2"]()); +assert_return(() => $$.exports["assert_3"]()); ;;; STDOUT ;;) diff --git a/test/gen-spec-prefix.js b/test/gen-spec-prefix.js index 36692dc0..ed68c84d 100644 --- a/test/gen-spec-prefix.js +++ b/test/gen-spec-prefix.js @@ -83,8 +83,19 @@ function assert_return(action, expected) { }; } -function assert_return_nan(action) { +function assert_return_canonical_nan(action) { let actual = action(); + // Note that JS can't reliably distinguish different NaN values, + // so there's no good way to test that it's a canonical NaN. + if (!Number.isNaN(actual)) { + throw new Error("Wasm return value NaN expected, got " + actual); + }; +} + +function assert_return_arithmetic_nan(action) { + let actual = action(); + // Note that JS can't reliably distinguish different NaN values, + // so there's no good way to test that it's a canonical NaN. if (!Number.isNaN(actual)) { throw new Error("Wasm return value NaN expected, got " + actual); }; diff --git a/test/parse/assert/assert-return-arithmetic-nan.txt b/test/parse/assert/assert-return-arithmetic-nan.txt new file mode 100644 index 00000000..0d135b1c --- /dev/null +++ b/test/parse/assert/assert-return-arithmetic-nan.txt @@ -0,0 +1,10 @@ +;;; FLAGS: --spec +(module + (func $foo (param f32) (result f32) + get_local 0 + f32.const 0 + f32.div) + (export "foo" (func $foo))) + +(assert_return_arithmetic_nan + (invoke "foo" (f32.const 0))) diff --git a/test/parse/assert/assertreturnnan.txt b/test/parse/assert/assert-return-canonical-nan.txt index c570d89d..d586833e 100644 --- a/test/parse/assert/assertreturnnan.txt +++ b/test/parse/assert/assert-return-canonical-nan.txt @@ -6,5 +6,5 @@ f32.div) (export "foo" (func $foo))) -(assert_return_nan +(assert_return_canonical_nan (invoke "foo" (f32.const 0))) diff --git a/test/parse/assert/bad-assert-return-arithmetic-nan-invalid-return-type.txt b/test/parse/assert/bad-assert-return-arithmetic-nan-invalid-return-type.txt new file mode 100644 index 00000000..417a8193 --- /dev/null +++ b/test/parse/assert/bad-assert-return-arithmetic-nan-invalid-return-type.txt @@ -0,0 +1,13 @@ +;;; ERROR: 1 +;;; FLAGS: --spec +(module + (func $foo (result i32) + i32.const 0) + (export "foo" (func $foo))) + +(assert_return_arithmetic_nan (invoke "foo")) +(;; STDERR ;;; +out/test/parse/assert/bad-assert-return-arithmetic-nan-invalid-return-type.txt:8:32: type mismatch at action. got i32, expected f32 or f64 +(assert_return_arithmetic_nan (invoke "foo")) + ^^^^^^ +;;; STDERR ;;) diff --git a/test/parse/assert/bad-assert-return-arithmetic-nan-too-few.txt b/test/parse/assert/bad-assert-return-arithmetic-nan-too-few.txt new file mode 100644 index 00000000..7cb624c7 --- /dev/null +++ b/test/parse/assert/bad-assert-return-arithmetic-nan-too-few.txt @@ -0,0 +1,12 @@ +;;; ERROR: 1 +;;; FLAGS: --spec +(module + (func $foo (param i32) (result f32) + f32.const 0) + (export "foo" (func $foo))) +(assert_return_arithmetic_nan (invoke "foo")) +(;; STDERR ;;; +out/test/parse/assert/bad-assert-return-arithmetic-nan-too-few.txt:7:32: too few parameters to function. got 0, expected 1 +(assert_return_arithmetic_nan (invoke "foo")) + ^^^^^^ +;;; STDERR ;;) diff --git a/test/parse/assert/bad-assert-return-arithmetic-nan-too-many.txt b/test/parse/assert/bad-assert-return-arithmetic-nan-too-many.txt new file mode 100644 index 00000000..971893b6 --- /dev/null +++ b/test/parse/assert/bad-assert-return-arithmetic-nan-too-many.txt @@ -0,0 +1,12 @@ +;;; ERROR: 1 +;;; FLAGS: --spec +(module + (func $foo (result f32) + f32.const 0) + (export "foo" (func $foo))) +(assert_return_arithmetic_nan (invoke "foo" (f32.const 0))) +(;; STDERR ;;; +out/test/parse/assert/bad-assert-return-arithmetic-nan-too-many.txt:7:32: too many parameters to function. got 1, expected 0 +(assert_return_arithmetic_nan (invoke "foo" (f32.const 0))) + ^^^^^^ +;;; STDERR ;;) diff --git a/test/parse/assert/bad-assert-return-arithmetic-nan-unknown-function.txt b/test/parse/assert/bad-assert-return-arithmetic-nan-unknown-function.txt new file mode 100644 index 00000000..e6c3956a --- /dev/null +++ b/test/parse/assert/bad-assert-return-arithmetic-nan-unknown-function.txt @@ -0,0 +1,9 @@ +;;; ERROR: 1 +;;; FLAGS: --spec +(module) +(assert_return_arithmetic_nan (invoke "foo")) +(;; STDERR ;;; +out/test/parse/assert/bad-assert-return-arithmetic-nan-unknown-function.txt:4:32: unknown function export "foo" +(assert_return_arithmetic_nan (invoke "foo")) + ^^^^^^ +;;; STDERR ;;) diff --git a/test/parse/assert/bad-assert-return-canonical-nan-invalid-return-type.txt b/test/parse/assert/bad-assert-return-canonical-nan-invalid-return-type.txt new file mode 100644 index 00000000..0daae22a --- /dev/null +++ b/test/parse/assert/bad-assert-return-canonical-nan-invalid-return-type.txt @@ -0,0 +1,13 @@ +;;; ERROR: 1 +;;; FLAGS: --spec +(module + (func $foo (result i32) + i32.const 0) + (export "foo" (func $foo))) + +(assert_return_canonical_nan (invoke "foo")) +(;; STDERR ;;; +out/test/parse/assert/bad-assert-return-canonical-nan-invalid-return-type.txt:8:31: type mismatch at action. got i32, expected f32 or f64 +(assert_return_canonical_nan (invoke "foo")) + ^^^^^^ +;;; STDERR ;;) diff --git a/test/parse/assert/bad-assert-return-canonical-nan-too-few.txt b/test/parse/assert/bad-assert-return-canonical-nan-too-few.txt new file mode 100644 index 00000000..995fab8a --- /dev/null +++ b/test/parse/assert/bad-assert-return-canonical-nan-too-few.txt @@ -0,0 +1,12 @@ +;;; ERROR: 1 +;;; FLAGS: --spec +(module + (func $foo (param i32) (result f32) + f32.const 0) + (export "foo" (func $foo))) +(assert_return_canonical_nan (invoke "foo")) +(;; STDERR ;;; +out/test/parse/assert/bad-assert-return-canonical-nan-too-few.txt:7:31: too few parameters to function. got 0, expected 1 +(assert_return_canonical_nan (invoke "foo")) + ^^^^^^ +;;; STDERR ;;) diff --git a/test/parse/assert/bad-assert-return-canonical-nan-too-many.txt b/test/parse/assert/bad-assert-return-canonical-nan-too-many.txt new file mode 100644 index 00000000..fd994e5b --- /dev/null +++ b/test/parse/assert/bad-assert-return-canonical-nan-too-many.txt @@ -0,0 +1,12 @@ +;;; ERROR: 1 +;;; FLAGS: --spec +(module + (func $foo (result f32) + f32.const 0) + (export "foo" (func $foo))) +(assert_return_canonical_nan (invoke "foo" (f32.const 0))) +(;; STDERR ;;; +out/test/parse/assert/bad-assert-return-canonical-nan-too-many.txt:7:31: too many parameters to function. got 1, expected 0 +(assert_return_canonical_nan (invoke "foo" (f32.const 0))) + ^^^^^^ +;;; STDERR ;;) diff --git a/test/parse/assert/bad-assert-return-canonical-nan-unknown-function.txt b/test/parse/assert/bad-assert-return-canonical-nan-unknown-function.txt new file mode 100644 index 00000000..5d48f729 --- /dev/null +++ b/test/parse/assert/bad-assert-return-canonical-nan-unknown-function.txt @@ -0,0 +1,9 @@ +;;; ERROR: 1 +;;; FLAGS: --spec +(module) +(assert_return_canonical_nan (invoke "foo")) +(;; STDERR ;;; +out/test/parse/assert/bad-assert-return-canonical-nan-unknown-function.txt:4:31: unknown function export "foo" +(assert_return_canonical_nan (invoke "foo")) + ^^^^^^ +;;; STDERR ;;) diff --git a/test/parse/assert/bad-assertreturnnan-invalid-return-type.txt b/test/parse/assert/bad-assertreturnnan-invalid-return-type.txt deleted file mode 100644 index 5922fab6..00000000 --- a/test/parse/assert/bad-assertreturnnan-invalid-return-type.txt +++ /dev/null @@ -1,13 +0,0 @@ -;;; ERROR: 1 -;;; FLAGS: --spec -(module - (func $foo (result i32) - i32.const 0) - (export "foo" (func $foo))) - -(assert_return_nan (invoke "foo")) -(;; STDERR ;;; -out/test/parse/assert/bad-assertreturnnan-invalid-return-type.txt:8:21: type mismatch at action. got i32, expected f32 or f64 -(assert_return_nan (invoke "foo")) - ^^^^^^ -;;; STDERR ;;) diff --git a/test/parse/assert/bad-assertreturnnan-too-few.txt b/test/parse/assert/bad-assertreturnnan-too-few.txt deleted file mode 100644 index 454b3ffc..00000000 --- a/test/parse/assert/bad-assertreturnnan-too-few.txt +++ /dev/null @@ -1,12 +0,0 @@ -;;; ERROR: 1 -;;; FLAGS: --spec -(module - (func $foo (param i32) (result f32) - f32.const 0) - (export "foo" (func $foo))) -(assert_return_nan (invoke "foo")) -(;; STDERR ;;; -out/test/parse/assert/bad-assertreturnnan-too-few.txt:7:21: too few parameters to function. got 0, expected 1 -(assert_return_nan (invoke "foo")) - ^^^^^^ -;;; STDERR ;;) diff --git a/test/parse/assert/bad-assertreturnnan-too-many.txt b/test/parse/assert/bad-assertreturnnan-too-many.txt deleted file mode 100644 index 38d765d2..00000000 --- a/test/parse/assert/bad-assertreturnnan-too-many.txt +++ /dev/null @@ -1,12 +0,0 @@ -;;; ERROR: 1 -;;; FLAGS: --spec -(module - (func $foo (result f32) - f32.const 0) - (export "foo" (func $foo))) -(assert_return_nan (invoke "foo" (f32.const 0))) -(;; STDERR ;;; -out/test/parse/assert/bad-assertreturnnan-too-many.txt:7:21: too many parameters to function. got 1, expected 0 -(assert_return_nan (invoke "foo" (f32.const 0))) - ^^^^^^ -;;; STDERR ;;) diff --git a/test/parse/assert/bad-assertreturnnan-unknown-function.txt b/test/parse/assert/bad-assertreturnnan-unknown-function.txt deleted file mode 100644 index 7964a65f..00000000 --- a/test/parse/assert/bad-assertreturnnan-unknown-function.txt +++ /dev/null @@ -1,9 +0,0 @@ -;;; ERROR: 1 -;;; FLAGS: --spec -(module) -(assert_return_nan (invoke "foo")) -(;; STDERR ;;; -out/test/parse/assert/bad-assertreturnnan-unknown-function.txt:4:21: unknown function export "foo" -(assert_return_nan (invoke "foo")) - ^^^^^^ -;;; STDERR ;;) diff --git a/test/spec/f32.txt b/test/spec/f32.txt index ab5859c0..a0a6b57c 100644 --- a/test/spec/f32.txt +++ b/test/spec/f32.txt @@ -2,5 +2,5 @@ ;;; TOOL: run-interp-spec ;;; STDIN_FILE: third_party/testsuite/f32.wast (;; STDOUT ;;; -2394/2394 tests passed. +2446/2446 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/f64.txt b/test/spec/f64.txt index 6194fac3..c3a5d9a2 100644 --- a/test/spec/f64.txt +++ b/test/spec/f64.txt @@ -2,5 +2,5 @@ ;;; TOOL: run-interp-spec ;;; STDIN_FILE: third_party/testsuite/f64.wast (;; STDOUT ;;; -2394/2394 tests passed. +2462/2462 tests passed. ;;; STDOUT ;;) diff --git a/third_party/testsuite b/third_party/testsuite -Subproject 066e17da67119f0771af6f55faf3ff8acf2469d +Subproject d008c314e4e369fa00107a6e010e1c6bf9bff70 |