diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/binary-reader-interpreter.cc | 5 | ||||
-rw-r--r-- | src/binary-reader-ir.cc | 3 | ||||
-rw-r--r-- | src/binary-reader.cc | 4 | ||||
-rw-r--r-- | src/binary-writer.cc | 8 | ||||
-rw-r--r-- | src/common.cc | 2 | ||||
-rw-r--r-- | src/common.h | 3 | ||||
-rw-r--r-- | src/interpreter.cc | 4 | ||||
-rw-r--r-- | src/ir.cc | 10 | ||||
-rw-r--r-- | src/ir.h | 14 | ||||
-rw-r--r-- | src/prebuilt/wast-lexer-gen.cc | 3767 | ||||
-rw-r--r-- | src/prebuilt/wast-parser-gen.cc | 2415 | ||||
-rw-r--r-- | src/prebuilt/wast-parser-gen.hh | 35 | ||||
-rw-r--r-- | src/prebuilt/wast-parser-gen.output | 7362 | ||||
-rw-r--r-- | src/resolve-names.cc | 4 | ||||
-rw-r--r-- | src/validator.cc | 18 | ||||
-rw-r--r-- | src/wast-lexer.cc | 1 | ||||
-rw-r--r-- | src/wast-parser-lexer-shared.h | 1 | ||||
-rw-r--r-- | src/wast-parser.y | 104 | ||||
-rw-r--r-- | src/wat-writer.cc | 18 |
19 files changed, 7197 insertions, 6581 deletions
diff --git a/src/binary-reader-interpreter.cc b/src/binary-reader-interpreter.cc index 52fcc32e..53e83c46 100644 --- a/src/binary-reader-interpreter.cc +++ b/src/binary-reader-interpreter.cc @@ -939,6 +939,11 @@ wabt::Result BinaryReaderInterpreter::OnExport(Index index, } break; } + + case ExternalKind::Except: + // TODO(karlschimpf) Define + WABT_FATAL("BinaryReaderInterpreter::OnExport(except) not implemented"); + break; } return AppendExport(module, kind, item_index, name); } diff --git a/src/binary-reader-ir.cc b/src/binary-reader-ir.cc index 029cb3fc..5e58e7d6 100644 --- a/src/binary-reader-ir.cc +++ b/src/binary-reader-ir.cc @@ -481,6 +481,9 @@ Result BinaryReaderIR::OnExport(Index index, case ExternalKind::Global: assert(item_index < module->globals.size()); break; + case ExternalKind::Except: + WABT_FATAL("OnExport(except) not implemented\n"); + break; } export_->var.type = VarType::Index; export_->var.index = item_index; diff --git a/src/binary-reader.cc b/src/binary-reader.cc index 7c9e4d4b..7effa8bc 100644 --- a/src/binary-reader.cc +++ b/src/binary-reader.cc @@ -1361,6 +1361,10 @@ Result BinaryReader::ReadExportSection(Offset section_size) { ERROR_UNLESS(item_index < NumTotalGlobals(), "invalid export global index: %" PRIindex, item_index); break; + case ExternalKind::Except: + // TODO(karlschimpf) Define. + WABT_FATAL("read export except not implemented"); + break; } CALLBACK(OnExport, i, static_cast<ExternalKind>(external_kind), item_index, diff --git a/src/binary-writer.cc b/src/binary-writer.cc index 788b6d24..3abc12b7 100644 --- a/src/binary-writer.cc +++ b/src/binary-writer.cc @@ -753,6 +753,10 @@ Result BinaryWriter::WriteModule(const Module* module) { case ExternalKind::Global: WriteGlobalHeader(import->global); break; + case ExternalKind::Except: + // TODO(karlschimpf) Define. + WABT_FATAL("write import except not implemented\n"); + break; } } EndSection(); @@ -843,6 +847,10 @@ Result BinaryWriter::WriteModule(const Module* module) { write_u32_leb128(&stream_, index, "export global index"); break; } + case ExternalKind::Except: + // TODO(karlschimpf) Define. + WABT_FATAL("write export except not implemented\n"); + break; } } EndSection(); diff --git a/src/common.cc b/src/common.cc index 7884d2ca..634d3a6c 100644 --- a/src/common.cc +++ b/src/common.cc @@ -34,7 +34,7 @@ namespace wabt { Reloc::Reloc(RelocType type, Offset offset, Index index, int32_t addend) : type(type), offset(offset), index(index), addend(addend) {} -const char* g_kind_name[] = {"func", "table", "memory", "global"}; +const char* g_kind_name[] = {"func", "table", "memory", "global", "except"}; WABT_STATIC_ASSERT(WABT_ARRAY_SIZE(g_kind_name) == kExternalKindCount); const char* g_reloc_type_name[] = {"R_FUNC_INDEX_LEB", diff --git a/src/common.h b/src/common.h index f2278c07..3b4d5a54 100644 --- a/src/common.h +++ b/src/common.h @@ -187,9 +187,10 @@ enum class ExternalKind { Table = 1, Memory = 2, Global = 3, + Except = 4, First = Func, - Last = Global, + Last = Except, }; static const int kExternalKindCount = WABT_ENUM_COUNT(ExternalKind); diff --git a/src/interpreter.cc b/src/interpreter.cc index bffec0ae..29a6ee53 100644 --- a/src/interpreter.cc +++ b/src/interpreter.cc @@ -120,6 +120,10 @@ Import& Import::operator=(Import&& other) { global.type = other.global.type; global.mutable_ = other.global.mutable_; break; + case ExternalKind::Except: + // TODO(karlschimpf) Define + WABT_FATAL("Import::operator=() not implemented for exceptions"); + break; } return *this; } @@ -422,9 +422,8 @@ Expr* Expr::CreateCatch(Var var, Expr* first) { } // static -Expr* Expr::CreateCatchAll(Var var, Expr* first) { +Expr* Expr::CreateCatchAll(Expr* first) { Expr* expr = new Expr(ExprType::CatchAll); - expr->catch_.var = var; expr->catch_.first = first; return expr; } @@ -665,6 +664,9 @@ Import::~Import() { case ExternalKind::Global: delete global; break; + case ExternalKind::Except: + delete except; + break; } } @@ -693,6 +695,9 @@ ModuleField::ModuleField(ModuleFieldType type) ModuleField::~ModuleField() { switch (type) { + case ModuleFieldType::Except: + delete except; + break; case ModuleFieldType::Func: delete func; break; @@ -729,6 +734,7 @@ ModuleField::~ModuleField() { Module::Module() : first_field(nullptr), last_field(nullptr), + num_except_imports(0), num_func_imports(0), num_table_imports(0), num_memory_imports(0), @@ -144,7 +144,7 @@ struct Expr { static Expr* CreateCall(Var); static Expr* CreateCallIndirect(Var); static Expr* CreateCatch(Var v, Expr* first); - static Expr* CreateCatchAll(Var v, Expr* first); + static Expr* CreateCatchAll(Expr* first); static Expr* CreateCompare(Opcode); static Expr* CreateConst(const Const&); static Expr* CreateConvert(Opcode); @@ -177,6 +177,7 @@ struct Expr { struct Block *block, *loop; struct { Block* block; Expr* first_catch; } try_block; struct { Var var; Expr* first; } catch_; + struct { Expr* first; } catch_all; struct { Var var; } throw_, rethrow_; struct { Var var; } br, br_if; struct { VarVector* targets; Var default_target; } br_table; @@ -189,6 +190,11 @@ struct Expr { }; }; +struct Exception { + StringSlice name; + TypeVector sig; +}; + struct FuncSignature { TypeVector param_types; TypeVector result_types; @@ -319,6 +325,7 @@ struct Import { Table* table; Memory* memory; Global* global; + Exception* except; }; }; @@ -343,6 +350,7 @@ enum class ModuleFieldType { Memory, DataSegment, Start, + Except }; struct ModuleField { @@ -364,6 +372,7 @@ struct ModuleField { ElemSegment* elem_segment; Memory* memory; DataSegment* data_segment; + Exception* except; Var start; }; }; @@ -398,6 +407,7 @@ struct Module { ModuleField* first_field; ModuleField* last_field; + Index num_except_imports; Index num_func_imports; Index num_table_imports; Index num_memory_imports; @@ -405,6 +415,7 @@ struct Module { // Cached for convenience; the pointers are shared with values that are // stored in either ModuleField or Import. + std::vector<Exception*> excepts; std::vector<Func*> funcs; std::vector<Global*> globals; std::vector<Import*> imports; @@ -416,6 +427,7 @@ struct Module { std::vector<DataSegment*> data_segments; Var* start; + BindingHash except_bindings; BindingHash func_bindings; BindingHash global_bindings; BindingHash export_bindings; diff --git a/src/prebuilt/wast-lexer-gen.cc b/src/prebuilt/wast-lexer-gen.cc index 0269e849..042011ee 100644 --- a/src/prebuilt/wast-lexer-gen.cc +++ b/src/prebuilt/wast-lexer-gen.cc @@ -447,12 +447,12 @@ YYCOND_BLOCK_COMMENT: yy34: ++cursor_; yy35: -#line 481 "src/wast-lexer.cc" +#line 482 "src/wast-lexer.cc" { continue; } #line 453 "src/prebuilt/wast-lexer-gen.cc" yy36: ++cursor_; -#line 480 "src/wast-lexer.cc" +#line 481 "src/wast-lexer.cc" { NEWLINE; continue; } #line 458 "src/prebuilt/wast-lexer-gen.cc" yy38: @@ -466,7 +466,7 @@ yy39: yy40: ++cursor_; yy41: -#line 482 "src/wast-lexer.cc" +#line 483 "src/wast-lexer.cc" { MAYBE_MALFORMED_UTF8(" in block comment"); } #line 472 "src/prebuilt/wast-lexer-gen.cc" yy42: @@ -501,12 +501,12 @@ yy47: goto yy41; yy48: ++cursor_; -#line 476 "src/wast-lexer.cc" +#line 477 "src/wast-lexer.cc" { COMMENT_NESTING++; continue; } #line 507 "src/prebuilt/wast-lexer-gen.cc" yy50: ++cursor_; -#line 477 "src/wast-lexer.cc" +#line 478 "src/wast-lexer.cc" { if (--COMMENT_NESTING == 0) BEGIN(YYCOND_INIT); continue; } @@ -581,7 +581,7 @@ YYCOND_LINE_COMMENT: } } yy57: -#line 474 "src/wast-lexer.cc" +#line 475 "src/wast-lexer.cc" { continue; } #line 587 "src/prebuilt/wast-lexer-gen.cc" yy58: @@ -606,13 +606,13 @@ yy58: yy60: ++cursor_; BEGIN(YYCOND_i); -#line 473 "src/wast-lexer.cc" +#line 474 "src/wast-lexer.cc" { NEWLINE; continue; } #line 612 "src/prebuilt/wast-lexer-gen.cc" yy62: ++cursor_; yy63: -#line 489 "src/wast-lexer.cc" +#line 490 "src/wast-lexer.cc" { MAYBE_MALFORMED_UTF8(""); } #line 618 "src/prebuilt/wast-lexer-gen.cc" yy64: @@ -835,7 +835,7 @@ YYCOND_i: yy79: ++cursor_; yy80: -#line 488 "src/wast-lexer.cc" +#line 489 "src/wast-lexer.cc" { ERROR("unexpected char"); continue; } #line 841 "src/prebuilt/wast-lexer-gen.cc" yy81: @@ -845,12 +845,12 @@ yy81: if (yybm[0+yych] & 4) { goto yy81; } -#line 484 "src/wast-lexer.cc" +#line 485 "src/wast-lexer.cc" { continue; } #line 851 "src/prebuilt/wast-lexer-gen.cc" yy84: ++cursor_; -#line 483 "src/wast-lexer.cc" +#line 484 "src/wast-lexer.cc" { NEWLINE; continue; } #line 856 "src/prebuilt/wast-lexer-gen.cc" yy86: @@ -862,7 +862,7 @@ yy87: goto yy86; } yy88: -#line 485 "src/wast-lexer.cc" +#line 486 "src/wast-lexer.cc" { ERROR("unexpected token \"%.*s\"", static_cast<int>(yyleng), yytext); continue; } @@ -1120,7 +1120,7 @@ yy119: yy120: ++cursor_; yy121: -#line 489 "src/wast-lexer.cc" +#line 490 "src/wast-lexer.cc" { MAYBE_MALFORMED_UTF8(""); } #line 1126 "src/prebuilt/wast-lexer-gen.cc" yy122: @@ -1289,13 +1289,13 @@ yy141: if (yych <= ';') goto yy142; if (yych <= '}') goto yy86; yy142: -#line 470 "src/wast-lexer.cc" +#line 471 "src/wast-lexer.cc" { TEXT; RETURN(VAR); } #line 1295 "src/prebuilt/wast-lexer-gen.cc" yy143: ++cursor_; BEGIN(YYCOND_BLOCK_COMMENT); -#line 475 "src/wast-lexer.cc" +#line 476 "src/wast-lexer.cc" { COMMENT_NESTING = 1; continue; } #line 1301 "src/prebuilt/wast-lexer-gen.cc" yy145: @@ -1420,7 +1420,7 @@ yy155: yy156: ++cursor_; BEGIN(YYCOND_LINE_COMMENT); -#line 472 "src/wast-lexer.cc" +#line 473 "src/wast-lexer.cc" { continue; } #line 1426 "src/prebuilt/wast-lexer-gen.cc" yy158: @@ -1492,39 +1492,40 @@ yy170: goto yy87; yy171: yych = *++cursor_; - if (yych == 'p') goto yy227; + if (yych == 'c') goto yy227; + if (yych == 'p') goto yy228; goto yy87; yy172: yych = *++cursor_; - if (yych == '2') goto yy228; + if (yych == '2') goto yy229; goto yy87; yy173: yych = *++cursor_; - if (yych == '4') goto yy230; + if (yych == '4') goto yy231; goto yy87; yy174: yych = *++cursor_; - if (yych == 'n') goto yy232; + if (yych == 'n') goto yy233; goto yy87; yy175: yych = *++cursor_; - if (yych == 't') goto yy233; + if (yych == 't') goto yy234; goto yy87; yy176: yych = *++cursor_; - if (yych == 'o') goto yy235; + if (yych == 'o') goto yy236; goto yy87; yy177: yych = *++cursor_; - if (yych == 'o') goto yy236; + if (yych == 'o') goto yy237; goto yy87; yy178: yych = *++cursor_; - if (yych == '2') goto yy237; + if (yych == '2') goto yy238; goto yy87; yy179: yych = *++cursor_; - if (yych == '4') goto yy239; + if (yych == '4') goto yy240; goto yy87; yy180: ++cursor_; @@ -1533,96 +1534,96 @@ yy180: } #line 262 "src/wast-lexer.cc" { RETURN(IF); } -#line 1537 "src/prebuilt/wast-lexer-gen.cc" +#line 1538 "src/prebuilt/wast-lexer-gen.cc" yy182: yych = *++cursor_; - if (yych == 'p') goto yy241; + if (yych == 'p') goto yy242; goto yy87; yy183: yych = *++cursor_; - if (yych == 'f') goto yy242; - if (yych == 'v') goto yy244; + if (yych == 'f') goto yy243; + if (yych == 'v') goto yy245; goto yy87; yy184: yych = *++cursor_; - if (yych == 'c') goto yy245; - if (yych == 'o') goto yy246; + if (yych == 'c') goto yy246; + if (yych == 'o') goto yy247; goto yy87; yy185: yych = *++cursor_; - if (yych == 'm') goto yy247; + if (yych == 'm') goto yy248; goto yy87; yy186: yych = *++cursor_; - if (yych == 'd') goto yy248; + if (yych == 'd') goto yy249; goto yy87; yy187: yych = *++cursor_; - if (yych == 't') goto yy249; + if (yych == 't') goto yy250; goto yy87; yy188: yych = *++cursor_; - if (yych == 'n') goto yy251; + if (yych == 'n') goto yy252; goto yy87; yy189: yych = *++cursor_; - if (yych == 'p') goto yy253; + if (yych == 'p') goto yy254; goto yy87; yy190: yych = *++cursor_; - if (yych == 'f') goto yy255; + if (yych == 'f') goto yy256; goto yy87; yy191: yych = *++cursor_; - if (yych == 'r') goto yy256; + if (yych == 'r') goto yy257; goto yy87; yy192: yych = *++cursor_; - if (yych == 'o') goto yy257; + if (yych == 'o') goto yy258; goto yy87; yy193: yych = *++cursor_; if (yych <= 'r') { - if (yych == 'g') goto yy258; + if (yych == 'g') goto yy259; goto yy87; } else { - if (yych <= 's') goto yy259; - if (yych <= 't') goto yy260; + if (yych <= 's') goto yy260; + if (yych <= 't') goto yy261; goto yy87; } yy194: yych = *++cursor_; - if (yych == 'l') goto yy261; - if (yych == 't') goto yy262; + if (yych == 'l') goto yy262; + if (yych == 't') goto yy263; goto yy87; yy195: yych = *++cursor_; - if (yych == 'a') goto yy263; + if (yych == 'a') goto yy264; goto yy87; yy196: yych = *++cursor_; - if (yych == 'b') goto yy264; + if (yych == 'b') goto yy265; goto yy87; yy197: yych = *++cursor_; - if (yych == 'e') goto yy265; + if (yych == 'e') goto yy266; goto yy87; yy198: yych = *++cursor_; - if (yych == 'e') goto yy266; - if (yych == 'r') goto yy267; + if (yych == 'e') goto yy267; + if (yych == 'r') goto yy268; goto yy87; yy199: yych = *++cursor_; - if (yych == 'y') goto yy268; + if (yych == 'y') goto yy269; goto yy87; yy200: yych = *++cursor_; - if (yych == 'p') goto yy270; + if (yych == 'p') goto yy271; goto yy87; yy201: yych = *++cursor_; - if (yych == 'r') goto yy271; + if (yych == 'r') goto yy272; goto yy87; yy202: yych = *++cursor_; @@ -1652,17 +1653,17 @@ yy205: yych = *++cursor_; if (yych <= '@') { if (yych <= '/') goto yy87; - if (yych <= '9') goto yy272; + if (yych <= '9') goto yy273; goto yy87; } else { - if (yych <= 'F') goto yy272; + if (yych <= 'F') goto yy273; if (yych <= '`') goto yy87; - if (yych <= 'f') goto yy272; + if (yych <= 'f') goto yy273; goto yy87; } yy206: yych = *++cursor_; - if (yych == 'f') goto yy242; + if (yych == 'f') goto yy243; goto yy87; yy207: yych = *++cursor_; @@ -1710,67 +1711,67 @@ yy210: } } else { if (yych <= ';') { - if (yych <= '.') goto yy274; + if (yych <= '.') goto yy275; if (yych <= ':') goto yy86; goto yy98; } else { - if (yych == 'p') goto yy276; + if (yych == 'p') goto yy277; if (yych <= '~') goto yy86; goto yy98; } } yy212: yych = *++cursor_; - if (yych == 'g') goto yy277; + if (yych == 'g') goto yy278; goto yy87; yy213: yych = *++cursor_; - if (yych == 'f') goto yy278; + if (yych == 'f') goto yy279; goto yy87; yy214: yych = *++cursor_; - if (yych == 'e') goto yy279; + if (yych == 'e') goto yy280; goto yy87; yy215: yych = *++cursor_; - if (yych == 'a') goto yy280; + if (yych == 'a') goto yy281; goto yy87; yy216: yych = *++cursor_; - if (yych == 'c') goto yy281; + if (yych == 'c') goto yy282; goto yy87; yy217: yych = *++cursor_; - if (yych == 'i') goto yy282; - if (yych == 't') goto yy283; + if (yych == 'i') goto yy283; + if (yych == 't') goto yy284; goto yy87; yy218: yych = *++cursor_; - if (yych == 'l') goto yy284; + if (yych == 'l') goto yy285; goto yy87; yy219: yych = *++cursor_; - if (yych == 'c') goto yy286; + if (yych == 'c') goto yy287; goto yy87; yy220: yych = *++cursor_; - if (yych == 'r') goto yy287; + if (yych == 'r') goto yy288; goto yy87; yy221: yych = *++cursor_; - if (yych == 'a') goto yy288; + if (yych == 'a') goto yy289; goto yy87; yy222: yych = *++cursor_; - if (yych == 'p') goto yy290; + if (yych == 'p') goto yy291; goto yy87; yy223: yych = *++cursor_; - if (yych == 'm') goto yy292; + if (yych == 'm') goto yy293; goto yy87; yy224: yych = *++cursor_; - if (yych == 'e') goto yy294; + if (yych == 'e') goto yy295; goto yy87; yy225: ++cursor_; @@ -1779,272 +1780,276 @@ yy225: } #line 272 "src/wast-lexer.cc" { RETURN(END); } -#line 1783 "src/prebuilt/wast-lexer-gen.cc" +#line 1784 "src/prebuilt/wast-lexer-gen.cc" yy227: yych = *++cursor_; - if (yych == 'o') goto yy296; + if (yych == 'e') goto yy297; goto yy87; yy228: + yych = *++cursor_; + if (yych == 'o') goto yy298; + goto yy87; +yy229: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy229; + if (yych <= '"') goto yy230; if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { - if (yych == '.') goto yy297; + if (yych == '.') goto yy299; goto yy86; } else { - if (yych <= ';') goto yy229; + if (yych <= ';') goto yy230; if (yych <= '~') goto yy86; } } -yy229: +yy230: #line 256 "src/wast-lexer.cc" { TYPE(F32); RETURN(VALUE_TYPE); } -#line 1809 "src/prebuilt/wast-lexer-gen.cc" -yy230: +#line 1814 "src/prebuilt/wast-lexer-gen.cc" +yy231: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy231; + if (yych <= '"') goto yy232; if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { - if (yych == '.') goto yy298; + if (yych == '.') goto yy300; goto yy86; } else { - if (yych <= ';') goto yy231; + if (yych <= ';') goto yy232; if (yych <= '~') goto yy86; } } -yy231: +yy232: #line 257 "src/wast-lexer.cc" { TYPE(F64); RETURN(VALUE_TYPE); } -#line 1831 "src/prebuilt/wast-lexer-gen.cc" -yy232: +#line 1836 "src/prebuilt/wast-lexer-gen.cc" +yy233: yych = *++cursor_; - if (yych == 'c') goto yy299; + if (yych == 'c') goto yy301; goto yy87; -yy233: +yy234: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy234; + if (yych <= '"') goto yy235; if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy301; + if (yych <= '_') goto yy303; if (yych <= '~') goto yy86; } } -yy234: -#line 454 "src/wast-lexer.cc" - { RETURN(GET); } -#line 1856 "src/prebuilt/wast-lexer-gen.cc" yy235: - yych = *++cursor_; - if (yych == 'b') goto yy302; - goto yy87; +#line 455 "src/wast-lexer.cc" + { RETURN(GET); } +#line 1861 "src/prebuilt/wast-lexer-gen.cc" yy236: yych = *++cursor_; - if (yych == 'w') goto yy303; + if (yych == 'b') goto yy304; goto yy87; yy237: + yych = *++cursor_; + if (yych == 'w') goto yy305; + goto yy87; +yy238: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy238; + if (yych <= '"') goto yy239; if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { - if (yych == '.') goto yy304; + if (yych == '.') goto yy306; goto yy86; } else { - if (yych <= ';') goto yy238; + if (yych <= ';') goto yy239; if (yych <= '~') goto yy86; } } -yy238: +yy239: #line 254 "src/wast-lexer.cc" { TYPE(I32); RETURN(VALUE_TYPE); } -#line 1886 "src/prebuilt/wast-lexer-gen.cc" -yy239: +#line 1891 "src/prebuilt/wast-lexer-gen.cc" +yy240: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy240; + if (yych <= '"') goto yy241; if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { - if (yych == '.') goto yy305; + if (yych == '.') goto yy307; goto yy86; } else { - if (yych <= ';') goto yy240; + if (yych <= ';') goto yy241; if (yych <= '~') goto yy86; } } -yy240: +yy241: #line 255 "src/wast-lexer.cc" { TYPE(I64); RETURN(VALUE_TYPE); } -#line 1908 "src/prebuilt/wast-lexer-gen.cc" -yy241: +#line 1913 "src/prebuilt/wast-lexer-gen.cc" +yy242: yych = *++cursor_; - if (yych == 'o') goto yy306; + if (yych == 'o') goto yy308; goto yy87; -yy242: +yy243: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 239 "src/wast-lexer.cc" { LITERAL(Infinity); RETURN(FLOAT); } -#line 1920 "src/prebuilt/wast-lexer-gen.cc" -yy244: - yych = *++cursor_; - if (yych == 'o') goto yy307; - goto yy87; +#line 1925 "src/prebuilt/wast-lexer-gen.cc" yy245: yych = *++cursor_; - if (yych == 'a') goto yy308; + if (yych == 'o') goto yy309; goto yy87; yy246: yych = *++cursor_; - if (yych == 'p') goto yy309; + if (yych == 'a') goto yy310; goto yy87; yy247: yych = *++cursor_; - if (yych == 'o') goto yy311; + if (yych == 'p') goto yy311; goto yy87; yy248: yych = *++cursor_; - if (yych == 'u') goto yy312; + if (yych == 'o') goto yy313; goto yy87; yy249: + yych = *++cursor_; + if (yych == 'u') goto yy314; + goto yy87; +yy250: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 259 "src/wast-lexer.cc" { RETURN(MUT); } -#line 1948 "src/prebuilt/wast-lexer-gen.cc" -yy251: +#line 1953 "src/prebuilt/wast-lexer-gen.cc" +yy252: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy252; + if (yych <= '"') goto yy253; if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { if (yych <= '9') goto yy86; - goto yy313; + goto yy315; } else { - if (yych <= ';') goto yy252; + if (yych <= ';') goto yy253; if (yych <= '~') goto yy86; } } -yy252: +yy253: #line 240 "src/wast-lexer.cc" { LITERAL(Nan); RETURN(FLOAT); } -#line 1970 "src/prebuilt/wast-lexer-gen.cc" -yy253: +#line 1975 "src/prebuilt/wast-lexer-gen.cc" +yy254: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 260 "src/wast-lexer.cc" { RETURN(NOP); } -#line 1978 "src/prebuilt/wast-lexer-gen.cc" -yy255: - yych = *++cursor_; - if (yych == 's') goto yy314; - goto yy87; +#line 1983 "src/prebuilt/wast-lexer-gen.cc" yy256: yych = *++cursor_; - if (yych == 'a') goto yy315; + if (yych == 's') goto yy316; goto yy87; yy257: yych = *++cursor_; - if (yych == 't') goto yy316; + if (yych == 'a') goto yy317; goto yy87; yy258: yych = *++cursor_; - if (yych == 'i') goto yy317; + if (yych == 't') goto yy318; goto yy87; yy259: yych = *++cursor_; - if (yych == 'u') goto yy318; + if (yych == 'i') goto yy319; goto yy87; yy260: yych = *++cursor_; - if (yych == 'h') goto yy319; if (yych == 'u') goto yy320; goto yy87; yy261: yych = *++cursor_; - if (yych == 'e') goto yy321; + if (yych == 'h') goto yy321; + if (yych == 'u') goto yy322; goto yy87; yy262: yych = *++cursor_; - if (yych == '_') goto yy322; + if (yych == 'e') goto yy323; goto yy87; yy263: yych = *++cursor_; - if (yych == 'r') goto yy323; + if (yych == '_') goto yy324; goto yy87; yy264: yych = *++cursor_; - if (yych == 'l') goto yy324; + if (yych == 'r') goto yy325; goto yy87; yy265: yych = *++cursor_; - if (yych == '_') goto yy325; + if (yych == 'l') goto yy326; goto yy87; yy266: yych = *++cursor_; - if (yych == 'n') goto yy326; + if (yych == '_') goto yy327; goto yy87; yy267: yych = *++cursor_; - if (yych == 'o') goto yy328; + if (yych == 'n') goto yy328; goto yy87; yy268: + yych = *++cursor_; + if (yych == 'o') goto yy330; + goto yy87; +yy269: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 465 "src/wast-lexer.cc" +#line 466 "src/wast-lexer.cc" { RETURN(TRY); } -#line 2039 "src/prebuilt/wast-lexer-gen.cc" -yy270: - yych = *++cursor_; - if (yych == 'e') goto yy329; - goto yy87; +#line 2044 "src/prebuilt/wast-lexer-gen.cc" yy271: yych = *++cursor_; if (yych == 'e') goto yy331; goto yy87; yy272: + yych = *++cursor_; + if (yych == 'e') goto yy333; + goto yy87; +yy273: ++cursor_; if ((limit_ - cursor_) < 3) FILL(3); yych = *cursor_; @@ -2058,9 +2063,9 @@ yy272: if (yych <= ')') goto yy146; goto yy86; } else { - if (yych <= '.') goto yy274; + if (yych <= '.') goto yy275; if (yych <= '/') goto yy86; - goto yy272; + goto yy273; } } } else { @@ -2070,21 +2075,21 @@ yy272: goto yy146; } else { if (yych <= '@') goto yy86; - if (yych <= 'F') goto yy272; + if (yych <= 'F') goto yy273; goto yy86; } } else { if (yych <= 'o') { - if (yych <= 'f') goto yy272; + if (yych <= 'f') goto yy273; goto yy86; } else { - if (yych <= 'p') goto yy276; + if (yych <= 'p') goto yy277; if (yych <= '~') goto yy86; goto yy146; } } } -yy274: +yy275: ++cursor_; if ((limit_ - cursor_) < 3) FILL(3); yych = *cursor_; @@ -2096,264 +2101,260 @@ yy274: } else { if (yych <= ')') goto yy88; if (yych <= '/') goto yy86; - if (yych <= '9') goto yy274; + if (yych <= '9') goto yy275; goto yy86; } } else { if (yych <= '`') { if (yych <= ';') goto yy88; if (yych <= '@') goto yy86; - if (yych <= 'F') goto yy274; + if (yych <= 'F') goto yy275; goto yy86; } else { if (yych <= 'o') { - if (yych <= 'f') goto yy274; + if (yych <= 'f') goto yy275; goto yy86; } else { - if (yych <= 'p') goto yy276; + if (yych <= 'p') goto yy277; if (yych <= '~') goto yy86; goto yy88; } } } -yy276: +yy277: yych = *++cursor_; if (yych <= ',') { - if (yych == '+') goto yy332; + if (yych == '+') goto yy334; goto yy87; } else { - if (yych <= '-') goto yy332; + if (yych <= '-') goto yy334; if (yych <= '/') goto yy87; - if (yych <= '9') goto yy333; + if (yych <= '9') goto yy335; goto yy87; } -yy277: - yych = *++cursor_; - if (yych == 'n') goto yy336; - goto yy87; yy278: yych = *++cursor_; - if (yych == 'u') goto yy337; + if (yych == 'n') goto yy338; goto yy87; yy279: yych = *++cursor_; - if (yych == 'r') goto yy338; + if (yych == 'u') goto yy339; goto yy87; yy280: yych = *++cursor_; - if (yych == 'r') goto yy339; + if (yych == 'r') goto yy340; goto yy87; yy281: yych = *++cursor_; - if (yych == 'k') goto yy340; + if (yych == 'r') goto yy341; goto yy87; yy282: yych = *++cursor_; - if (yych == 'f') goto yy342; + if (yych == 'k') goto yy342; goto yy87; yy283: yych = *++cursor_; - if (yych == 'a') goto yy344; + if (yych == 'f') goto yy344; goto yy87; yy284: + yych = *++cursor_; + if (yych == 'a') goto yy346; + goto yy87; +yy285: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy285; + if (yych <= '"') goto yy286; if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy345; + if (yych <= '_') goto yy347; if (yych <= '~') goto yy86; } } -yy285: +yy286: #line 269 "src/wast-lexer.cc" { RETURN(CALL); } -#line 2179 "src/prebuilt/wast-lexer-gen.cc" -yy286: - yych = *++cursor_; - if (yych == 'h') goto yy346; - goto yy87; +#line 2184 "src/prebuilt/wast-lexer-gen.cc" yy287: yych = *++cursor_; - if (yych == 'e') goto yy348; + if (yych == 'h') goto yy348; goto yy87; yy288: + yych = *++cursor_; + if (yych == 'e') goto yy350; + goto yy87; +yy289: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 448 "src/wast-lexer.cc" { RETURN(DATA); } -#line 2195 "src/prebuilt/wast-lexer-gen.cc" -yy290: +#line 2200 "src/prebuilt/wast-lexer-gen.cc" +yy291: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 271 "src/wast-lexer.cc" { RETURN(DROP); } -#line 2203 "src/prebuilt/wast-lexer-gen.cc" -yy292: +#line 2208 "src/prebuilt/wast-lexer-gen.cc" +yy293: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 447 "src/wast-lexer.cc" { RETURN(ELEM); } -#line 2211 "src/prebuilt/wast-lexer-gen.cc" -yy294: +#line 2216 "src/prebuilt/wast-lexer-gen.cc" +yy295: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 264 "src/wast-lexer.cc" { RETURN(ELSE); } -#line 2219 "src/prebuilt/wast-lexer-gen.cc" -yy296: +#line 2224 "src/prebuilt/wast-lexer-gen.cc" +yy297: yych = *++cursor_; - if (yych == 'r') goto yy349; + if (yych == 'p') goto yy351; goto yy87; -yy297: +yy298: + yych = *++cursor_; + if (yych == 'r') goto yy352; + goto yy87; +yy299: yych = *++cursor_; switch (yych) { - case 'a': goto yy350; - case 'c': goto yy351; - case 'd': goto yy352; - case 'e': goto yy353; - case 'f': goto yy354; - case 'g': goto yy355; - case 'l': goto yy356; - case 'm': goto yy357; - case 'n': goto yy358; - case 'r': goto yy359; - case 's': goto yy360; - case 't': goto yy361; + case 'a': goto yy353; + case 'c': goto yy354; + case 'd': goto yy355; + case 'e': goto yy356; + case 'f': goto yy357; + case 'g': goto yy358; + case 'l': goto yy359; + case 'm': goto yy360; + case 'n': goto yy361; + case 'r': goto yy362; + case 's': goto yy363; + case 't': goto yy364; default: goto yy87; } -yy298: +yy300: yych = *++cursor_; switch (yych) { - case 'a': goto yy362; - case 'c': goto yy363; - case 'd': goto yy364; - case 'e': goto yy365; - case 'f': goto yy366; - case 'g': goto yy367; - case 'l': goto yy368; - case 'm': goto yy369; - case 'n': goto yy370; - case 'p': goto yy371; - case 'r': goto yy372; - case 's': goto yy373; - case 't': goto yy374; + case 'a': goto yy365; + case 'c': goto yy366; + case 'd': goto yy367; + case 'e': goto yy368; + case 'f': goto yy369; + case 'g': goto yy370; + case 'l': goto yy371; + case 'm': goto yy372; + case 'n': goto yy373; + case 'p': goto yy374; + case 'r': goto yy375; + case 's': goto yy376; + case 't': goto yy377; default: goto yy87; } -yy299: +yy301: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 436 "src/wast-lexer.cc" { RETURN(FUNC); } -#line 2266 "src/prebuilt/wast-lexer-gen.cc" -yy301: +#line 2275 "src/prebuilt/wast-lexer-gen.cc" +yy303: yych = *++cursor_; - if (yych == 'g') goto yy375; - if (yych == 'l') goto yy376; + if (yych == 'g') goto yy378; + if (yych == 'l') goto yy379; goto yy87; -yy302: +yy304: yych = *++cursor_; - if (yych == 'a') goto yy377; + if (yych == 'a') goto yy380; goto yy87; -yy303: +yy305: yych = *++cursor_; - if (yych == '_') goto yy378; + if (yych == '_') goto yy381; goto yy87; -yy304: +yy306: yych = *++cursor_; switch (yych) { - case 'a': goto yy379; - case 'c': goto yy380; - case 'd': goto yy381; - case 'e': goto yy382; - case 'g': goto yy383; - case 'l': goto yy384; - case 'm': goto yy385; - case 'n': goto yy386; - case 'o': goto yy387; - case 'p': goto yy388; - case 'r': goto yy389; - case 's': goto yy390; - case 't': goto yy391; - case 'w': goto yy392; - case 'x': goto yy393; + case 'a': goto yy382; + case 'c': goto yy383; + case 'd': goto yy384; + case 'e': goto yy385; + case 'g': goto yy386; + case 'l': goto yy387; + case 'm': goto yy388; + case 'n': goto yy389; + case 'o': goto yy390; + case 'p': goto yy391; + case 'r': goto yy392; + case 's': goto yy393; + case 't': goto yy394; + case 'w': goto yy395; + case 'x': goto yy396; default: goto yy87; } -yy305: +yy307: yych = *++cursor_; switch (yych) { - case 'a': goto yy394; - case 'c': goto yy395; - case 'd': goto yy396; - case 'e': goto yy397; - case 'g': goto yy398; - case 'l': goto yy399; - case 'm': goto yy400; - case 'n': goto yy401; - case 'o': goto yy402; - case 'p': goto yy403; - case 'r': goto yy404; - case 's': goto yy405; - case 't': goto yy406; - case 'x': goto yy407; + case 'a': goto yy397; + case 'c': goto yy398; + case 'd': goto yy399; + case 'e': goto yy400; + case 'g': goto yy401; + case 'l': goto yy402; + case 'm': goto yy403; + case 'n': goto yy404; + case 'o': goto yy405; + case 'p': goto yy406; + case 'r': goto yy407; + case 's': goto yy408; + case 't': goto yy409; + case 'x': goto yy410; default: goto yy87; } -yy306: +yy308: yych = *++cursor_; - if (yych == 'r') goto yy408; + if (yych == 'r') goto yy411; goto yy87; -yy307: +yy309: yych = *++cursor_; - if (yych == 'k') goto yy409; + if (yych == 'k') goto yy412; goto yy87; -yy308: +yy310: yych = *++cursor_; - if (yych == 'l') goto yy410; + if (yych == 'l') goto yy413; goto yy87; -yy309: +yy311: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 265 "src/wast-lexer.cc" { RETURN(LOOP); } -#line 2338 "src/prebuilt/wast-lexer-gen.cc" -yy311: - yych = *++cursor_; - if (yych == 'r') goto yy412; - goto yy87; -yy312: - yych = *++cursor_; - if (yych == 'l') goto yy413; - goto yy87; +#line 2347 "src/prebuilt/wast-lexer-gen.cc" yy313: yych = *++cursor_; - if (yych == '0') goto yy414; + if (yych == 'r') goto yy415; goto yy87; yy314: yych = *++cursor_; - if (yych == 'e') goto yy415; + if (yych == 'l') goto yy416; goto yy87; yy315: yych = *++cursor_; - if (yych == 'm') goto yy416; + if (yych == '0') goto yy417; goto yy87; yy316: yych = *++cursor_; @@ -2361,70 +2362,78 @@ yy316: goto yy87; yy317: yych = *++cursor_; - if (yych == 's') goto yy420; + if (yych == 'm') goto yy419; goto yy87; yy318: yych = *++cursor_; - if (yych == 'l') goto yy421; + if (yych == 'e') goto yy421; goto yy87; yy319: yych = *++cursor_; - if (yych == 'r') goto yy422; + if (yych == 's') goto yy423; goto yy87; yy320: yych = *++cursor_; - if (yych == 'r') goto yy423; + if (yych == 'l') goto yy424; goto yy87; yy321: yych = *++cursor_; - if (yych == 'c') goto yy424; + if (yych == 'r') goto yy425; goto yy87; yy322: yych = *++cursor_; - if (yych == 'g') goto yy425; - if (yych == 'l') goto yy426; + if (yych == 'r') goto yy426; goto yy87; yy323: yych = *++cursor_; - if (yych == 't') goto yy427; + if (yych == 'c') goto yy427; goto yy87; yy324: yych = *++cursor_; - if (yych == 'e') goto yy429; + if (yych == 'g') goto yy428; + if (yych == 'l') goto yy429; goto yy87; yy325: yych = *++cursor_; - if (yych == 'l') goto yy431; + if (yych == 't') goto yy430; goto yy87; yy326: + yych = *++cursor_; + if (yych == 'e') goto yy432; + goto yy87; +yy327: + yych = *++cursor_; + if (yych == 'l') goto yy434; + goto yy87; +yy328: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 263 "src/wast-lexer.cc" { RETURN(THEN); } -#line 2407 "src/prebuilt/wast-lexer-gen.cc" -yy328: +#line 2416 "src/prebuilt/wast-lexer-gen.cc" +yy330: yych = *++cursor_; - if (yych == 'w') goto yy432; + if (yych == 'w') goto yy435; goto yy87; -yy329: +yy331: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 435 "src/wast-lexer.cc" { RETURN(TYPE); } -#line 2419 "src/prebuilt/wast-lexer-gen.cc" -yy331: +#line 2428 "src/prebuilt/wast-lexer-gen.cc" +yy333: yych = *++cursor_; - if (yych == 'a') goto yy434; + if (yych == 'a') goto yy437; goto yy87; -yy332: +yy334: yych = *++cursor_; if (yych <= '/') goto yy87; if (yych >= ':') goto yy87; -yy333: +yy335: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; @@ -2432,473 +2441,465 @@ yy333: if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy335; + if (yych <= '"') goto yy337; if (yych <= '\'') goto yy86; } } else { if (yych <= ':') { if (yych <= '/') goto yy86; - if (yych <= '9') goto yy333; + if (yych <= '9') goto yy335; goto yy86; } else { - if (yych <= ';') goto yy335; + if (yych <= ';') goto yy337; if (yych <= '~') goto yy86; } } -yy335: +yy337: #line 238 "src/wast-lexer.cc" { LITERAL(Hexfloat); RETURN(FLOAT); } -#line 2452 "src/prebuilt/wast-lexer-gen.cc" -yy336: +#line 2461 "src/prebuilt/wast-lexer-gen.cc" +yy338: yych = *++cursor_; - if (yych == '=') goto yy435; + if (yych == '=') goto yy438; goto yy87; -yy337: +yy339: yych = *++cursor_; - if (yych == 'n') goto yy436; + if (yych == 'n') goto yy439; goto yy87; -yy338: +yy340: yych = *++cursor_; - if (yych == 't') goto yy437; + if (yych == 't') goto yy440; goto yy87; -yy339: +yy341: yych = *++cursor_; - if (yych == 'y') goto yy438; + if (yych == 'y') goto yy441; goto yy87; -yy340: +yy342: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 261 "src/wast-lexer.cc" { RETURN(BLOCK); } -#line 2476 "src/prebuilt/wast-lexer-gen.cc" -yy342: +#line 2485 "src/prebuilt/wast-lexer-gen.cc" +yy344: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 267 "src/wast-lexer.cc" { RETURN(BR_IF); } -#line 2484 "src/prebuilt/wast-lexer-gen.cc" -yy344: +#line 2493 "src/prebuilt/wast-lexer-gen.cc" +yy346: yych = *++cursor_; - if (yych == 'b') goto yy440; + if (yych == 'b') goto yy443; goto yy87; -yy345: +yy347: yych = *++cursor_; - if (yych == 'i') goto yy441; + if (yych == 'i') goto yy444; goto yy87; -yy346: +yy348: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy347; + if (yych <= '"') goto yy349; if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy442; + if (yych <= '_') goto yy445; if (yych <= '~') goto yy86; } } -yy347: -#line 466 "src/wast-lexer.cc" - { RETURN(CATCH); } -#line 2513 "src/prebuilt/wast-lexer-gen.cc" -yy348: - yych = *++cursor_; - if (yych == 'n') goto yy443; - goto yy87; yy349: - yych = *++cursor_; - if (yych == 't') goto yy444; - goto yy87; +#line 467 "src/wast-lexer.cc" + { RETURN(CATCH); } +#line 2522 "src/prebuilt/wast-lexer-gen.cc" yy350: yych = *++cursor_; - if (yych == 'b') goto yy446; - if (yych == 'd') goto yy447; + if (yych == 'n') goto yy446; goto yy87; yy351: yych = *++cursor_; - if (yych == 'e') goto yy448; - if (yych == 'o') goto yy449; + if (yych == 't') goto yy447; goto yy87; yy352: yych = *++cursor_; - if (yych == 'e') goto yy450; - if (yych == 'i') goto yy451; + if (yych == 't') goto yy449; goto yy87; yy353: yych = *++cursor_; - if (yych == 'q') goto yy452; + if (yych == 'b') goto yy451; + if (yych == 'd') goto yy452; goto yy87; yy354: yych = *++cursor_; - if (yych == 'l') goto yy454; + if (yych == 'e') goto yy453; + if (yych == 'o') goto yy454; goto yy87; yy355: yych = *++cursor_; if (yych == 'e') goto yy455; - if (yych == 't') goto yy457; + if (yych == 'i') goto yy456; goto yy87; yy356: yych = *++cursor_; + if (yych == 'q') goto yy457; + goto yy87; +yy357: + yych = *++cursor_; + if (yych == 'l') goto yy459; + goto yy87; +yy358: + yych = *++cursor_; + if (yych == 'e') goto yy460; + if (yych == 't') goto yy462; + goto yy87; +yy359: + yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy459; + if (yych == 'e') goto yy464; goto yy87; } else { - if (yych <= 'o') goto yy461; - if (yych == 't') goto yy462; + if (yych <= 'o') goto yy466; + if (yych == 't') goto yy467; goto yy87; } -yy357: +yy360: yych = *++cursor_; if (yych <= 'h') { - if (yych == 'a') goto yy464; + if (yych == 'a') goto yy469; goto yy87; } else { - if (yych <= 'i') goto yy465; - if (yych == 'u') goto yy466; + if (yych <= 'i') goto yy470; + if (yych == 'u') goto yy471; goto yy87; } -yy358: +yy361: yych = *++cursor_; - if (yych == 'e') goto yy467; + if (yych == 'e') goto yy472; goto yy87; -yy359: +yy362: yych = *++cursor_; - if (yych == 'e') goto yy469; + if (yych == 'e') goto yy474; goto yy87; -yy360: +yy363: yych = *++cursor_; if (yych <= 's') { - if (yych == 'q') goto yy470; + if (yych == 'q') goto yy475; goto yy87; } else { - if (yych <= 't') goto yy471; - if (yych <= 'u') goto yy472; + if (yych <= 't') goto yy476; + if (yych <= 'u') goto yy477; goto yy87; } -yy361: +yy364: yych = *++cursor_; - if (yych == 'r') goto yy473; + if (yych == 'r') goto yy478; goto yy87; -yy362: +yy365: yych = *++cursor_; - if (yych == 'b') goto yy474; - if (yych == 'd') goto yy475; + if (yych == 'b') goto yy479; + if (yych == 'd') goto yy480; goto yy87; -yy363: +yy366: yych = *++cursor_; - if (yych == 'e') goto yy476; - if (yych == 'o') goto yy477; + if (yych == 'e') goto yy481; + if (yych == 'o') goto yy482; goto yy87; -yy364: +yy367: yych = *++cursor_; - if (yych == 'i') goto yy478; + if (yych == 'i') goto yy483; goto yy87; -yy365: +yy368: yych = *++cursor_; - if (yych == 'q') goto yy479; + if (yych == 'q') goto yy484; goto yy87; -yy366: +yy369: yych = *++cursor_; - if (yych == 'l') goto yy481; + if (yych == 'l') goto yy486; goto yy87; -yy367: +yy370: yych = *++cursor_; - if (yych == 'e') goto yy482; - if (yych == 't') goto yy484; + if (yych == 'e') goto yy487; + if (yych == 't') goto yy489; goto yy87; -yy368: +yy371: yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy486; + if (yych == 'e') goto yy491; goto yy87; } else { - if (yych <= 'o') goto yy488; - if (yych == 't') goto yy489; + if (yych <= 'o') goto yy493; + if (yych == 't') goto yy494; goto yy87; } -yy369: +yy372: yych = *++cursor_; if (yych <= 'h') { - if (yych == 'a') goto yy491; + if (yych == 'a') goto yy496; goto yy87; } else { - if (yych <= 'i') goto yy492; - if (yych == 'u') goto yy493; + if (yych <= 'i') goto yy497; + if (yych == 'u') goto yy498; goto yy87; } -yy370: +yy373: yych = *++cursor_; - if (yych == 'e') goto yy494; + if (yych == 'e') goto yy499; goto yy87; -yy371: +yy374: yych = *++cursor_; - if (yych == 'r') goto yy496; + if (yych == 'r') goto yy501; goto yy87; -yy372: +yy375: yych = *++cursor_; - if (yych == 'e') goto yy497; + if (yych == 'e') goto yy502; goto yy87; -yy373: +yy376: yych = *++cursor_; if (yych <= 's') { - if (yych == 'q') goto yy498; + if (yych == 'q') goto yy503; goto yy87; } else { - if (yych <= 't') goto yy499; - if (yych <= 'u') goto yy500; + if (yych <= 't') goto yy504; + if (yych <= 'u') goto yy505; goto yy87; } -yy374: - yych = *++cursor_; - if (yych == 'r') goto yy501; - goto yy87; -yy375: - yych = *++cursor_; - if (yych == 'l') goto yy502; - goto yy87; -yy376: - yych = *++cursor_; - if (yych == 'o') goto yy503; - goto yy87; yy377: yych = *++cursor_; - if (yych == 'l') goto yy504; + if (yych == 'r') goto yy506; goto yy87; yy378: yych = *++cursor_; - if (yych == 'm') goto yy506; + if (yych == 'l') goto yy507; goto yy87; yy379: yych = *++cursor_; - if (yych == 'd') goto yy507; - if (yych == 'n') goto yy508; + if (yych == 'o') goto yy508; goto yy87; yy380: yych = *++cursor_; - if (yych <= 'n') { - if (yych == 'l') goto yy509; - goto yy87; - } else { - if (yych <= 'o') goto yy510; - if (yych == 't') goto yy511; - goto yy87; - } + if (yych == 'l') goto yy509; + goto yy87; yy381: yych = *++cursor_; - if (yych == 'i') goto yy512; + if (yych == 'm') goto yy511; goto yy87; yy382: yych = *++cursor_; - if (yych == 'q') goto yy513; + if (yych == 'd') goto yy512; + if (yych == 'n') goto yy513; goto yy87; yy383: yych = *++cursor_; - if (yych == 'e') goto yy515; - if (yych == 't') goto yy516; - goto yy87; -yy384: - yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy517; + if (yych == 'l') goto yy514; goto yy87; } else { - if (yych <= 'o') goto yy518; - if (yych == 't') goto yy519; + if (yych <= 'o') goto yy515; + if (yych == 't') goto yy516; goto yy87; } +yy384: + yych = *++cursor_; + if (yych == 'i') goto yy517; + goto yy87; yy385: yych = *++cursor_; - if (yych == 'u') goto yy520; + if (yych == 'q') goto yy518; goto yy87; yy386: yych = *++cursor_; - if (yych == 'e') goto yy521; + if (yych == 'e') goto yy520; + if (yych == 't') goto yy521; goto yy87; yy387: yych = *++cursor_; - if (yych == 'r') goto yy523; - goto yy87; + if (yych <= 'n') { + if (yych == 'e') goto yy522; + goto yy87; + } else { + if (yych <= 'o') goto yy523; + if (yych == 't') goto yy524; + goto yy87; + } yy388: yych = *++cursor_; - if (yych == 'o') goto yy525; + if (yych == 'u') goto yy525; goto yy87; yy389: yych = *++cursor_; if (yych == 'e') goto yy526; - if (yych == 'o') goto yy527; goto yy87; yy390: yych = *++cursor_; - if (yych <= 's') { - if (yych == 'h') goto yy528; - goto yy87; - } else { - if (yych <= 't') goto yy529; - if (yych <= 'u') goto yy530; - goto yy87; - } + if (yych == 'r') goto yy528; + goto yy87; yy391: yych = *++cursor_; - if (yych == 'r') goto yy531; + if (yych == 'o') goto yy530; goto yy87; yy392: yych = *++cursor_; - if (yych == 'r') goto yy532; + if (yych == 'e') goto yy531; + if (yych == 'o') goto yy532; goto yy87; yy393: yych = *++cursor_; - if (yych == 'o') goto yy533; - goto yy87; + if (yych <= 's') { + if (yych == 'h') goto yy533; + goto yy87; + } else { + if (yych <= 't') goto yy534; + if (yych <= 'u') goto yy535; + goto yy87; + } yy394: yych = *++cursor_; - if (yych == 'd') goto yy534; - if (yych == 'n') goto yy535; + if (yych == 'r') goto yy536; goto yy87; yy395: yych = *++cursor_; - if (yych <= 'n') { - if (yych == 'l') goto yy536; - goto yy87; - } else { - if (yych <= 'o') goto yy537; - if (yych == 't') goto yy538; - goto yy87; - } + if (yych == 'r') goto yy537; + goto yy87; yy396: yych = *++cursor_; - if (yych == 'i') goto yy539; + if (yych == 'o') goto yy538; goto yy87; yy397: yych = *++cursor_; - if (yych == 'q') goto yy540; - if (yych == 'x') goto yy542; + if (yych == 'd') goto yy539; + if (yych == 'n') goto yy540; goto yy87; yy398: yych = *++cursor_; - if (yych == 'e') goto yy543; - if (yych == 't') goto yy544; - goto yy87; -yy399: - yych = *++cursor_; if (yych <= 'n') { - if (yych == 'e') goto yy545; + if (yych == 'l') goto yy541; goto yy87; } else { - if (yych <= 'o') goto yy546; - if (yych == 't') goto yy547; + if (yych <= 'o') goto yy542; + if (yych == 't') goto yy543; goto yy87; } +yy399: + yych = *++cursor_; + if (yych == 'i') goto yy544; + goto yy87; yy400: yych = *++cursor_; - if (yych == 'u') goto yy548; + if (yych == 'q') goto yy545; + if (yych == 'x') goto yy547; goto yy87; yy401: yych = *++cursor_; - if (yych == 'e') goto yy549; + if (yych == 'e') goto yy548; + if (yych == 't') goto yy549; goto yy87; yy402: yych = *++cursor_; - if (yych == 'r') goto yy551; - goto yy87; + if (yych <= 'n') { + if (yych == 'e') goto yy550; + goto yy87; + } else { + if (yych <= 'o') goto yy551; + if (yych == 't') goto yy552; + goto yy87; + } yy403: yych = *++cursor_; - if (yych == 'o') goto yy553; + if (yych == 'u') goto yy553; goto yy87; yy404: yych = *++cursor_; if (yych == 'e') goto yy554; - if (yych == 'o') goto yy555; goto yy87; yy405: yych = *++cursor_; - if (yych <= 's') { - if (yych == 'h') goto yy556; - goto yy87; - } else { - if (yych <= 't') goto yy557; - if (yych <= 'u') goto yy558; - goto yy87; - } + if (yych == 'r') goto yy556; + goto yy87; yy406: yych = *++cursor_; - if (yych == 'r') goto yy559; + if (yych == 'o') goto yy558; goto yy87; yy407: yych = *++cursor_; + if (yych == 'e') goto yy559; if (yych == 'o') goto yy560; goto yy87; yy408: yych = *++cursor_; - if (yych == 't') goto yy561; - goto yy87; + if (yych <= 's') { + if (yych == 'h') goto yy561; + goto yy87; + } else { + if (yych <= 't') goto yy562; + if (yych <= 'u') goto yy563; + goto yy87; + } yy409: yych = *++cursor_; - if (yych == 'e') goto yy563; + if (yych == 'r') goto yy564; goto yy87; yy410: + yych = *++cursor_; + if (yych == 'o') goto yy565; + goto yy87; +yy411: + yych = *++cursor_; + if (yych == 't') goto yy566; + goto yy87; +yy412: + yych = *++cursor_; + if (yych == 'e') goto yy568; + goto yy87; +yy413: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 439 "src/wast-lexer.cc" { RETURN(LOCAL); } -#line 2855 "src/prebuilt/wast-lexer-gen.cc" -yy412: +#line 2868 "src/prebuilt/wast-lexer-gen.cc" +yy415: yych = *++cursor_; - if (yych == 'y') goto yy565; + if (yych == 'y') goto yy570; goto yy87; -yy413: +yy416: yych = *++cursor_; - if (yych == 'e') goto yy567; + if (yych == 'e') goto yy572; goto yy87; -yy414: +yy417: yych = *++cursor_; - if (yych == 'x') goto yy569; + if (yych == 'x') goto yy574; goto yy87; -yy415: +yy418: yych = *++cursor_; - if (yych == 't') goto yy570; + if (yych == 't') goto yy575; goto yy87; -yy416: +yy419: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 437 "src/wast-lexer.cc" { RETURN(PARAM); } -#line 2879 "src/prebuilt/wast-lexer-gen.cc" -yy418: +#line 2892 "src/prebuilt/wast-lexer-gen.cc" +yy421: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 443 "src/wast-lexer.cc" { RETURN(QUOTE); } -#line 2887 "src/prebuilt/wast-lexer-gen.cc" -yy420: - yych = *++cursor_; - if (yych == 't') goto yy572; - goto yy87; -yy421: - yych = *++cursor_; - if (yych == 't') goto yy573; - goto yy87; -yy422: - yych = *++cursor_; - if (yych == 'o') goto yy575; - goto yy87; +#line 2900 "src/prebuilt/wast-lexer-gen.cc" yy423: yych = *++cursor_; - if (yych == 'n') goto yy576; + if (yych == 't') goto yy577; goto yy87; yy424: yych = *++cursor_; @@ -2906,176 +2907,196 @@ yy424: goto yy87; yy425: yych = *++cursor_; - if (yych == 'l') goto yy580; + if (yych == 'o') goto yy580; goto yy87; yy426: yych = *++cursor_; - if (yych == 'o') goto yy581; + if (yych == 'n') goto yy581; goto yy87; yy427: + yych = *++cursor_; + if (yych == 't') goto yy583; + goto yy87; +yy428: + yych = *++cursor_; + if (yych == 'l') goto yy585; + goto yy87; +yy429: + yych = *++cursor_; + if (yych == 'o') goto yy586; + goto yy87; +yy430: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 446 "src/wast-lexer.cc" { RETURN(START); } -#line 2923 "src/prebuilt/wast-lexer-gen.cc" -yy429: +#line 2936 "src/prebuilt/wast-lexer-gen.cc" +yy432: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 444 "src/wast-lexer.cc" { RETURN(TABLE); } -#line 2931 "src/prebuilt/wast-lexer-gen.cc" -yy431: +#line 2944 "src/prebuilt/wast-lexer-gen.cc" +yy434: yych = *++cursor_; - if (yych == 'o') goto yy582; + if (yych == 'o') goto yy587; goto yy87; -yy432: +yy435: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 468 "src/wast-lexer.cc" +#line 469 "src/wast-lexer.cc" { RETURN(THROW); } -#line 2943 "src/prebuilt/wast-lexer-gen.cc" -yy434: +#line 2956 "src/prebuilt/wast-lexer-gen.cc" +yy437: yych = *++cursor_; - if (yych == 'c') goto yy583; + if (yych == 'c') goto yy588; goto yy87; -yy435: +yy438: yych = *++cursor_; if (yych <= '/') goto yy87; - if (yych <= '0') goto yy584; - if (yych <= '9') goto yy586; + if (yych <= '0') goto yy589; + if (yych <= '9') goto yy591; goto yy87; -yy436: +yy439: yych = *++cursor_; - if (yych == 'c') goto yy588; + if (yych == 'c') goto yy593; goto yy87; -yy437: +yy440: yych = *++cursor_; - if (yych == '_') goto yy590; + if (yych == '_') goto yy595; goto yy87; -yy438: +yy441: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 442 "src/wast-lexer.cc" { RETURN(BIN); } -#line 2969 "src/prebuilt/wast-lexer-gen.cc" -yy440: +#line 2982 "src/prebuilt/wast-lexer-gen.cc" +yy443: yych = *++cursor_; - if (yych == 'l') goto yy591; + if (yych == 'l') goto yy596; goto yy87; -yy441: +yy444: yych = *++cursor_; - if (yych == 'n') goto yy592; + if (yych == 'n') goto yy597; goto yy87; -yy442: +yy445: yych = *++cursor_; - if (yych == 'a') goto yy593; + if (yych == 'a') goto yy598; goto yy87; -yy443: +yy446: yych = *++cursor_; - if (yych == 't') goto yy594; + if (yych == 't') goto yy599; goto yy87; -yy444: +yy447: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 452 "src/wast-lexer.cc" + { RETURN(EXCEPT); } +#line 3006 "src/prebuilt/wast-lexer-gen.cc" +yy449: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 451 "src/wast-lexer.cc" { RETURN(EXPORT); } -#line 2993 "src/prebuilt/wast-lexer-gen.cc" -yy446: +#line 3014 "src/prebuilt/wast-lexer-gen.cc" +yy451: yych = *++cursor_; - if (yych == 's') goto yy595; + if (yych == 's') goto yy600; goto yy87; -yy447: +yy452: yych = *++cursor_; - if (yych == 'd') goto yy597; + if (yych == 'd') goto yy602; goto yy87; -yy448: +yy453: yych = *++cursor_; - if (yych == 'i') goto yy599; + if (yych == 'i') goto yy604; goto yy87; -yy449: +yy454: yych = *++cursor_; - if (yych == 'n') goto yy600; - if (yych == 'p') goto yy601; + if (yych == 'n') goto yy605; + if (yych == 'p') goto yy606; goto yy87; -yy450: +yy455: yych = *++cursor_; - if (yych == 'm') goto yy602; + if (yych == 'm') goto yy607; goto yy87; -yy451: +yy456: yych = *++cursor_; - if (yych == 'v') goto yy603; + if (yych == 'v') goto yy608; goto yy87; -yy452: +yy457: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 394 "src/wast-lexer.cc" { OPCODE(F32Eq); RETURN(COMPARE); } -#line 3026 "src/prebuilt/wast-lexer-gen.cc" -yy454: +#line 3047 "src/prebuilt/wast-lexer-gen.cc" +yy459: yych = *++cursor_; - if (yych == 'o') goto yy605; + if (yych == 'o') goto yy610; goto yy87; -yy455: +yy460: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 404 "src/wast-lexer.cc" { OPCODE(F32Ge); RETURN(COMPARE); } -#line 3038 "src/prebuilt/wast-lexer-gen.cc" -yy457: +#line 3059 "src/prebuilt/wast-lexer-gen.cc" +yy462: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 402 "src/wast-lexer.cc" { OPCODE(F32Gt); RETURN(COMPARE); } -#line 3046 "src/prebuilt/wast-lexer-gen.cc" -yy459: +#line 3067 "src/prebuilt/wast-lexer-gen.cc" +yy464: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 400 "src/wast-lexer.cc" { OPCODE(F32Le); RETURN(COMPARE); } -#line 3054 "src/prebuilt/wast-lexer-gen.cc" -yy461: +#line 3075 "src/prebuilt/wast-lexer-gen.cc" +yy466: yych = *++cursor_; - if (yych == 'a') goto yy606; + if (yych == 'a') goto yy611; goto yy87; -yy462: +yy467: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 398 "src/wast-lexer.cc" { OPCODE(F32Lt); RETURN(COMPARE); } -#line 3066 "src/prebuilt/wast-lexer-gen.cc" -yy464: +#line 3087 "src/prebuilt/wast-lexer-gen.cc" +yy469: yych = *++cursor_; - if (yych == 'x') goto yy607; + if (yych == 'x') goto yy612; goto yy87; -yy465: +yy470: yych = *++cursor_; - if (yych == 'n') goto yy609; + if (yych == 'n') goto yy614; goto yy87; -yy466: +yy471: yych = *++cursor_; - if (yych == 'l') goto yy611; + if (yych == 'l') goto yy616; goto yy87; -yy467: +yy472: ++cursor_; if ((yych = *cursor_) <= ':') { if (yych <= '"') { @@ -3086,120 +3107,120 @@ yy467: } } else { if (yych <= 'a') { - if (yych <= ';') goto yy468; + if (yych <= ';') goto yy473; if (yych <= '`') goto yy86; - goto yy613; + goto yy618; } else { - if (yych == 'g') goto yy614; + if (yych == 'g') goto yy619; if (yych <= '~') goto yy86; } } -yy468: +yy473: #line 396 "src/wast-lexer.cc" { OPCODE(F32Ne); RETURN(COMPARE); } -#line 3101 "src/prebuilt/wast-lexer-gen.cc" -yy469: +#line 3122 "src/prebuilt/wast-lexer-gen.cc" +yy474: yych = *++cursor_; - if (yych == 'i') goto yy616; + if (yych == 'i') goto yy621; goto yy87; -yy470: +yy475: yych = *++cursor_; - if (yych == 'r') goto yy617; + if (yych == 'r') goto yy622; goto yy87; -yy471: +yy476: yych = *++cursor_; - if (yych == 'o') goto yy618; + if (yych == 'o') goto yy623; goto yy87; -yy472: +yy477: yych = *++cursor_; - if (yych == 'b') goto yy619; + if (yych == 'b') goto yy624; goto yy87; -yy473: +yy478: yych = *++cursor_; - if (yych == 'u') goto yy621; + if (yych == 'u') goto yy626; goto yy87; -yy474: +yy479: yych = *++cursor_; - if (yych == 's') goto yy622; + if (yych == 's') goto yy627; goto yy87; -yy475: +yy480: yych = *++cursor_; - if (yych == 'd') goto yy624; + if (yych == 'd') goto yy629; goto yy87; -yy476: +yy481: yych = *++cursor_; - if (yych == 'i') goto yy626; + if (yych == 'i') goto yy631; goto yy87; -yy477: +yy482: yych = *++cursor_; - if (yych == 'n') goto yy627; - if (yych == 'p') goto yy628; + if (yych == 'n') goto yy632; + if (yych == 'p') goto yy633; goto yy87; -yy478: +yy483: yych = *++cursor_; - if (yych == 'v') goto yy629; + if (yych == 'v') goto yy634; goto yy87; -yy479: +yy484: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 395 "src/wast-lexer.cc" { OPCODE(F64Eq); RETURN(COMPARE); } -#line 3150 "src/prebuilt/wast-lexer-gen.cc" -yy481: +#line 3171 "src/prebuilt/wast-lexer-gen.cc" +yy486: yych = *++cursor_; - if (yych == 'o') goto yy631; + if (yych == 'o') goto yy636; goto yy87; -yy482: +yy487: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 405 "src/wast-lexer.cc" { OPCODE(F64Ge); RETURN(COMPARE); } -#line 3162 "src/prebuilt/wast-lexer-gen.cc" -yy484: +#line 3183 "src/prebuilt/wast-lexer-gen.cc" +yy489: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 403 "src/wast-lexer.cc" { OPCODE(F64Gt); RETURN(COMPARE); } -#line 3170 "src/prebuilt/wast-lexer-gen.cc" -yy486: +#line 3191 "src/prebuilt/wast-lexer-gen.cc" +yy491: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 401 "src/wast-lexer.cc" { OPCODE(F64Le); RETURN(COMPARE); } -#line 3178 "src/prebuilt/wast-lexer-gen.cc" -yy488: +#line 3199 "src/prebuilt/wast-lexer-gen.cc" +yy493: yych = *++cursor_; - if (yych == 'a') goto yy632; + if (yych == 'a') goto yy637; goto yy87; -yy489: +yy494: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 399 "src/wast-lexer.cc" { OPCODE(F64Lt); RETURN(COMPARE); } -#line 3190 "src/prebuilt/wast-lexer-gen.cc" -yy491: +#line 3211 "src/prebuilt/wast-lexer-gen.cc" +yy496: yych = *++cursor_; - if (yych == 'x') goto yy633; + if (yych == 'x') goto yy638; goto yy87; -yy492: +yy497: yych = *++cursor_; - if (yych == 'n') goto yy635; + if (yych == 'n') goto yy640; goto yy87; -yy493: +yy498: yych = *++cursor_; - if (yych == 'l') goto yy637; + if (yych == 'l') goto yy642; goto yy87; -yy494: +yy499: ++cursor_; if ((yych = *cursor_) <= ':') { if (yych <= '"') { @@ -3210,422 +3231,422 @@ yy494: } } else { if (yych <= 'a') { - if (yych <= ';') goto yy495; + if (yych <= ';') goto yy500; if (yych <= '`') goto yy86; - goto yy639; + goto yy644; } else { - if (yych == 'g') goto yy640; + if (yych == 'g') goto yy645; if (yych <= '~') goto yy86; } } -yy495: +yy500: #line 397 "src/wast-lexer.cc" { OPCODE(F64Ne); RETURN(COMPARE); } -#line 3225 "src/prebuilt/wast-lexer-gen.cc" -yy496: +#line 3246 "src/prebuilt/wast-lexer-gen.cc" +yy501: yych = *++cursor_; - if (yych == 'o') goto yy642; + if (yych == 'o') goto yy647; goto yy87; -yy497: +yy502: yych = *++cursor_; - if (yych == 'i') goto yy643; + if (yych == 'i') goto yy648; goto yy87; -yy498: +yy503: yych = *++cursor_; - if (yych == 'r') goto yy644; + if (yych == 'r') goto yy649; goto yy87; -yy499: +yy504: yych = *++cursor_; - if (yych == 'o') goto yy645; + if (yych == 'o') goto yy650; goto yy87; -yy500: +yy505: yych = *++cursor_; - if (yych == 'b') goto yy646; + if (yych == 'b') goto yy651; goto yy87; -yy501: +yy506: yych = *++cursor_; - if (yych == 'u') goto yy648; + if (yych == 'u') goto yy653; goto yy87; -yy502: +yy507: yych = *++cursor_; - if (yych == 'o') goto yy649; + if (yych == 'o') goto yy654; goto yy87; -yy503: +yy508: yych = *++cursor_; - if (yych == 'c') goto yy650; + if (yych == 'c') goto yy655; goto yy87; -yy504: +yy509: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 440 "src/wast-lexer.cc" { RETURN(GLOBAL); } -#line 3265 "src/prebuilt/wast-lexer-gen.cc" -yy506: +#line 3286 "src/prebuilt/wast-lexer-gen.cc" +yy511: yych = *++cursor_; - if (yych == 'e') goto yy651; + if (yych == 'e') goto yy656; goto yy87; -yy507: +yy512: yych = *++cursor_; - if (yych == 'd') goto yy652; + if (yych == 'd') goto yy657; goto yy87; -yy508: +yy513: yych = *++cursor_; - if (yych == 'd') goto yy654; + if (yych == 'd') goto yy659; goto yy87; -yy509: +yy514: yych = *++cursor_; - if (yych == 'z') goto yy656; + if (yych == 'z') goto yy661; goto yy87; -yy510: +yy515: yych = *++cursor_; - if (yych == 'n') goto yy658; + if (yych == 'n') goto yy663; goto yy87; -yy511: +yy516: yych = *++cursor_; - if (yych == 'z') goto yy659; + if (yych == 'z') goto yy664; goto yy87; -yy512: +yy517: yych = *++cursor_; - if (yych == 'v') goto yy661; + if (yych == 'v') goto yy666; goto yy87; -yy513: +yy518: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy514; + if (yych <= '"') goto yy519; if (yych <= '\'') goto yy86; } } else { if (yych <= 'y') { if (yych != ';') goto yy86; } else { - if (yych <= 'z') goto yy662; + if (yych <= 'z') goto yy667; if (yych <= '~') goto yy86; } } -yy514: +yy519: #line 374 "src/wast-lexer.cc" { OPCODE(I32Eq); RETURN(COMPARE); } -#line 3314 "src/prebuilt/wast-lexer-gen.cc" -yy515: +#line 3335 "src/prebuilt/wast-lexer-gen.cc" +yy520: yych = *++cursor_; - if (yych == '_') goto yy664; + if (yych == '_') goto yy669; goto yy87; -yy516: +yy521: yych = *++cursor_; - if (yych == '_') goto yy665; + if (yych == '_') goto yy670; goto yy87; -yy517: +yy522: yych = *++cursor_; - if (yych == '_') goto yy666; + if (yych == '_') goto yy671; goto yy87; -yy518: +yy523: yych = *++cursor_; - if (yych == 'a') goto yy667; + if (yych == 'a') goto yy672; goto yy87; -yy519: +yy524: yych = *++cursor_; - if (yych == '_') goto yy668; + if (yych == '_') goto yy673; goto yy87; -yy520: +yy525: yych = *++cursor_; - if (yych == 'l') goto yy669; + if (yych == 'l') goto yy674; goto yy87; -yy521: +yy526: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 376 "src/wast-lexer.cc" { OPCODE(I32Ne); RETURN(COMPARE); } -#line 3346 "src/prebuilt/wast-lexer-gen.cc" -yy523: +#line 3367 "src/prebuilt/wast-lexer-gen.cc" +yy528: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 346 "src/wast-lexer.cc" { OPCODE(I32Or); RETURN(BINARY); } -#line 3354 "src/prebuilt/wast-lexer-gen.cc" -yy525: - yych = *++cursor_; - if (yych == 'p') goto yy671; - goto yy87; -yy526: - yych = *++cursor_; - if (yych == 'i') goto yy672; - if (yych == 'm') goto yy673; - goto yy87; -yy527: - yych = *++cursor_; - if (yych == 't') goto yy674; - goto yy87; -yy528: - yych = *++cursor_; - if (yych == 'l') goto yy675; - if (yych == 'r') goto yy677; - goto yy87; -yy529: - yych = *++cursor_; - if (yych == 'o') goto yy678; - goto yy87; +#line 3375 "src/prebuilt/wast-lexer-gen.cc" yy530: yych = *++cursor_; - if (yych == 'b') goto yy679; + if (yych == 'p') goto yy676; goto yy87; yy531: yych = *++cursor_; - if (yych == 'u') goto yy681; + if (yych == 'i') goto yy677; + if (yych == 'm') goto yy678; goto yy87; yy532: yych = *++cursor_; - if (yych == 'a') goto yy682; + if (yych == 't') goto yy679; goto yy87; yy533: yych = *++cursor_; - if (yych == 'r') goto yy683; + if (yych == 'l') goto yy680; + if (yych == 'r') goto yy682; goto yy87; yy534: yych = *++cursor_; - if (yych == 'd') goto yy685; + if (yych == 'o') goto yy683; goto yy87; yy535: yych = *++cursor_; - if (yych == 'd') goto yy687; + if (yych == 'b') goto yy684; goto yy87; yy536: yych = *++cursor_; - if (yych == 'z') goto yy689; + if (yych == 'u') goto yy686; goto yy87; yy537: yych = *++cursor_; - if (yych == 'n') goto yy691; + if (yych == 'a') goto yy687; goto yy87; yy538: yych = *++cursor_; - if (yych == 'z') goto yy692; + if (yych == 'r') goto yy688; goto yy87; yy539: yych = *++cursor_; - if (yych == 'v') goto yy694; + if (yych == 'd') goto yy690; goto yy87; yy540: + yych = *++cursor_; + if (yych == 'd') goto yy692; + goto yy87; +yy541: + yych = *++cursor_; + if (yych == 'z') goto yy694; + goto yy87; +yy542: + yych = *++cursor_; + if (yych == 'n') goto yy696; + goto yy87; +yy543: + yych = *++cursor_; + if (yych == 'z') goto yy697; + goto yy87; +yy544: + yych = *++cursor_; + if (yych == 'v') goto yy699; + goto yy87; +yy545: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy541; + if (yych <= '"') goto yy546; if (yych <= '\'') goto yy86; } } else { if (yych <= 'y') { if (yych != ';') goto yy86; } else { - if (yych <= 'z') goto yy695; + if (yych <= 'z') goto yy700; if (yych <= '~') goto yy86; } } -yy541: +yy546: #line 375 "src/wast-lexer.cc" { OPCODE(I64Eq); RETURN(COMPARE); } -#line 3437 "src/prebuilt/wast-lexer-gen.cc" -yy542: +#line 3458 "src/prebuilt/wast-lexer-gen.cc" +yy547: yych = *++cursor_; - if (yych == 't') goto yy697; + if (yych == 't') goto yy702; goto yy87; -yy543: +yy548: yych = *++cursor_; - if (yych == '_') goto yy698; + if (yych == '_') goto yy703; goto yy87; -yy544: +yy549: yych = *++cursor_; - if (yych == '_') goto yy699; + if (yych == '_') goto yy704; goto yy87; -yy545: +yy550: yych = *++cursor_; - if (yych == '_') goto yy700; + if (yych == '_') goto yy705; goto yy87; -yy546: +yy551: yych = *++cursor_; - if (yych == 'a') goto yy701; + if (yych == 'a') goto yy706; goto yy87; -yy547: +yy552: yych = *++cursor_; - if (yych == '_') goto yy702; + if (yych == '_') goto yy707; goto yy87; -yy548: +yy553: yych = *++cursor_; - if (yych == 'l') goto yy703; + if (yych == 'l') goto yy708; goto yy87; -yy549: +yy554: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 377 "src/wast-lexer.cc" { OPCODE(I64Ne); RETURN(COMPARE); } -#line 3473 "src/prebuilt/wast-lexer-gen.cc" -yy551: +#line 3494 "src/prebuilt/wast-lexer-gen.cc" +yy556: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 347 "src/wast-lexer.cc" { OPCODE(I64Or); RETURN(BINARY); } -#line 3481 "src/prebuilt/wast-lexer-gen.cc" -yy553: +#line 3502 "src/prebuilt/wast-lexer-gen.cc" +yy558: yych = *++cursor_; - if (yych == 'p') goto yy705; + if (yych == 'p') goto yy710; goto yy87; -yy554: +yy559: yych = *++cursor_; - if (yych == 'i') goto yy706; - if (yych == 'm') goto yy707; + if (yych == 'i') goto yy711; + if (yych == 'm') goto yy712; goto yy87; -yy555: +yy560: yych = *++cursor_; - if (yych == 't') goto yy708; + if (yych == 't') goto yy713; goto yy87; -yy556: +yy561: yych = *++cursor_; - if (yych == 'l') goto yy709; - if (yych == 'r') goto yy711; + if (yych == 'l') goto yy714; + if (yych == 'r') goto yy716; goto yy87; -yy557: +yy562: yych = *++cursor_; - if (yych == 'o') goto yy712; + if (yych == 'o') goto yy717; goto yy87; -yy558: +yy563: yych = *++cursor_; - if (yych == 'b') goto yy713; + if (yych == 'b') goto yy718; goto yy87; -yy559: +yy564: yych = *++cursor_; - if (yych == 'u') goto yy715; + if (yych == 'u') goto yy720; goto yy87; -yy560: +yy565: yych = *++cursor_; - if (yych == 'r') goto yy716; + if (yych == 'r') goto yy721; goto yy87; -yy561: +yy566: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 450 "src/wast-lexer.cc" { RETURN(IMPORT); } -#line 3523 "src/prebuilt/wast-lexer-gen.cc" -yy563: +#line 3544 "src/prebuilt/wast-lexer-gen.cc" +yy568: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 453 "src/wast-lexer.cc" +#line 454 "src/wast-lexer.cc" { RETURN(INVOKE); } -#line 3531 "src/prebuilt/wast-lexer-gen.cc" -yy565: +#line 3552 "src/prebuilt/wast-lexer-gen.cc" +yy570: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 445 "src/wast-lexer.cc" { RETURN(MEMORY); } -#line 3539 "src/prebuilt/wast-lexer-gen.cc" -yy567: +#line 3560 "src/prebuilt/wast-lexer-gen.cc" +yy572: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 441 "src/wast-lexer.cc" { RETURN(MODULE); } -#line 3547 "src/prebuilt/wast-lexer-gen.cc" -yy569: +#line 3568 "src/prebuilt/wast-lexer-gen.cc" +yy574: yych = *++cursor_; if (yych <= '@') { if (yych <= '/') goto yy87; - if (yych <= '9') goto yy718; + if (yych <= '9') goto yy723; goto yy87; } else { - if (yych <= 'F') goto yy718; + if (yych <= 'F') goto yy723; if (yych <= '`') goto yy87; - if (yych <= 'f') goto yy718; + if (yych <= 'f') goto yy723; goto yy87; } -yy570: +yy575: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy571; + if (yych <= '"') goto yy576; if (yych <= '\'') goto yy86; } } else { if (yych <= '<') { if (yych != ';') goto yy86; } else { - if (yych <= '=') goto yy720; + if (yych <= '=') goto yy725; if (yych <= '~') goto yy86; } } -yy571: +yy576: #line 449 "src/wast-lexer.cc" { RETURN(OFFSET); } -#line 3580 "src/prebuilt/wast-lexer-gen.cc" -yy572: +#line 3601 "src/prebuilt/wast-lexer-gen.cc" +yy577: yych = *++cursor_; - if (yych == 'e') goto yy721; + if (yych == 'e') goto yy726; goto yy87; -yy573: +yy578: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 438 "src/wast-lexer.cc" { RETURN(RESULT); } -#line 3592 "src/prebuilt/wast-lexer-gen.cc" -yy575: +#line 3613 "src/prebuilt/wast-lexer-gen.cc" +yy580: yych = *++cursor_; - if (yych == 'w') goto yy722; + if (yych == 'w') goto yy727; goto yy87; -yy576: +yy581: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 273 "src/wast-lexer.cc" { RETURN(RETURN); } -#line 3604 "src/prebuilt/wast-lexer-gen.cc" -yy578: +#line 3625 "src/prebuilt/wast-lexer-gen.cc" +yy583: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 431 "src/wast-lexer.cc" { RETURN(SELECT); } -#line 3612 "src/prebuilt/wast-lexer-gen.cc" -yy580: +#line 3633 "src/prebuilt/wast-lexer-gen.cc" +yy585: yych = *++cursor_; - if (yych == 'o') goto yy724; + if (yych == 'o') goto yy729; goto yy87; -yy581: +yy586: yych = *++cursor_; - if (yych == 'c') goto yy725; + if (yych == 'c') goto yy730; goto yy87; -yy582: +yy587: yych = *++cursor_; - if (yych == 'c') goto yy726; + if (yych == 'c') goto yy731; goto yy87; -yy583: +yy588: yych = *++cursor_; - if (yych == 'h') goto yy727; + if (yych == 'h') goto yy732; goto yy87; -yy584: +yy589: ++cursor_; if ((yych = *cursor_) <= '/') { if (yych <= '"') { @@ -3636,886 +3657,886 @@ yy584: } } else { if (yych <= ';') { - if (yych <= '9') goto yy586; + if (yych <= '9') goto yy591; if (yych <= ':') goto yy86; } else { - if (yych == 'x') goto yy728; + if (yych == 'x') goto yy733; if (yych <= '~') goto yy86; } } -yy585: +yy590: #line 303 "src/wast-lexer.cc" { TEXT_AT(6); RETURN(ALIGN_EQ_NAT); } -#line 3650 "src/prebuilt/wast-lexer-gen.cc" -yy586: +#line 3671 "src/prebuilt/wast-lexer-gen.cc" +yy591: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ')') { if (yych <= '!') { - if (yych <= ' ') goto yy585; + if (yych <= ' ') goto yy590; goto yy86; } else { - if (yych <= '"') goto yy585; + if (yych <= '"') goto yy590; if (yych <= '\'') goto yy86; - goto yy585; + goto yy590; } } else { if (yych <= ':') { if (yych <= '/') goto yy86; - if (yych <= '9') goto yy586; + if (yych <= '9') goto yy591; goto yy86; } else { - if (yych <= ';') goto yy585; + if (yych <= ';') goto yy590; if (yych <= '~') goto yy86; - goto yy585; + goto yy590; } } -yy588: +yy593: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 258 "src/wast-lexer.cc" { RETURN(ANYFUNC); } -#line 3682 "src/prebuilt/wast-lexer-gen.cc" -yy590: +#line 3703 "src/prebuilt/wast-lexer-gen.cc" +yy595: yych = *++cursor_; switch (yych) { - case 'e': goto yy729; - case 'i': goto yy730; - case 'm': goto yy731; - case 'r': goto yy732; - case 't': goto yy733; - case 'u': goto yy734; + case 'e': goto yy734; + case 'i': goto yy735; + case 'm': goto yy736; + case 'r': goto yy737; + case 't': goto yy738; + case 'u': goto yy739; default: goto yy87; } -yy591: +yy596: yych = *++cursor_; - if (yych == 'e') goto yy735; + if (yych == 'e') goto yy740; goto yy87; -yy592: +yy597: yych = *++cursor_; - if (yych == 'd') goto yy737; + if (yych == 'd') goto yy742; goto yy87; -yy593: +yy598: yych = *++cursor_; - if (yych == 'l') goto yy738; + if (yych == 'l') goto yy743; goto yy87; -yy594: +yy599: yych = *++cursor_; - if (yych == '_') goto yy739; + if (yych == '_') goto yy744; goto yy87; -yy595: +yy600: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 318 "src/wast-lexer.cc" { OPCODE(F32Abs); RETURN(UNARY); } -#line 3717 "src/prebuilt/wast-lexer-gen.cc" -yy597: +#line 3738 "src/prebuilt/wast-lexer-gen.cc" +yy602: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 360 "src/wast-lexer.cc" { OPCODE(F32Add); RETURN(BINARY); } -#line 3725 "src/prebuilt/wast-lexer-gen.cc" -yy599: +#line 3746 "src/prebuilt/wast-lexer-gen.cc" +yy604: yych = *++cursor_; - if (yych == 'l') goto yy740; + if (yych == 'l') goto yy745; goto yy87; -yy600: +yy605: yych = *++cursor_; - if (yych == 's') goto yy742; - if (yych == 'v') goto yy743; + if (yych == 's') goto yy747; + if (yych == 'v') goto yy748; goto yy87; -yy601: +yy606: yych = *++cursor_; - if (yych == 'y') goto yy744; + if (yych == 'y') goto yy749; goto yy87; -yy602: +yy607: yych = *++cursor_; - if (yych == 'o') goto yy745; + if (yych == 'o') goto yy750; goto yy87; -yy603: +yy608: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 366 "src/wast-lexer.cc" { OPCODE(F32Div); RETURN(BINARY); } -#line 3750 "src/prebuilt/wast-lexer-gen.cc" -yy605: +#line 3771 "src/prebuilt/wast-lexer-gen.cc" +yy610: yych = *++cursor_; - if (yych == 'o') goto yy746; + if (yych == 'o') goto yy751; goto yy87; -yy606: +yy611: yych = *++cursor_; - if (yych == 'd') goto yy747; + if (yych == 'd') goto yy752; goto yy87; -yy607: +yy612: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 370 "src/wast-lexer.cc" { OPCODE(F32Max); RETURN(BINARY); } -#line 3766 "src/prebuilt/wast-lexer-gen.cc" -yy609: +#line 3787 "src/prebuilt/wast-lexer-gen.cc" +yy614: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 368 "src/wast-lexer.cc" { OPCODE(F32Min); RETURN(BINARY); } -#line 3774 "src/prebuilt/wast-lexer-gen.cc" -yy611: +#line 3795 "src/prebuilt/wast-lexer-gen.cc" +yy616: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 364 "src/wast-lexer.cc" { OPCODE(F32Mul); RETURN(BINARY); } -#line 3782 "src/prebuilt/wast-lexer-gen.cc" -yy613: +#line 3803 "src/prebuilt/wast-lexer-gen.cc" +yy618: yych = *++cursor_; - if (yych == 'r') goto yy749; + if (yych == 'r') goto yy754; goto yy87; -yy614: +yy619: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 316 "src/wast-lexer.cc" { OPCODE(F32Neg); RETURN(UNARY); } -#line 3794 "src/prebuilt/wast-lexer-gen.cc" -yy616: +#line 3815 "src/prebuilt/wast-lexer-gen.cc" +yy621: yych = *++cursor_; - if (yych == 'n') goto yy750; + if (yych == 'n') goto yy755; goto yy87; -yy617: +yy622: yych = *++cursor_; - if (yych == 't') goto yy751; + if (yych == 't') goto yy756; goto yy87; -yy618: +yy623: yych = *++cursor_; - if (yych == 'r') goto yy753; + if (yych == 'r') goto yy758; goto yy87; -yy619: +yy624: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 362 "src/wast-lexer.cc" { OPCODE(F32Sub); RETURN(BINARY); } -#line 3814 "src/prebuilt/wast-lexer-gen.cc" -yy621: +#line 3835 "src/prebuilt/wast-lexer-gen.cc" +yy626: yych = *++cursor_; - if (yych == 'n') goto yy754; + if (yych == 'n') goto yy759; goto yy87; -yy622: +yy627: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 319 "src/wast-lexer.cc" { OPCODE(F64Abs); RETURN(UNARY); } -#line 3826 "src/prebuilt/wast-lexer-gen.cc" -yy624: +#line 3847 "src/prebuilt/wast-lexer-gen.cc" +yy629: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 361 "src/wast-lexer.cc" { OPCODE(F64Add); RETURN(BINARY); } -#line 3834 "src/prebuilt/wast-lexer-gen.cc" -yy626: +#line 3855 "src/prebuilt/wast-lexer-gen.cc" +yy631: yych = *++cursor_; - if (yych == 'l') goto yy755; + if (yych == 'l') goto yy760; goto yy87; -yy627: +yy632: yych = *++cursor_; - if (yych == 's') goto yy757; - if (yych == 'v') goto yy758; + if (yych == 's') goto yy762; + if (yych == 'v') goto yy763; goto yy87; -yy628: +yy633: yych = *++cursor_; - if (yych == 'y') goto yy759; + if (yych == 'y') goto yy764; goto yy87; -yy629: +yy634: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 367 "src/wast-lexer.cc" { OPCODE(F64Div); RETURN(BINARY); } -#line 3855 "src/prebuilt/wast-lexer-gen.cc" -yy631: +#line 3876 "src/prebuilt/wast-lexer-gen.cc" +yy636: yych = *++cursor_; - if (yych == 'o') goto yy760; + if (yych == 'o') goto yy765; goto yy87; -yy632: +yy637: yych = *++cursor_; - if (yych == 'd') goto yy761; + if (yych == 'd') goto yy766; goto yy87; -yy633: +yy638: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 371 "src/wast-lexer.cc" { OPCODE(F64Max); RETURN(BINARY); } -#line 3871 "src/prebuilt/wast-lexer-gen.cc" -yy635: +#line 3892 "src/prebuilt/wast-lexer-gen.cc" +yy640: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 369 "src/wast-lexer.cc" { OPCODE(F64Min); RETURN(BINARY); } -#line 3879 "src/prebuilt/wast-lexer-gen.cc" -yy637: +#line 3900 "src/prebuilt/wast-lexer-gen.cc" +yy642: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 365 "src/wast-lexer.cc" { OPCODE(F64Mul); RETURN(BINARY); } -#line 3887 "src/prebuilt/wast-lexer-gen.cc" -yy639: +#line 3908 "src/prebuilt/wast-lexer-gen.cc" +yy644: yych = *++cursor_; - if (yych == 'r') goto yy763; + if (yych == 'r') goto yy768; goto yy87; -yy640: +yy645: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 317 "src/wast-lexer.cc" { OPCODE(F64Neg); RETURN(UNARY); } -#line 3899 "src/prebuilt/wast-lexer-gen.cc" -yy642: +#line 3920 "src/prebuilt/wast-lexer-gen.cc" +yy647: yych = *++cursor_; - if (yych == 'm') goto yy764; + if (yych == 'm') goto yy769; goto yy87; -yy643: +yy648: yych = *++cursor_; - if (yych == 'n') goto yy765; + if (yych == 'n') goto yy770; goto yy87; -yy644: +yy649: yych = *++cursor_; - if (yych == 't') goto yy766; + if (yych == 't') goto yy771; goto yy87; -yy645: +yy650: yych = *++cursor_; - if (yych == 'r') goto yy768; + if (yych == 'r') goto yy773; goto yy87; -yy646: +yy651: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 363 "src/wast-lexer.cc" { OPCODE(F64Sub); RETURN(BINARY); } -#line 3923 "src/prebuilt/wast-lexer-gen.cc" -yy648: +#line 3944 "src/prebuilt/wast-lexer-gen.cc" +yy653: yych = *++cursor_; - if (yych == 'n') goto yy769; + if (yych == 'n') goto yy774; goto yy87; -yy649: +yy654: yych = *++cursor_; - if (yych == 'b') goto yy770; + if (yych == 'b') goto yy775; goto yy87; -yy650: +yy655: yych = *++cursor_; - if (yych == 'a') goto yy771; + if (yych == 'a') goto yy776; goto yy87; -yy651: +yy656: yych = *++cursor_; - if (yych == 'm') goto yy772; + if (yych == 'm') goto yy777; goto yy87; -yy652: +yy657: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 330 "src/wast-lexer.cc" { OPCODE(I32Add); RETURN(BINARY); } -#line 3947 "src/prebuilt/wast-lexer-gen.cc" -yy654: +#line 3968 "src/prebuilt/wast-lexer-gen.cc" +yy659: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 344 "src/wast-lexer.cc" { OPCODE(I32And); RETURN(BINARY); } -#line 3955 "src/prebuilt/wast-lexer-gen.cc" -yy656: +#line 3976 "src/prebuilt/wast-lexer-gen.cc" +yy661: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 310 "src/wast-lexer.cc" { OPCODE(I32Clz); RETURN(UNARY); } -#line 3963 "src/prebuilt/wast-lexer-gen.cc" -yy658: +#line 3984 "src/prebuilt/wast-lexer-gen.cc" +yy663: yych = *++cursor_; - if (yych == 's') goto yy773; + if (yych == 's') goto yy778; goto yy87; -yy659: +yy664: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 312 "src/wast-lexer.cc" { OPCODE(I32Ctz); RETURN(UNARY); } -#line 3975 "src/prebuilt/wast-lexer-gen.cc" -yy661: +#line 3996 "src/prebuilt/wast-lexer-gen.cc" +yy666: yych = *++cursor_; - if (yych == '_') goto yy774; + if (yych == '_') goto yy779; goto yy87; -yy662: +yy667: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 308 "src/wast-lexer.cc" { OPCODE(I32Eqz); RETURN(CONVERT); } -#line 3987 "src/prebuilt/wast-lexer-gen.cc" -yy664: +#line 4008 "src/prebuilt/wast-lexer-gen.cc" +yy669: yych = *++cursor_; - if (yych == 's') goto yy775; - if (yych == 'u') goto yy777; + if (yych == 's') goto yy780; + if (yych == 'u') goto yy782; goto yy87; -yy665: +yy670: yych = *++cursor_; - if (yych == 's') goto yy779; - if (yych == 'u') goto yy781; + if (yych == 's') goto yy784; + if (yych == 'u') goto yy786; goto yy87; -yy666: +yy671: yych = *++cursor_; - if (yych == 's') goto yy783; - if (yych == 'u') goto yy785; + if (yych == 's') goto yy788; + if (yych == 'u') goto yy790; goto yy87; -yy667: +yy672: yych = *++cursor_; - if (yych == 'd') goto yy787; + if (yych == 'd') goto yy792; goto yy87; -yy668: +yy673: yych = *++cursor_; - if (yych == 's') goto yy789; - if (yych == 'u') goto yy791; + if (yych == 's') goto yy794; + if (yych == 'u') goto yy796; goto yy87; -yy669: +yy674: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 334 "src/wast-lexer.cc" { OPCODE(I32Mul); RETURN(BINARY); } -#line 4019 "src/prebuilt/wast-lexer-gen.cc" -yy671: +#line 4040 "src/prebuilt/wast-lexer-gen.cc" +yy676: yych = *++cursor_; - if (yych == 'c') goto yy793; + if (yych == 'c') goto yy798; goto yy87; -yy672: +yy677: yych = *++cursor_; - if (yych == 'n') goto yy794; + if (yych == 'n') goto yy799; goto yy87; -yy673: +yy678: yych = *++cursor_; - if (yych == '_') goto yy795; + if (yych == '_') goto yy800; goto yy87; -yy674: +yy679: yych = *++cursor_; - if (yych == 'l') goto yy796; - if (yych == 'r') goto yy798; + if (yych == 'l') goto yy801; + if (yych == 'r') goto yy803; goto yy87; -yy675: +yy680: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 350 "src/wast-lexer.cc" { OPCODE(I32Shl); RETURN(BINARY); } -#line 4044 "src/prebuilt/wast-lexer-gen.cc" -yy677: +#line 4065 "src/prebuilt/wast-lexer-gen.cc" +yy682: yych = *++cursor_; - if (yych == '_') goto yy800; + if (yych == '_') goto yy805; goto yy87; -yy678: +yy683: yych = *++cursor_; - if (yych == 'r') goto yy801; + if (yych == 'r') goto yy806; goto yy87; -yy679: +yy684: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 332 "src/wast-lexer.cc" { OPCODE(I32Sub); RETURN(BINARY); } -#line 4060 "src/prebuilt/wast-lexer-gen.cc" -yy681: +#line 4081 "src/prebuilt/wast-lexer-gen.cc" +yy686: yych = *++cursor_; - if (yych == 'n') goto yy802; + if (yych == 'n') goto yy807; goto yy87; -yy682: +yy687: yych = *++cursor_; - if (yych == 'p') goto yy803; + if (yych == 'p') goto yy808; goto yy87; -yy683: +yy688: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 348 "src/wast-lexer.cc" { OPCODE(I32Xor); RETURN(BINARY); } -#line 4076 "src/prebuilt/wast-lexer-gen.cc" -yy685: +#line 4097 "src/prebuilt/wast-lexer-gen.cc" +yy690: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 331 "src/wast-lexer.cc" { OPCODE(I64Add); RETURN(BINARY); } -#line 4084 "src/prebuilt/wast-lexer-gen.cc" -yy687: +#line 4105 "src/prebuilt/wast-lexer-gen.cc" +yy692: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 345 "src/wast-lexer.cc" { OPCODE(I64And); RETURN(BINARY); } -#line 4092 "src/prebuilt/wast-lexer-gen.cc" -yy689: +#line 4113 "src/prebuilt/wast-lexer-gen.cc" +yy694: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 311 "src/wast-lexer.cc" { OPCODE(I64Clz); RETURN(UNARY); } -#line 4100 "src/prebuilt/wast-lexer-gen.cc" -yy691: +#line 4121 "src/prebuilt/wast-lexer-gen.cc" +yy696: yych = *++cursor_; - if (yych == 's') goto yy804; + if (yych == 's') goto yy809; goto yy87; -yy692: +yy697: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 313 "src/wast-lexer.cc" { OPCODE(I64Ctz); RETURN(UNARY); } -#line 4112 "src/prebuilt/wast-lexer-gen.cc" -yy694: +#line 4133 "src/prebuilt/wast-lexer-gen.cc" +yy699: yych = *++cursor_; - if (yych == '_') goto yy805; + if (yych == '_') goto yy810; goto yy87; -yy695: +yy700: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 309 "src/wast-lexer.cc" { OPCODE(I64Eqz); RETURN(CONVERT); } -#line 4124 "src/prebuilt/wast-lexer-gen.cc" -yy697: +#line 4145 "src/prebuilt/wast-lexer-gen.cc" +yy702: yych = *++cursor_; - if (yych == 'e') goto yy806; + if (yych == 'e') goto yy811; goto yy87; -yy698: +yy703: yych = *++cursor_; - if (yych == 's') goto yy807; - if (yych == 'u') goto yy809; + if (yych == 's') goto yy812; + if (yych == 'u') goto yy814; goto yy87; -yy699: +yy704: yych = *++cursor_; - if (yych == 's') goto yy811; - if (yych == 'u') goto yy813; + if (yych == 's') goto yy816; + if (yych == 'u') goto yy818; goto yy87; -yy700: +yy705: yych = *++cursor_; - if (yych == 's') goto yy815; - if (yych == 'u') goto yy817; + if (yych == 's') goto yy820; + if (yych == 'u') goto yy822; goto yy87; -yy701: +yy706: yych = *++cursor_; - if (yych == 'd') goto yy819; + if (yych == 'd') goto yy824; goto yy87; -yy702: +yy707: yych = *++cursor_; - if (yych == 's') goto yy821; - if (yych == 'u') goto yy823; + if (yych == 's') goto yy826; + if (yych == 'u') goto yy828; goto yy87; -yy703: +yy708: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 335 "src/wast-lexer.cc" { OPCODE(I64Mul); RETURN(BINARY); } -#line 4160 "src/prebuilt/wast-lexer-gen.cc" -yy705: +#line 4181 "src/prebuilt/wast-lexer-gen.cc" +yy710: yych = *++cursor_; - if (yych == 'c') goto yy825; + if (yych == 'c') goto yy830; goto yy87; -yy706: +yy711: yych = *++cursor_; - if (yych == 'n') goto yy826; + if (yych == 'n') goto yy831; goto yy87; -yy707: +yy712: yych = *++cursor_; - if (yych == '_') goto yy827; + if (yych == '_') goto yy832; goto yy87; -yy708: +yy713: yych = *++cursor_; - if (yych == 'l') goto yy828; - if (yych == 'r') goto yy830; + if (yych == 'l') goto yy833; + if (yych == 'r') goto yy835; goto yy87; -yy709: +yy714: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 351 "src/wast-lexer.cc" { OPCODE(I64Shl); RETURN(BINARY); } -#line 4185 "src/prebuilt/wast-lexer-gen.cc" -yy711: +#line 4206 "src/prebuilt/wast-lexer-gen.cc" +yy716: yych = *++cursor_; - if (yych == '_') goto yy832; + if (yych == '_') goto yy837; goto yy87; -yy712: +yy717: yych = *++cursor_; - if (yych == 'r') goto yy833; + if (yych == 'r') goto yy838; goto yy87; -yy713: +yy718: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 333 "src/wast-lexer.cc" { OPCODE(I64Sub); RETURN(BINARY); } -#line 4201 "src/prebuilt/wast-lexer-gen.cc" -yy715: +#line 4222 "src/prebuilt/wast-lexer-gen.cc" +yy720: yych = *++cursor_; - if (yych == 'n') goto yy834; + if (yych == 'n') goto yy839; goto yy87; -yy716: +yy721: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 349 "src/wast-lexer.cc" { OPCODE(I64Xor); RETURN(BINARY); } -#line 4213 "src/prebuilt/wast-lexer-gen.cc" -yy718: +#line 4234 "src/prebuilt/wast-lexer-gen.cc" +yy723: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '9') { if (yych <= '"') { if (yych == '!') goto yy86; - goto yy252; + goto yy253; } else { if (yych <= '\'') goto yy86; - if (yych <= ')') goto yy252; + if (yych <= ')') goto yy253; if (yych <= '/') goto yy86; - goto yy718; + goto yy723; } } else { if (yych <= 'F') { - if (yych == ';') goto yy252; + if (yych == ';') goto yy253; if (yych <= '@') goto yy86; - goto yy718; + goto yy723; } else { if (yych <= '`') goto yy86; - if (yych <= 'f') goto yy718; + if (yych <= 'f') goto yy723; if (yych <= '~') goto yy86; - goto yy252; + goto yy253; } } -yy720: +yy725: yych = *++cursor_; if (yych <= '/') goto yy87; - if (yych <= '0') goto yy835; - if (yych <= '9') goto yy837; + if (yych <= '0') goto yy840; + if (yych <= '9') goto yy842; goto yy87; -yy721: +yy726: yych = *++cursor_; - if (yych == 'r') goto yy839; + if (yych == 'r') goto yy844; goto yy87; -yy722: +yy727: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 469 "src/wast-lexer.cc" +#line 470 "src/wast-lexer.cc" { RETURN(RETHROW); } -#line 4257 "src/prebuilt/wast-lexer-gen.cc" -yy724: +#line 4278 "src/prebuilt/wast-lexer-gen.cc" +yy729: yych = *++cursor_; - if (yych == 'b') goto yy841; + if (yych == 'b') goto yy846; goto yy87; -yy725: +yy730: yych = *++cursor_; - if (yych == 'a') goto yy842; + if (yych == 'a') goto yy847; goto yy87; -yy726: +yy731: yych = *++cursor_; - if (yych == 'a') goto yy843; + if (yych == 'a') goto yy848; goto yy87; -yy727: +yy732: yych = *++cursor_; - if (yych == 'a') goto yy844; + if (yych == 'a') goto yy849; goto yy87; -yy728: +yy733: yych = *++cursor_; if (yych <= '@') { if (yych <= '/') goto yy87; - if (yych <= '9') goto yy845; + if (yych <= '9') goto yy850; goto yy87; } else { - if (yych <= 'F') goto yy845; + if (yych <= 'F') goto yy850; if (yych <= '`') goto yy87; - if (yych <= 'f') goto yy845; + if (yych <= 'f') goto yy850; goto yy87; } -yy729: +yy734: yych = *++cursor_; - if (yych == 'x') goto yy847; + if (yych == 'x') goto yy852; goto yy87; -yy730: +yy735: yych = *++cursor_; - if (yych == 'n') goto yy848; + if (yych == 'n') goto yy853; goto yy87; -yy731: +yy736: yych = *++cursor_; - if (yych == 'a') goto yy849; + if (yych == 'a') goto yy854; goto yy87; -yy732: +yy737: yych = *++cursor_; - if (yych == 'e') goto yy850; + if (yych == 'e') goto yy855; goto yy87; -yy733: +yy738: yych = *++cursor_; - if (yych == 'r') goto yy851; + if (yych == 'r') goto yy856; goto yy87; -yy734: +yy739: yych = *++cursor_; - if (yych == 'n') goto yy852; + if (yych == 'n') goto yy857; goto yy87; -yy735: +yy740: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 268 "src/wast-lexer.cc" { RETURN(BR_TABLE); } -#line 4317 "src/prebuilt/wast-lexer-gen.cc" -yy737: +#line 4338 "src/prebuilt/wast-lexer-gen.cc" +yy742: yych = *++cursor_; - if (yych == 'i') goto yy853; + if (yych == 'i') goto yy858; goto yy87; -yy738: +yy743: yych = *++cursor_; - if (yych == 'l') goto yy854; + if (yych == 'l') goto yy859; goto yy87; -yy739: +yy744: yych = *++cursor_; - if (yych == 'm') goto yy856; + if (yych == 'm') goto yy861; goto yy87; -yy740: +yy745: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 322 "src/wast-lexer.cc" { OPCODE(F32Ceil); RETURN(UNARY); } -#line 4337 "src/prebuilt/wast-lexer-gen.cc" -yy742: +#line 4358 "src/prebuilt/wast-lexer-gen.cc" +yy747: yych = *++cursor_; - if (yych == 't') goto yy857; + if (yych == 't') goto yy862; goto yy87; -yy743: +yy748: yych = *++cursor_; - if (yych == 'e') goto yy859; + if (yych == 'e') goto yy864; goto yy87; -yy744: +yy749: yych = *++cursor_; - if (yych == 's') goto yy860; + if (yych == 's') goto yy865; goto yy87; -yy745: +yy750: yych = *++cursor_; - if (yych == 't') goto yy861; + if (yych == 't') goto yy866; goto yy87; -yy746: +yy751: yych = *++cursor_; - if (yych == 'r') goto yy862; + if (yych == 'r') goto yy867; goto yy87; -yy747: +yy752: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 281 "src/wast-lexer.cc" { OPCODE(F32Load); RETURN(LOAD); } -#line 4365 "src/prebuilt/wast-lexer-gen.cc" -yy749: +#line 4386 "src/prebuilt/wast-lexer-gen.cc" +yy754: yych = *++cursor_; - if (yych == 'e') goto yy864; + if (yych == 'e') goto yy869; goto yy87; -yy750: +yy755: yych = *++cursor_; - if (yych == 't') goto yy865; + if (yych == 't') goto yy870; goto yy87; -yy751: +yy756: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 320 "src/wast-lexer.cc" { OPCODE(F32Sqrt); RETURN(UNARY); } -#line 4381 "src/prebuilt/wast-lexer-gen.cc" -yy753: +#line 4402 "src/prebuilt/wast-lexer-gen.cc" +yy758: yych = *++cursor_; - if (yych == 'e') goto yy866; + if (yych == 'e') goto yy871; goto yy87; -yy754: +yy759: yych = *++cursor_; - if (yych == 'c') goto yy868; + if (yych == 'c') goto yy873; goto yy87; -yy755: +yy760: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 323 "src/wast-lexer.cc" { OPCODE(F64Ceil); RETURN(UNARY); } -#line 4397 "src/prebuilt/wast-lexer-gen.cc" -yy757: +#line 4418 "src/prebuilt/wast-lexer-gen.cc" +yy762: yych = *++cursor_; - if (yych == 't') goto yy870; + if (yych == 't') goto yy875; goto yy87; -yy758: +yy763: yych = *++cursor_; - if (yych == 'e') goto yy872; + if (yych == 'e') goto yy877; goto yy87; -yy759: +yy764: yych = *++cursor_; - if (yych == 's') goto yy873; + if (yych == 's') goto yy878; goto yy87; -yy760: +yy765: yych = *++cursor_; - if (yych == 'r') goto yy874; + if (yych == 'r') goto yy879; goto yy87; -yy761: +yy766: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 282 "src/wast-lexer.cc" { OPCODE(F64Load); RETURN(LOAD); } -#line 4421 "src/prebuilt/wast-lexer-gen.cc" -yy763: +#line 4442 "src/prebuilt/wast-lexer-gen.cc" +yy768: yych = *++cursor_; - if (yych == 'e') goto yy876; + if (yych == 'e') goto yy881; goto yy87; -yy764: +yy769: yych = *++cursor_; - if (yych == 'o') goto yy877; + if (yych == 'o') goto yy882; goto yy87; -yy765: +yy770: yych = *++cursor_; - if (yych == 't') goto yy878; + if (yych == 't') goto yy883; goto yy87; -yy766: +yy771: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 321 "src/wast-lexer.cc" { OPCODE(F64Sqrt); RETURN(UNARY); } -#line 4441 "src/prebuilt/wast-lexer-gen.cc" -yy768: +#line 4462 "src/prebuilt/wast-lexer-gen.cc" +yy773: yych = *++cursor_; - if (yych == 'e') goto yy879; + if (yych == 'e') goto yy884; goto yy87; -yy769: +yy774: yych = *++cursor_; - if (yych == 'c') goto yy881; + if (yych == 'c') goto yy886; goto yy87; -yy770: +yy775: yych = *++cursor_; - if (yych == 'a') goto yy883; + if (yych == 'a') goto yy888; goto yy87; -yy771: +yy776: yych = *++cursor_; - if (yych == 'l') goto yy884; + if (yych == 'l') goto yy889; goto yy87; -yy772: +yy777: yych = *++cursor_; - if (yych == 'o') goto yy886; + if (yych == 'o') goto yy891; goto yy87; -yy773: +yy778: yych = *++cursor_; - if (yych == 't') goto yy887; + if (yych == 't') goto yy892; goto yy87; -yy774: +yy779: yych = *++cursor_; - if (yych == 's') goto yy889; - if (yych == 'u') goto yy891; + if (yych == 's') goto yy894; + if (yych == 'u') goto yy896; goto yy87; -yy775: +yy780: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 390 "src/wast-lexer.cc" { OPCODE(I32GeS); RETURN(COMPARE); } -#line 4478 "src/prebuilt/wast-lexer-gen.cc" -yy777: +#line 4499 "src/prebuilt/wast-lexer-gen.cc" +yy782: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 392 "src/wast-lexer.cc" { OPCODE(I32GeU); RETURN(COMPARE); } -#line 4486 "src/prebuilt/wast-lexer-gen.cc" -yy779: +#line 4507 "src/prebuilt/wast-lexer-gen.cc" +yy784: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 386 "src/wast-lexer.cc" { OPCODE(I32GtS); RETURN(COMPARE); } -#line 4494 "src/prebuilt/wast-lexer-gen.cc" -yy781: +#line 4515 "src/prebuilt/wast-lexer-gen.cc" +yy786: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 388 "src/wast-lexer.cc" { OPCODE(I32GtU); RETURN(COMPARE); } -#line 4502 "src/prebuilt/wast-lexer-gen.cc" -yy783: +#line 4523 "src/prebuilt/wast-lexer-gen.cc" +yy788: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 382 "src/wast-lexer.cc" { OPCODE(I32LeS); RETURN(COMPARE); } -#line 4510 "src/prebuilt/wast-lexer-gen.cc" -yy785: +#line 4531 "src/prebuilt/wast-lexer-gen.cc" +yy790: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 384 "src/wast-lexer.cc" { OPCODE(I32LeU); RETURN(COMPARE); } -#line 4518 "src/prebuilt/wast-lexer-gen.cc" -yy787: +#line 4539 "src/prebuilt/wast-lexer-gen.cc" +yy792: ++cursor_; if ((yych = *cursor_) <= '0') { if (yych <= '"') { @@ -4526,225 +4547,225 @@ yy787: } } else { if (yych <= '8') { - if (yych <= '1') goto yy893; + if (yych <= '1') goto yy898; if (yych <= '7') goto yy86; - goto yy894; + goto yy899; } else { - if (yych == ';') goto yy788; + if (yych == ';') goto yy793; if (yych <= '~') goto yy86; } } -yy788: +yy793: #line 279 "src/wast-lexer.cc" { OPCODE(I32Load); RETURN(LOAD); } -#line 4541 "src/prebuilt/wast-lexer-gen.cc" -yy789: +#line 4562 "src/prebuilt/wast-lexer-gen.cc" +yy794: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 378 "src/wast-lexer.cc" { OPCODE(I32LtS); RETURN(COMPARE); } -#line 4549 "src/prebuilt/wast-lexer-gen.cc" -yy791: +#line 4570 "src/prebuilt/wast-lexer-gen.cc" +yy796: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 380 "src/wast-lexer.cc" { OPCODE(I32LtU); RETURN(COMPARE); } -#line 4557 "src/prebuilt/wast-lexer-gen.cc" -yy793: +#line 4578 "src/prebuilt/wast-lexer-gen.cc" +yy798: yych = *++cursor_; - if (yych == 'n') goto yy895; + if (yych == 'n') goto yy900; goto yy87; -yy794: +yy799: yych = *++cursor_; - if (yych == 't') goto yy896; + if (yych == 't') goto yy901; goto yy87; -yy795: +yy800: yych = *++cursor_; - if (yych == 's') goto yy897; - if (yych == 'u') goto yy899; + if (yych == 's') goto yy902; + if (yych == 'u') goto yy904; goto yy87; -yy796: +yy801: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 356 "src/wast-lexer.cc" { OPCODE(I32Rotl); RETURN(BINARY); } -#line 4578 "src/prebuilt/wast-lexer-gen.cc" -yy798: +#line 4599 "src/prebuilt/wast-lexer-gen.cc" +yy803: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 358 "src/wast-lexer.cc" { OPCODE(I32Rotr); RETURN(BINARY); } -#line 4586 "src/prebuilt/wast-lexer-gen.cc" -yy800: +#line 4607 "src/prebuilt/wast-lexer-gen.cc" +yy805: yych = *++cursor_; - if (yych == 's') goto yy901; - if (yych == 'u') goto yy903; + if (yych == 's') goto yy906; + if (yych == 'u') goto yy908; goto yy87; -yy801: +yy806: yych = *++cursor_; - if (yych == 'e') goto yy905; + if (yych == 'e') goto yy910; goto yy87; -yy802: +yy807: yych = *++cursor_; - if (yych == 'c') goto yy907; + if (yych == 'c') goto yy912; goto yy87; -yy803: +yy808: yych = *++cursor_; - if (yych == '/') goto yy908; + if (yych == '/') goto yy913; goto yy87; -yy804: +yy809: yych = *++cursor_; - if (yych == 't') goto yy909; + if (yych == 't') goto yy914; goto yy87; -yy805: +yy810: yych = *++cursor_; - if (yych == 's') goto yy911; - if (yych == 'u') goto yy913; + if (yych == 's') goto yy916; + if (yych == 'u') goto yy918; goto yy87; -yy806: +yy811: yych = *++cursor_; - if (yych == 'n') goto yy915; + if (yych == 'n') goto yy920; goto yy87; -yy807: +yy812: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 391 "src/wast-lexer.cc" { OPCODE(I64GeS); RETURN(COMPARE); } -#line 4624 "src/prebuilt/wast-lexer-gen.cc" -yy809: +#line 4645 "src/prebuilt/wast-lexer-gen.cc" +yy814: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 393 "src/wast-lexer.cc" { OPCODE(I64GeU); RETURN(COMPARE); } -#line 4632 "src/prebuilt/wast-lexer-gen.cc" -yy811: +#line 4653 "src/prebuilt/wast-lexer-gen.cc" +yy816: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 387 "src/wast-lexer.cc" { OPCODE(I64GtS); RETURN(COMPARE); } -#line 4640 "src/prebuilt/wast-lexer-gen.cc" -yy813: +#line 4661 "src/prebuilt/wast-lexer-gen.cc" +yy818: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 389 "src/wast-lexer.cc" { OPCODE(I64GtU); RETURN(COMPARE); } -#line 4648 "src/prebuilt/wast-lexer-gen.cc" -yy815: +#line 4669 "src/prebuilt/wast-lexer-gen.cc" +yy820: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 383 "src/wast-lexer.cc" { OPCODE(I64LeS); RETURN(COMPARE); } -#line 4656 "src/prebuilt/wast-lexer-gen.cc" -yy817: +#line 4677 "src/prebuilt/wast-lexer-gen.cc" +yy822: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 385 "src/wast-lexer.cc" { OPCODE(I64LeU); RETURN(COMPARE); } -#line 4664 "src/prebuilt/wast-lexer-gen.cc" -yy819: +#line 4685 "src/prebuilt/wast-lexer-gen.cc" +yy824: ++cursor_; if ((yych = *cursor_) <= '1') { if (yych <= '"') { if (yych == '!') goto yy86; } else { if (yych <= '\'') goto yy86; - if (yych <= ')') goto yy820; + if (yych <= ')') goto yy825; if (yych <= '0') goto yy86; - goto yy916; + goto yy921; } } else { if (yych <= '8') { - if (yych == '3') goto yy917; + if (yych == '3') goto yy922; if (yych <= '7') goto yy86; - goto yy918; + goto yy923; } else { - if (yych == ';') goto yy820; + if (yych == ';') goto yy825; if (yych <= '~') goto yy86; } } -yy820: +yy825: #line 280 "src/wast-lexer.cc" { OPCODE(I64Load); RETURN(LOAD); } -#line 4689 "src/prebuilt/wast-lexer-gen.cc" -yy821: +#line 4710 "src/prebuilt/wast-lexer-gen.cc" +yy826: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 379 "src/wast-lexer.cc" { OPCODE(I64LtS); RETURN(COMPARE); } -#line 4697 "src/prebuilt/wast-lexer-gen.cc" -yy823: +#line 4718 "src/prebuilt/wast-lexer-gen.cc" +yy828: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 381 "src/wast-lexer.cc" { OPCODE(I64LtU); RETURN(COMPARE); } -#line 4705 "src/prebuilt/wast-lexer-gen.cc" -yy825: +#line 4726 "src/prebuilt/wast-lexer-gen.cc" +yy830: yych = *++cursor_; - if (yych == 'n') goto yy919; + if (yych == 'n') goto yy924; goto yy87; -yy826: +yy831: yych = *++cursor_; - if (yych == 't') goto yy920; + if (yych == 't') goto yy925; goto yy87; -yy827: +yy832: yych = *++cursor_; - if (yych == 's') goto yy921; - if (yych == 'u') goto yy923; + if (yych == 's') goto yy926; + if (yych == 'u') goto yy928; goto yy87; -yy828: +yy833: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 357 "src/wast-lexer.cc" { OPCODE(I64Rotl); RETURN(BINARY); } -#line 4726 "src/prebuilt/wast-lexer-gen.cc" -yy830: +#line 4747 "src/prebuilt/wast-lexer-gen.cc" +yy835: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 359 "src/wast-lexer.cc" { OPCODE(I64Rotr); RETURN(BINARY); } -#line 4734 "src/prebuilt/wast-lexer-gen.cc" -yy832: +#line 4755 "src/prebuilt/wast-lexer-gen.cc" +yy837: yych = *++cursor_; - if (yych == 's') goto yy925; - if (yych == 'u') goto yy927; + if (yych == 's') goto yy930; + if (yych == 'u') goto yy932; goto yy87; -yy833: +yy838: yych = *++cursor_; - if (yych == 'e') goto yy929; + if (yych == 'e') goto yy934; goto yy87; -yy834: +yy839: yych = *++cursor_; - if (yych == 'c') goto yy931; + if (yych == 'c') goto yy936; goto yy87; -yy835: +yy840: ++cursor_; if ((yych = *cursor_) <= '/') { if (yych <= '"') { @@ -4755,324 +4776,324 @@ yy835: } } else { if (yych <= ';') { - if (yych <= '9') goto yy837; + if (yych <= '9') goto yy842; if (yych <= ':') goto yy86; } else { - if (yych == 'x') goto yy932; + if (yych == 'x') goto yy937; if (yych <= '~') goto yy86; } } -yy836: +yy841: #line 302 "src/wast-lexer.cc" { TEXT_AT(7); RETURN(OFFSET_EQ_NAT); } -#line 4769 "src/prebuilt/wast-lexer-gen.cc" -yy837: +#line 4790 "src/prebuilt/wast-lexer-gen.cc" +yy842: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= ')') { if (yych <= '!') { - if (yych <= ' ') goto yy836; + if (yych <= ' ') goto yy841; goto yy86; } else { - if (yych <= '"') goto yy836; + if (yych <= '"') goto yy841; if (yych <= '\'') goto yy86; - goto yy836; + goto yy841; } } else { if (yych <= ':') { if (yych <= '/') goto yy86; - if (yych <= '9') goto yy837; + if (yych <= '9') goto yy842; goto yy86; } else { - if (yych <= ';') goto yy836; + if (yych <= ';') goto yy841; if (yych <= '~') goto yy86; - goto yy836; + goto yy841; } } -yy839: +yy844: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 452 "src/wast-lexer.cc" +#line 453 "src/wast-lexer.cc" { RETURN(REGISTER); } -#line 4801 "src/prebuilt/wast-lexer-gen.cc" -yy841: +#line 4822 "src/prebuilt/wast-lexer-gen.cc" +yy846: yych = *++cursor_; - if (yych == 'a') goto yy933; + if (yych == 'a') goto yy938; goto yy87; -yy842: +yy847: yych = *++cursor_; - if (yych == 'l') goto yy934; + if (yych == 'l') goto yy939; goto yy87; -yy843: +yy848: yych = *++cursor_; - if (yych == 'l') goto yy936; + if (yych == 'l') goto yy941; goto yy87; -yy844: +yy849: yych = *++cursor_; - if (yych == 'b') goto yy938; + if (yych == 'b') goto yy943; goto yy87; -yy845: +yy850: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '9') { if (yych <= '"') { if (yych == '!') goto yy86; - goto yy585; + goto yy590; } else { if (yych <= '\'') goto yy86; - if (yych <= ')') goto yy585; + if (yych <= ')') goto yy590; if (yych <= '/') goto yy86; - goto yy845; + goto yy850; } } else { if (yych <= 'F') { - if (yych == ';') goto yy585; + if (yych == ';') goto yy590; if (yych <= '@') goto yy86; - goto yy845; + goto yy850; } else { if (yych <= '`') goto yy86; - if (yych <= 'f') goto yy845; + if (yych <= 'f') goto yy850; if (yych <= '~') goto yy86; - goto yy585; + goto yy590; } } -yy847: +yy852: yych = *++cursor_; - if (yych == 'h') goto yy939; + if (yych == 'h') goto yy944; goto yy87; -yy848: +yy853: yych = *++cursor_; - if (yych == 'v') goto yy940; + if (yych == 'v') goto yy945; goto yy87; -yy849: +yy854: yych = *++cursor_; - if (yych == 'l') goto yy941; + if (yych == 'l') goto yy946; goto yy87; -yy850: +yy855: yych = *++cursor_; - if (yych == 't') goto yy942; + if (yych == 't') goto yy947; goto yy87; -yy851: +yy856: yych = *++cursor_; - if (yych == 'a') goto yy943; + if (yych == 'a') goto yy948; goto yy87; -yy852: +yy857: yych = *++cursor_; - if (yych == 'l') goto yy944; + if (yych == 'l') goto yy949; goto yy87; -yy853: +yy858: yych = *++cursor_; - if (yych == 'r') goto yy945; + if (yych == 'r') goto yy950; goto yy87; -yy854: +yy859: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 467 "src/wast-lexer.cc" +#line 468 "src/wast-lexer.cc" { RETURN(CATCH_ALL); } -#line 4879 "src/prebuilt/wast-lexer-gen.cc" -yy856: +#line 4900 "src/prebuilt/wast-lexer-gen.cc" +yy861: yych = *++cursor_; - if (yych == 'e') goto yy946; + if (yych == 'e') goto yy951; goto yy87; -yy857: +yy862: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 306 "src/wast-lexer.cc" { TYPE(F32); RETURN(CONST); } -#line 4891 "src/prebuilt/wast-lexer-gen.cc" -yy859: +#line 4912 "src/prebuilt/wast-lexer-gen.cc" +yy864: yych = *++cursor_; - if (yych == 'r') goto yy947; + if (yych == 'r') goto yy952; goto yy87; -yy860: +yy865: yych = *++cursor_; - if (yych == 'i') goto yy948; + if (yych == 'i') goto yy953; goto yy87; -yy861: +yy866: yych = *++cursor_; - if (yych == 'e') goto yy949; + if (yych == 'e') goto yy954; goto yy87; -yy862: +yy867: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 324 "src/wast-lexer.cc" { OPCODE(F32Floor); RETURN(UNARY); } -#line 4911 "src/prebuilt/wast-lexer-gen.cc" -yy864: +#line 4932 "src/prebuilt/wast-lexer-gen.cc" +yy869: yych = *++cursor_; - if (yych == 's') goto yy950; + if (yych == 's') goto yy955; goto yy87; -yy865: +yy870: yych = *++cursor_; - if (yych == 'e') goto yy951; + if (yych == 'e') goto yy956; goto yy87; -yy866: +yy871: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 285 "src/wast-lexer.cc" { OPCODE(F32Store); RETURN(STORE); } -#line 4927 "src/prebuilt/wast-lexer-gen.cc" -yy868: +#line 4948 "src/prebuilt/wast-lexer-gen.cc" +yy873: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 326 "src/wast-lexer.cc" { OPCODE(F32Trunc); RETURN(UNARY); } -#line 4935 "src/prebuilt/wast-lexer-gen.cc" -yy870: +#line 4956 "src/prebuilt/wast-lexer-gen.cc" +yy875: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 307 "src/wast-lexer.cc" { TYPE(F64); RETURN(CONST); } -#line 4943 "src/prebuilt/wast-lexer-gen.cc" -yy872: +#line 4964 "src/prebuilt/wast-lexer-gen.cc" +yy877: yych = *++cursor_; - if (yych == 'r') goto yy952; + if (yych == 'r') goto yy957; goto yy87; -yy873: +yy878: yych = *++cursor_; - if (yych == 'i') goto yy953; + if (yych == 'i') goto yy958; goto yy87; -yy874: +yy879: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 325 "src/wast-lexer.cc" { OPCODE(F64Floor); RETURN(UNARY); } -#line 4959 "src/prebuilt/wast-lexer-gen.cc" -yy876: +#line 4980 "src/prebuilt/wast-lexer-gen.cc" +yy881: yych = *++cursor_; - if (yych == 's') goto yy954; + if (yych == 's') goto yy959; goto yy87; -yy877: +yy882: yych = *++cursor_; - if (yych == 't') goto yy955; + if (yych == 't') goto yy960; goto yy87; -yy878: +yy883: yych = *++cursor_; - if (yych == 'e') goto yy956; + if (yych == 'e') goto yy961; goto yy87; -yy879: +yy884: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 286 "src/wast-lexer.cc" { OPCODE(F64Store); RETURN(STORE); } -#line 4979 "src/prebuilt/wast-lexer-gen.cc" -yy881: +#line 5000 "src/prebuilt/wast-lexer-gen.cc" +yy886: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 327 "src/wast-lexer.cc" { OPCODE(F64Trunc); RETURN(UNARY); } -#line 4987 "src/prebuilt/wast-lexer-gen.cc" -yy883: +#line 5008 "src/prebuilt/wast-lexer-gen.cc" +yy888: yych = *++cursor_; - if (yych == 'l') goto yy957; + if (yych == 'l') goto yy962; goto yy87; -yy884: +yy889: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 274 "src/wast-lexer.cc" { RETURN(GET_LOCAL); } -#line 4999 "src/prebuilt/wast-lexer-gen.cc" -yy886: +#line 5020 "src/prebuilt/wast-lexer-gen.cc" +yy891: yych = *++cursor_; - if (yych == 'r') goto yy959; + if (yych == 'r') goto yy964; goto yy87; -yy887: +yy892: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 304 "src/wast-lexer.cc" { TYPE(I32); RETURN(CONST); } -#line 5011 "src/prebuilt/wast-lexer-gen.cc" -yy889: +#line 5032 "src/prebuilt/wast-lexer-gen.cc" +yy894: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 336 "src/wast-lexer.cc" { OPCODE(I32DivS); RETURN(BINARY); } -#line 5019 "src/prebuilt/wast-lexer-gen.cc" -yy891: +#line 5040 "src/prebuilt/wast-lexer-gen.cc" +yy896: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 338 "src/wast-lexer.cc" { OPCODE(I32DivU); RETURN(BINARY); } -#line 5027 "src/prebuilt/wast-lexer-gen.cc" -yy893: +#line 5048 "src/prebuilt/wast-lexer-gen.cc" +yy898: yych = *++cursor_; - if (yych == '6') goto yy960; + if (yych == '6') goto yy965; goto yy87; -yy894: +yy899: yych = *++cursor_; - if (yych == '_') goto yy961; + if (yych == '_') goto yy966; goto yy87; -yy895: +yy900: yych = *++cursor_; - if (yych == 't') goto yy962; + if (yych == 't') goto yy967; goto yy87; -yy896: +yy901: yych = *++cursor_; - if (yych == 'e') goto yy964; + if (yych == 'e') goto yy969; goto yy87; -yy897: +yy902: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 340 "src/wast-lexer.cc" { OPCODE(I32RemS); RETURN(BINARY); } -#line 5051 "src/prebuilt/wast-lexer-gen.cc" -yy899: +#line 5072 "src/prebuilt/wast-lexer-gen.cc" +yy904: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 342 "src/wast-lexer.cc" { OPCODE(I32RemU); RETURN(BINARY); } -#line 5059 "src/prebuilt/wast-lexer-gen.cc" -yy901: +#line 5080 "src/prebuilt/wast-lexer-gen.cc" +yy906: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 352 "src/wast-lexer.cc" { OPCODE(I32ShrS); RETURN(BINARY); } -#line 5067 "src/prebuilt/wast-lexer-gen.cc" -yy903: +#line 5088 "src/prebuilt/wast-lexer-gen.cc" +yy908: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 354 "src/wast-lexer.cc" { OPCODE(I32ShrU); RETURN(BINARY); } -#line 5075 "src/prebuilt/wast-lexer-gen.cc" -yy905: +#line 5096 "src/prebuilt/wast-lexer-gen.cc" +yy910: ++cursor_; if ((yych = *cursor_) <= '0') { if (yych <= '"') { @@ -5083,827 +5104,807 @@ yy905: } } else { if (yych <= '8') { - if (yych <= '1') goto yy965; + if (yych <= '1') goto yy970; if (yych <= '7') goto yy86; - goto yy966; + goto yy971; } else { - if (yych == ';') goto yy906; + if (yych == ';') goto yy911; if (yych <= '~') goto yy86; } } -yy906: +yy911: #line 283 "src/wast-lexer.cc" { OPCODE(I32Store); RETURN(STORE); } -#line 5098 "src/prebuilt/wast-lexer-gen.cc" -yy907: +#line 5119 "src/prebuilt/wast-lexer-gen.cc" +yy912: yych = *++cursor_; - if (yych == '_') goto yy968; + if (yych == '_') goto yy973; goto yy87; -yy908: +yy913: yych = *++cursor_; - if (yych == 'i') goto yy969; + if (yych == 'i') goto yy974; goto yy87; -yy909: +yy914: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 305 "src/wast-lexer.cc" { TYPE(I64); RETURN(CONST); } -#line 5114 "src/prebuilt/wast-lexer-gen.cc" -yy911: +#line 5135 "src/prebuilt/wast-lexer-gen.cc" +yy916: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 337 "src/wast-lexer.cc" { OPCODE(I64DivS); RETURN(BINARY); } -#line 5122 "src/prebuilt/wast-lexer-gen.cc" -yy913: +#line 5143 "src/prebuilt/wast-lexer-gen.cc" +yy918: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 339 "src/wast-lexer.cc" { OPCODE(I64DivU); RETURN(BINARY); } -#line 5130 "src/prebuilt/wast-lexer-gen.cc" -yy915: +#line 5151 "src/prebuilt/wast-lexer-gen.cc" +yy920: yych = *++cursor_; - if (yych == 'd') goto yy970; + if (yych == 'd') goto yy975; goto yy87; -yy916: +yy921: yych = *++cursor_; - if (yych == '6') goto yy971; + if (yych == '6') goto yy976; goto yy87; -yy917: +yy922: yych = *++cursor_; - if (yych == '2') goto yy972; + if (yych == '2') goto yy977; goto yy87; -yy918: +yy923: yych = *++cursor_; - if (yych == '_') goto yy973; + if (yych == '_') goto yy978; goto yy87; -yy919: +yy924: yych = *++cursor_; - if (yych == 't') goto yy974; + if (yych == 't') goto yy979; goto yy87; -yy920: +yy925: yych = *++cursor_; - if (yych == 'e') goto yy976; + if (yych == 'e') goto yy981; goto yy87; -yy921: +yy926: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 341 "src/wast-lexer.cc" { OPCODE(I64RemS); RETURN(BINARY); } -#line 5162 "src/prebuilt/wast-lexer-gen.cc" -yy923: +#line 5183 "src/prebuilt/wast-lexer-gen.cc" +yy928: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 343 "src/wast-lexer.cc" { OPCODE(I64RemU); RETURN(BINARY); } -#line 5170 "src/prebuilt/wast-lexer-gen.cc" -yy925: +#line 5191 "src/prebuilt/wast-lexer-gen.cc" +yy930: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 353 "src/wast-lexer.cc" { OPCODE(I64ShrS); RETURN(BINARY); } -#line 5178 "src/prebuilt/wast-lexer-gen.cc" -yy927: +#line 5199 "src/prebuilt/wast-lexer-gen.cc" +yy932: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 355 "src/wast-lexer.cc" { OPCODE(I64ShrU); RETURN(BINARY); } -#line 5186 "src/prebuilt/wast-lexer-gen.cc" -yy929: +#line 5207 "src/prebuilt/wast-lexer-gen.cc" +yy934: ++cursor_; if ((yych = *cursor_) <= '1') { if (yych <= '"') { if (yych == '!') goto yy86; } else { if (yych <= '\'') goto yy86; - if (yych <= ')') goto yy930; + if (yych <= ')') goto yy935; if (yych <= '0') goto yy86; - goto yy977; + goto yy982; } } else { if (yych <= '8') { - if (yych == '3') goto yy978; + if (yych == '3') goto yy983; if (yych <= '7') goto yy86; - goto yy979; + goto yy984; } else { - if (yych == ';') goto yy930; + if (yych == ';') goto yy935; if (yych <= '~') goto yy86; } } -yy930: +yy935: #line 284 "src/wast-lexer.cc" { OPCODE(I64Store); RETURN(STORE); } -#line 5211 "src/prebuilt/wast-lexer-gen.cc" -yy931: +#line 5232 "src/prebuilt/wast-lexer-gen.cc" +yy936: yych = *++cursor_; - if (yych == '_') goto yy981; + if (yych == '_') goto yy986; goto yy87; -yy932: +yy937: yych = *++cursor_; if (yych <= '@') { if (yych <= '/') goto yy87; - if (yych <= '9') goto yy982; + if (yych <= '9') goto yy987; goto yy87; } else { - if (yych <= 'F') goto yy982; + if (yych <= 'F') goto yy987; if (yych <= '`') goto yy87; - if (yych <= 'f') goto yy982; + if (yych <= 'f') goto yy987; goto yy87; } -yy933: +yy938: yych = *++cursor_; - if (yych == 'l') goto yy984; + if (yych == 'l') goto yy989; goto yy87; -yy934: +yy939: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 275 "src/wast-lexer.cc" { RETURN(SET_LOCAL); } -#line 5239 "src/prebuilt/wast-lexer-gen.cc" -yy936: +#line 5260 "src/prebuilt/wast-lexer-gen.cc" +yy941: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 276 "src/wast-lexer.cc" { RETURN(TEE_LOCAL); } -#line 5247 "src/prebuilt/wast-lexer-gen.cc" -yy938: - yych = *++cursor_; - if (yych == 'l') goto yy986; - goto yy87; -yy939: - yych = *++cursor_; - if (yych == 'a') goto yy987; - goto yy87; -yy940: - yych = *++cursor_; - if (yych == 'a') goto yy988; - goto yy87; -yy941: - yych = *++cursor_; - if (yych == 'f') goto yy989; - goto yy87; -yy942: - yych = *++cursor_; - if (yych == 'u') goto yy990; - goto yy87; +#line 5268 "src/prebuilt/wast-lexer-gen.cc" yy943: yych = *++cursor_; - if (yych == 'p') goto yy991; + if (yych == 'l') goto yy991; goto yy87; yy944: yych = *++cursor_; - if (yych == 'i') goto yy993; + if (yych == 'a') goto yy992; goto yy87; yy945: yych = *++cursor_; - if (yych == 'e') goto yy994; + if (yych == 'a') goto yy993; goto yy87; yy946: yych = *++cursor_; - if (yych == 'm') goto yy995; + if (yych == 'f') goto yy994; goto yy87; yy947: yych = *++cursor_; - if (yych == 't') goto yy996; + if (yych == 'u') goto yy995; goto yy87; yy948: yych = *++cursor_; - if (yych == 'g') goto yy997; + if (yych == 'p') goto yy996; goto yy87; yy949: yych = *++cursor_; - if (yych == '/') goto yy998; + if (yych == 'i') goto yy998; goto yy87; yy950: yych = *++cursor_; - if (yych == 't') goto yy999; + if (yych == 'e') goto yy999; goto yy87; yy951: yych = *++cursor_; - if (yych == 'r') goto yy1001; + if (yych == 'm') goto yy1000; goto yy87; yy952: yych = *++cursor_; - if (yych == 't') goto yy1002; + if (yych == 't') goto yy1001; goto yy87; yy953: yych = *++cursor_; - if (yych == 'g') goto yy1003; + if (yych == 'g') goto yy1002; goto yy87; yy954: yych = *++cursor_; - if (yych == 't') goto yy1004; + if (yych == '/') goto yy1003; goto yy87; yy955: yych = *++cursor_; - if (yych == 'e') goto yy1006; + if (yych == 't') goto yy1004; goto yy87; yy956: yych = *++cursor_; - if (yych == 'r') goto yy1007; + if (yych == 'r') goto yy1006; goto yy87; yy957: - ++cursor_; - if (yybm[0+(yych = *cursor_)] & 8) { - goto yy86; - } -#line 277 "src/wast-lexer.cc" - { RETURN(GET_GLOBAL); } -#line 5331 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == 't') goto yy1007; + goto yy87; +yy958: + yych = *++cursor_; + if (yych == 'g') goto yy1008; + goto yy87; yy959: yych = *++cursor_; - if (yych == 'y') goto yy1008; + if (yych == 't') goto yy1009; goto yy87; yy960: yych = *++cursor_; - if (yych == '_') goto yy1010; + if (yych == 'e') goto yy1011; goto yy87; yy961: yych = *++cursor_; - if (yych == 's') goto yy1011; - if (yych == 'u') goto yy1013; + if (yych == 'r') goto yy1012; goto yy87; yy962: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 314 "src/wast-lexer.cc" - { OPCODE(I32Popcnt); RETURN(UNARY); } +#line 277 "src/wast-lexer.cc" + { RETURN(GET_GLOBAL); } #line 5352 "src/prebuilt/wast-lexer-gen.cc" yy964: yych = *++cursor_; - if (yych == 'r') goto yy1015; + if (yych == 'y') goto yy1013; goto yy87; yy965: yych = *++cursor_; - if (yych == '6') goto yy1016; + if (yych == '_') goto yy1015; goto yy87; yy966: + yych = *++cursor_; + if (yych == 's') goto yy1016; + if (yych == 'u') goto yy1018; + goto yy87; +yy967: + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 314 "src/wast-lexer.cc" + { OPCODE(I32Popcnt); RETURN(UNARY); } +#line 5373 "src/prebuilt/wast-lexer-gen.cc" +yy969: + yych = *++cursor_; + if (yych == 'r') goto yy1020; + goto yy87; +yy970: + yych = *++cursor_; + if (yych == '6') goto yy1021; + goto yy87; +yy971: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 297 "src/wast-lexer.cc" { OPCODE(I32Store8); RETURN(STORE); } -#line 5368 "src/prebuilt/wast-lexer-gen.cc" -yy968: +#line 5389 "src/prebuilt/wast-lexer-gen.cc" +yy973: yych = *++cursor_; - if (yych == 's') goto yy1018; - if (yych == 'u') goto yy1019; + if (yych == 's') goto yy1023; + if (yych == 'u') goto yy1024; goto yy87; -yy969: +yy974: yych = *++cursor_; - if (yych == '6') goto yy1020; + if (yych == '6') goto yy1025; goto yy87; -yy970: +yy975: yych = *++cursor_; - if (yych == '_') goto yy1021; + if (yych == '_') goto yy1026; goto yy87; -yy971: +yy976: yych = *++cursor_; - if (yych == '_') goto yy1022; + if (yych == '_') goto yy1027; goto yy87; -yy972: +yy977: yych = *++cursor_; - if (yych == '_') goto yy1023; + if (yych == '_') goto yy1028; goto yy87; -yy973: +yy978: yych = *++cursor_; - if (yych == 's') goto yy1024; - if (yych == 'u') goto yy1026; + if (yych == 's') goto yy1029; + if (yych == 'u') goto yy1031; goto yy87; -yy974: +yy979: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 315 "src/wast-lexer.cc" { OPCODE(I64Popcnt); RETURN(UNARY); } -#line 5402 "src/prebuilt/wast-lexer-gen.cc" -yy976: +#line 5423 "src/prebuilt/wast-lexer-gen.cc" +yy981: yych = *++cursor_; - if (yych == 'r') goto yy1028; + if (yych == 'r') goto yy1033; goto yy87; -yy977: +yy982: yych = *++cursor_; - if (yych == '6') goto yy1029; + if (yych == '6') goto yy1034; goto yy87; -yy978: +yy983: yych = *++cursor_; - if (yych == '2') goto yy1031; + if (yych == '2') goto yy1036; goto yy87; -yy979: +yy984: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 298 "src/wast-lexer.cc" { OPCODE(I64Store8); RETURN(STORE); } -#line 5422 "src/prebuilt/wast-lexer-gen.cc" -yy981: +#line 5443 "src/prebuilt/wast-lexer-gen.cc" +yy986: yych = *++cursor_; - if (yych == 's') goto yy1033; - if (yych == 'u') goto yy1034; + if (yych == 's') goto yy1038; + if (yych == 'u') goto yy1039; goto yy87; -yy982: +yy987: ++cursor_; if (limit_ <= cursor_) FILL(1); yych = *cursor_; if (yych <= '9') { if (yych <= '"') { if (yych == '!') goto yy86; - goto yy836; + goto yy841; } else { if (yych <= '\'') goto yy86; - if (yych <= ')') goto yy836; + if (yych <= ')') goto yy841; if (yych <= '/') goto yy86; - goto yy982; + goto yy987; } } else { if (yych <= 'F') { - if (yych == ';') goto yy836; + if (yych == ';') goto yy841; if (yych <= '@') goto yy86; - goto yy982; + goto yy987; } else { if (yych <= '`') goto yy86; - if (yych <= 'f') goto yy982; + if (yych <= 'f') goto yy987; if (yych <= '~') goto yy86; - goto yy836; + goto yy841; } } -yy984: +yy989: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 278 "src/wast-lexer.cc" { RETURN(SET_GLOBAL); } -#line 5461 "src/prebuilt/wast-lexer-gen.cc" -yy986: +#line 5482 "src/prebuilt/wast-lexer-gen.cc" +yy991: yych = *++cursor_; - if (yych == 'e') goto yy1035; + if (yych == 'e') goto yy1040; goto yy87; -yy987: +yy992: yych = *++cursor_; - if (yych == 'u') goto yy1037; + if (yych == 'u') goto yy1042; goto yy87; -yy988: +yy993: yych = *++cursor_; - if (yych == 'l') goto yy1038; + if (yych == 'l') goto yy1043; goto yy87; -yy989: +yy994: yych = *++cursor_; - if (yych == 'o') goto yy1039; + if (yych == 'o') goto yy1044; goto yy87; -yy990: +yy995: yych = *++cursor_; - if (yych == 'r') goto yy1040; + if (yych == 'r') goto yy1045; goto yy87; -yy991: +yy996: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 463 "src/wast-lexer.cc" +#line 464 "src/wast-lexer.cc" { RETURN(ASSERT_TRAP); } -#line 5489 "src/prebuilt/wast-lexer-gen.cc" -yy993: +#line 5510 "src/prebuilt/wast-lexer-gen.cc" +yy998: yych = *++cursor_; - if (yych == 'n') goto yy1041; + if (yych == 'n') goto yy1046; goto yy87; -yy994: +yy999: yych = *++cursor_; - if (yych == 'c') goto yy1042; + if (yych == 'c') goto yy1047; goto yy87; -yy995: +yy1000: yych = *++cursor_; - if (yych == 'o') goto yy1043; + if (yych == 'o') goto yy1048; goto yy87; -yy996: +yy1001: yych = *++cursor_; - if (yych == '_') goto yy1044; + if (yych == '_') goto yy1049; goto yy87; -yy997: +yy1002: yych = *++cursor_; - if (yych == 'n') goto yy1045; + if (yych == 'n') goto yy1050; goto yy87; -yy998: +yy1003: yych = *++cursor_; - if (yych == 'f') goto yy1047; + if (yych == 'f') goto yy1052; goto yy87; -yy999: +yy1004: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 328 "src/wast-lexer.cc" { OPCODE(F32Nearest); RETURN(UNARY); } -#line 5521 "src/prebuilt/wast-lexer-gen.cc" -yy1001: +#line 5542 "src/prebuilt/wast-lexer-gen.cc" +yy1006: yych = *++cursor_; - if (yych == 'p') goto yy1048; + if (yych == 'p') goto yy1053; goto yy87; -yy1002: +yy1007: yych = *++cursor_; - if (yych == '_') goto yy1049; + if (yych == '_') goto yy1054; goto yy87; -yy1003: +yy1008: yych = *++cursor_; - if (yych == 'n') goto yy1050; + if (yych == 'n') goto yy1055; goto yy87; -yy1004: +yy1009: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 329 "src/wast-lexer.cc" { OPCODE(F64Nearest); RETURN(UNARY); } -#line 5541 "src/prebuilt/wast-lexer-gen.cc" -yy1006: +#line 5562 "src/prebuilt/wast-lexer-gen.cc" +yy1011: yych = *++cursor_; - if (yych == '/') goto yy1052; + if (yych == '/') goto yy1057; goto yy87; -yy1007: +yy1012: yych = *++cursor_; - if (yych == 'p') goto yy1053; + if (yych == 'p') goto yy1058; goto yy87; -yy1008: +yy1013: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 434 "src/wast-lexer.cc" { RETURN(GROW_MEMORY); } -#line 5557 "src/prebuilt/wast-lexer-gen.cc" -yy1010: +#line 5578 "src/prebuilt/wast-lexer-gen.cc" +yy1015: yych = *++cursor_; - if (yych == 's') goto yy1054; - if (yych == 'u') goto yy1056; + if (yych == 's') goto yy1059; + if (yych == 'u') goto yy1061; goto yy87; -yy1011: +yy1016: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 287 "src/wast-lexer.cc" { OPCODE(I32Load8S); RETURN(LOAD); } -#line 5570 "src/prebuilt/wast-lexer-gen.cc" -yy1013: +#line 5591 "src/prebuilt/wast-lexer-gen.cc" +yy1018: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 289 "src/wast-lexer.cc" { OPCODE(I32Load8U); RETURN(LOAD); } -#line 5578 "src/prebuilt/wast-lexer-gen.cc" -yy1015: +#line 5599 "src/prebuilt/wast-lexer-gen.cc" +yy1020: yych = *++cursor_; - if (yych == 'p') goto yy1058; + if (yych == 'p') goto yy1063; goto yy87; -yy1016: +yy1021: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 299 "src/wast-lexer.cc" { OPCODE(I32Store16); RETURN(STORE); } -#line 5590 "src/prebuilt/wast-lexer-gen.cc" -yy1018: +#line 5611 "src/prebuilt/wast-lexer-gen.cc" +yy1023: yych = *++cursor_; - if (yych == '/') goto yy1059; + if (yych == '/') goto yy1064; goto yy87; -yy1019: +yy1024: yych = *++cursor_; - if (yych == '/') goto yy1060; + if (yych == '/') goto yy1065; goto yy87; -yy1020: +yy1025: yych = *++cursor_; - if (yych == '4') goto yy1061; + if (yych == '4') goto yy1066; goto yy87; -yy1021: +yy1026: yych = *++cursor_; - if (yych == 's') goto yy1063; - if (yych == 'u') goto yy1064; + if (yych == 's') goto yy1068; + if (yych == 'u') goto yy1069; goto yy87; -yy1022: +yy1027: yych = *++cursor_; - if (yych == 's') goto yy1065; - if (yych == 'u') goto yy1067; + if (yych == 's') goto yy1070; + if (yych == 'u') goto yy1072; goto yy87; -yy1023: +yy1028: yych = *++cursor_; - if (yych == 's') goto yy1069; - if (yych == 'u') goto yy1071; + if (yych == 's') goto yy1074; + if (yych == 'u') goto yy1076; goto yy87; -yy1024: +yy1029: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 288 "src/wast-lexer.cc" { OPCODE(I64Load8S); RETURN(LOAD); } -#line 5625 "src/prebuilt/wast-lexer-gen.cc" -yy1026: +#line 5646 "src/prebuilt/wast-lexer-gen.cc" +yy1031: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 290 "src/wast-lexer.cc" { OPCODE(I64Load8U); RETURN(LOAD); } -#line 5633 "src/prebuilt/wast-lexer-gen.cc" -yy1028: +#line 5654 "src/prebuilt/wast-lexer-gen.cc" +yy1033: yych = *++cursor_; - if (yych == 'p') goto yy1073; + if (yych == 'p') goto yy1078; goto yy87; -yy1029: +yy1034: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 300 "src/wast-lexer.cc" { OPCODE(I64Store16); RETURN(STORE); } -#line 5645 "src/prebuilt/wast-lexer-gen.cc" -yy1031: +#line 5666 "src/prebuilt/wast-lexer-gen.cc" +yy1036: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 301 "src/wast-lexer.cc" { OPCODE(I64Store32); RETURN(STORE); } -#line 5653 "src/prebuilt/wast-lexer-gen.cc" -yy1033: +#line 5674 "src/prebuilt/wast-lexer-gen.cc" +yy1038: yych = *++cursor_; - if (yych == '/') goto yy1074; + if (yych == '/') goto yy1079; goto yy87; -yy1034: +yy1039: yych = *++cursor_; - if (yych == '/') goto yy1075; + if (yych == '/') goto yy1080; goto yy87; -yy1035: +yy1040: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 432 "src/wast-lexer.cc" { RETURN(UNREACHABLE); } -#line 5669 "src/prebuilt/wast-lexer-gen.cc" -yy1037: +#line 5690 "src/prebuilt/wast-lexer-gen.cc" +yy1042: yych = *++cursor_; - if (yych == 's') goto yy1076; + if (yych == 's') goto yy1081; goto yy87; -yy1038: +yy1043: yych = *++cursor_; - if (yych == 'i') goto yy1077; + if (yych == 'i') goto yy1082; goto yy87; -yy1039: +yy1044: yych = *++cursor_; - if (yych == 'r') goto yy1078; + if (yych == 'r') goto yy1083; goto yy87; -yy1040: +yy1045: yych = *++cursor_; - if (yych == 'n') goto yy1079; + if (yych == 'n') goto yy1084; goto yy87; -yy1041: +yy1046: yych = *++cursor_; - if (yych == 'k') goto yy1081; + if (yych == 'k') goto yy1086; goto yy87; -yy1042: +yy1047: yych = *++cursor_; - if (yych == 't') goto yy1082; + if (yych == 't') goto yy1087; goto yy87; -yy1043: +yy1048: yych = *++cursor_; - if (yych == 'r') goto yy1084; + if (yych == 'r') goto yy1089; goto yy87; -yy1044: +yy1049: yych = *++cursor_; - if (yych == 's') goto yy1085; - if (yych == 'u') goto yy1086; + if (yych == 's') goto yy1090; + if (yych == 'u') goto yy1091; goto yy87; -yy1045: +yy1050: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 372 "src/wast-lexer.cc" { OPCODE(F32Copysign); RETURN(BINARY); } -#line 5710 "src/prebuilt/wast-lexer-gen.cc" -yy1047: +#line 5731 "src/prebuilt/wast-lexer-gen.cc" +yy1052: yych = *++cursor_; - if (yych == '6') goto yy1087; + if (yych == '6') goto yy1092; goto yy87; -yy1048: +yy1053: yych = *++cursor_; - if (yych == 'r') goto yy1088; + if (yych == 'r') goto yy1093; goto yy87; -yy1049: +yy1054: yych = *++cursor_; - if (yych == 's') goto yy1089; - if (yych == 'u') goto yy1090; + if (yych == 's') goto yy1094; + if (yych == 'u') goto yy1095; goto yy87; -yy1050: +yy1055: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 373 "src/wast-lexer.cc" { OPCODE(F64Copysign); RETURN(BINARY); } -#line 5731 "src/prebuilt/wast-lexer-gen.cc" -yy1052: +#line 5752 "src/prebuilt/wast-lexer-gen.cc" +yy1057: yych = *++cursor_; - if (yych == 'f') goto yy1091; + if (yych == 'f') goto yy1096; goto yy87; -yy1053: +yy1058: yych = *++cursor_; - if (yych == 'r') goto yy1092; + if (yych == 'r') goto yy1097; goto yy87; -yy1054: +yy1059: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 291 "src/wast-lexer.cc" { OPCODE(I32Load16S); RETURN(LOAD); } -#line 5747 "src/prebuilt/wast-lexer-gen.cc" -yy1056: +#line 5768 "src/prebuilt/wast-lexer-gen.cc" +yy1061: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 293 "src/wast-lexer.cc" { OPCODE(I32Load16U); RETURN(LOAD); } -#line 5755 "src/prebuilt/wast-lexer-gen.cc" -yy1058: +#line 5776 "src/prebuilt/wast-lexer-gen.cc" +yy1063: yych = *++cursor_; - if (yych == 'r') goto yy1093; + if (yych == 'r') goto yy1098; goto yy87; -yy1059: +yy1064: yych = *++cursor_; - if (yych == 'f') goto yy1094; + if (yych == 'f') goto yy1099; goto yy87; -yy1060: +yy1065: yych = *++cursor_; - if (yych == 'f') goto yy1095; + if (yych == 'f') goto yy1100; goto yy87; -yy1061: +yy1066: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 408 "src/wast-lexer.cc" { OPCODE(I32WrapI64); RETURN(CONVERT); } -#line 5775 "src/prebuilt/wast-lexer-gen.cc" -yy1063: +#line 5796 "src/prebuilt/wast-lexer-gen.cc" +yy1068: yych = *++cursor_; - if (yych == '/') goto yy1096; + if (yych == '/') goto yy1101; goto yy87; -yy1064: +yy1069: yych = *++cursor_; - if (yych == '/') goto yy1097; + if (yych == '/') goto yy1102; goto yy87; -yy1065: +yy1070: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 292 "src/wast-lexer.cc" { OPCODE(I64Load16S); RETURN(LOAD); } -#line 5791 "src/prebuilt/wast-lexer-gen.cc" -yy1067: +#line 5812 "src/prebuilt/wast-lexer-gen.cc" +yy1072: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 294 "src/wast-lexer.cc" { OPCODE(I64Load16U); RETURN(LOAD); } -#line 5799 "src/prebuilt/wast-lexer-gen.cc" -yy1069: +#line 5820 "src/prebuilt/wast-lexer-gen.cc" +yy1074: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 295 "src/wast-lexer.cc" { OPCODE(I64Load32S); RETURN(LOAD); } -#line 5807 "src/prebuilt/wast-lexer-gen.cc" -yy1071: +#line 5828 "src/prebuilt/wast-lexer-gen.cc" +yy1076: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 296 "src/wast-lexer.cc" { OPCODE(I64Load32U); RETURN(LOAD); } -#line 5815 "src/prebuilt/wast-lexer-gen.cc" -yy1073: +#line 5836 "src/prebuilt/wast-lexer-gen.cc" +yy1078: yych = *++cursor_; - if (yych == 'r') goto yy1098; + if (yych == 'r') goto yy1103; goto yy87; -yy1074: +yy1079: yych = *++cursor_; - if (yych == 'f') goto yy1099; + if (yych == 'f') goto yy1104; goto yy87; -yy1075: +yy1080: yych = *++cursor_; - if (yych == 'f') goto yy1100; + if (yych == 'f') goto yy1105; goto yy87; -yy1076: +yy1081: yych = *++cursor_; - if (yych == 't') goto yy1101; + if (yych == 't') goto yy1106; goto yy87; -yy1077: +yy1082: yych = *++cursor_; - if (yych == 'd') goto yy1102; + if (yych == 'd') goto yy1107; goto yy87; -yy1078: +yy1083: yych = *++cursor_; - if (yych == 'm') goto yy1104; + if (yych == 'm') goto yy1109; goto yy87; -yy1079: +yy1084: ++cursor_; if ((yych = *cursor_) <= ')') { if (yych <= '!') { if (yych >= '!') goto yy86; } else { - if (yych <= '"') goto yy1080; + if (yych <= '"') goto yy1085; if (yych <= '\'') goto yy86; } } else { if (yych <= '^') { if (yych != ';') goto yy86; } else { - if (yych <= '_') goto yy1105; + if (yych <= '_') goto yy1110; if (yych <= '~') goto yy86; } } -yy1080: -#line 458 "src/wast-lexer.cc" +yy1085: +#line 459 "src/wast-lexer.cc" { RETURN(ASSERT_RETURN); } -#line 5860 "src/prebuilt/wast-lexer-gen.cc" -yy1081: +#line 5881 "src/prebuilt/wast-lexer-gen.cc" +yy1086: yych = *++cursor_; - if (yych == 'a') goto yy1106; + if (yych == 'a') goto yy1111; goto yy87; -yy1082: +yy1087: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 270 "src/wast-lexer.cc" { RETURN(CALL_INDIRECT); } -#line 5872 "src/prebuilt/wast-lexer-gen.cc" -yy1084: - yych = *++cursor_; - if (yych == 'y') goto yy1107; - goto yy87; -yy1085: - yych = *++cursor_; - if (yych == '/') goto yy1109; - goto yy87; -yy1086: - yych = *++cursor_; - if (yych == '/') goto yy1110; - goto yy87; -yy1087: - yych = *++cursor_; - if (yych == '4') goto yy1111; - goto yy87; -yy1088: - yych = *++cursor_; - if (yych == 'e') goto yy1113; - goto yy87; +#line 5893 "src/prebuilt/wast-lexer-gen.cc" yy1089: yych = *++cursor_; - if (yych == '/') goto yy1114; + if (yych == 'y') goto yy1112; goto yy87; yy1090: yych = *++cursor_; - if (yych == '/') goto yy1115; + if (yych == '/') goto yy1114; goto yy87; yy1091: yych = *++cursor_; - if (yych == '3') goto yy1116; + if (yych == '/') goto yy1115; goto yy87; yy1092: yych = *++cursor_; - if (yych == 'e') goto yy1117; + if (yych == '4') goto yy1116; goto yy87; yy1093: yych = *++cursor_; @@ -5911,568 +5912,568 @@ yy1093: goto yy87; yy1094: yych = *++cursor_; - if (yych == '3') goto yy1119; - if (yych == '6') goto yy1120; + if (yych == '/') goto yy1119; goto yy87; yy1095: yych = *++cursor_; - if (yych == '3') goto yy1121; - if (yych == '6') goto yy1122; + if (yych == '/') goto yy1120; goto yy87; yy1096: yych = *++cursor_; - if (yych == 'i') goto yy1123; + if (yych == '3') goto yy1121; goto yy87; yy1097: yych = *++cursor_; - if (yych == 'i') goto yy1124; + if (yych == 'e') goto yy1122; goto yy87; yy1098: yych = *++cursor_; - if (yych == 'e') goto yy1125; + if (yych == 'e') goto yy1123; goto yy87; yy1099: yych = *++cursor_; - if (yych == '3') goto yy1126; - if (yych == '6') goto yy1127; + if (yych == '3') goto yy1124; + if (yych == '6') goto yy1125; goto yy87; yy1100: yych = *++cursor_; - if (yych == '3') goto yy1128; - if (yych == '6') goto yy1129; + if (yych == '3') goto yy1126; + if (yych == '6') goto yy1127; goto yy87; yy1101: yych = *++cursor_; - if (yych == 'i') goto yy1130; + if (yych == 'i') goto yy1128; goto yy87; yy1102: - ++cursor_; - if (yybm[0+(yych = *cursor_)] & 8) { - goto yy86; - } -#line 456 "src/wast-lexer.cc" - { RETURN(ASSERT_INVALID); } -#line 5956 "src/prebuilt/wast-lexer-gen.cc" + yych = *++cursor_; + if (yych == 'i') goto yy1129; + goto yy87; +yy1103: + yych = *++cursor_; + if (yych == 'e') goto yy1130; + goto yy87; yy1104: yych = *++cursor_; - if (yych == 'e') goto yy1131; + if (yych == '3') goto yy1131; + if (yych == '6') goto yy1132; goto yy87; yy1105: yych = *++cursor_; - if (yych == 'a') goto yy1132; - if (yych == 'c') goto yy1133; + if (yych == '3') goto yy1133; + if (yych == '6') goto yy1134; goto yy87; yy1106: yych = *++cursor_; - if (yych == 'b') goto yy1134; + if (yych == 'i') goto yy1135; goto yy87; yy1107: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 433 "src/wast-lexer.cc" - { RETURN(CURRENT_MEMORY); } +#line 457 "src/wast-lexer.cc" + { RETURN(ASSERT_INVALID); } #line 5977 "src/prebuilt/wast-lexer-gen.cc" yy1109: yych = *++cursor_; - if (yych == 'i') goto yy1135; + if (yych == 'e') goto yy1136; goto yy87; yy1110: yych = *++cursor_; - if (yych == 'i') goto yy1136; + if (yych == 'a') goto yy1137; + if (yych == 'c') goto yy1138; goto yy87; yy1111: + yych = *++cursor_; + if (yych == 'b') goto yy1139; + goto yy87; +yy1112: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 426 "src/wast-lexer.cc" - { OPCODE(F32DemoteF64); RETURN(CONVERT); } -#line 5993 "src/prebuilt/wast-lexer-gen.cc" -yy1113: - yych = *++cursor_; - if (yych == 't') goto yy1137; - goto yy87; +#line 433 "src/wast-lexer.cc" + { RETURN(CURRENT_MEMORY); } +#line 5998 "src/prebuilt/wast-lexer-gen.cc" yy1114: yych = *++cursor_; - if (yych == 'i') goto yy1138; + if (yych == 'i') goto yy1140; goto yy87; yy1115: yych = *++cursor_; - if (yych == 'i') goto yy1139; + if (yych == 'i') goto yy1141; goto yy87; yy1116: - yych = *++cursor_; - if (yych == '2') goto yy1140; - goto yy87; -yy1117: - yych = *++cursor_; - if (yych == 't') goto yy1142; - goto yy87; + ++cursor_; + if (yybm[0+(yych = *cursor_)] & 8) { + goto yy86; + } +#line 426 "src/wast-lexer.cc" + { OPCODE(F32DemoteF64); RETURN(CONVERT); } +#line 6014 "src/prebuilt/wast-lexer-gen.cc" yy1118: yych = *++cursor_; - if (yych == 't') goto yy1143; + if (yych == 't') goto yy1142; goto yy87; yy1119: yych = *++cursor_; - if (yych == '2') goto yy1144; + if (yych == 'i') goto yy1143; goto yy87; yy1120: yych = *++cursor_; - if (yych == '4') goto yy1146; + if (yych == 'i') goto yy1144; goto yy87; yy1121: yych = *++cursor_; - if (yych == '2') goto yy1148; + if (yych == '2') goto yy1145; goto yy87; yy1122: yych = *++cursor_; - if (yych == '4') goto yy1150; + if (yych == 't') goto yy1147; goto yy87; yy1123: yych = *++cursor_; - if (yych == '3') goto yy1152; + if (yych == 't') goto yy1148; goto yy87; yy1124: yych = *++cursor_; - if (yych == '3') goto yy1153; + if (yych == '2') goto yy1149; goto yy87; yy1125: yych = *++cursor_; - if (yych == 't') goto yy1154; + if (yych == '4') goto yy1151; goto yy87; yy1126: yych = *++cursor_; - if (yych == '2') goto yy1155; + if (yych == '2') goto yy1153; goto yy87; yy1127: yych = *++cursor_; - if (yych == '4') goto yy1157; + if (yych == '4') goto yy1155; goto yy87; yy1128: yych = *++cursor_; - if (yych == '2') goto yy1159; + if (yych == '3') goto yy1157; goto yy87; yy1129: yych = *++cursor_; - if (yych == '4') goto yy1161; + if (yych == '3') goto yy1158; goto yy87; yy1130: yych = *++cursor_; - if (yych == 'o') goto yy1163; + if (yych == 't') goto yy1159; goto yy87; yy1131: yych = *++cursor_; - if (yych == 'd') goto yy1164; + if (yych == '2') goto yy1160; goto yy87; yy1132: yych = *++cursor_; - if (yych == 'r') goto yy1166; + if (yych == '4') goto yy1162; goto yy87; yy1133: yych = *++cursor_; - if (yych == 'a') goto yy1167; + if (yych == '2') goto yy1164; goto yy87; yy1134: yych = *++cursor_; - if (yych == 'l') goto yy1168; + if (yych == '4') goto yy1166; goto yy87; yy1135: yych = *++cursor_; - if (yych == '3') goto yy1169; - if (yych == '6') goto yy1170; + if (yych == 'o') goto yy1168; goto yy87; yy1136: yych = *++cursor_; - if (yych == '3') goto yy1171; - if (yych == '6') goto yy1172; + if (yych == 'd') goto yy1169; goto yy87; yy1137: yych = *++cursor_; - if (yych == '/') goto yy1173; + if (yych == 'r') goto yy1171; goto yy87; yy1138: yych = *++cursor_; + if (yych == 'a') goto yy1172; + goto yy87; +yy1139: + yych = *++cursor_; + if (yych == 'l') goto yy1173; + goto yy87; +yy1140: + yych = *++cursor_; if (yych == '3') goto yy1174; if (yych == '6') goto yy1175; goto yy87; -yy1139: +yy1141: yych = *++cursor_; if (yych == '3') goto yy1176; if (yych == '6') goto yy1177; goto yy87; -yy1140: +yy1142: + yych = *++cursor_; + if (yych == '/') goto yy1178; + goto yy87; +yy1143: + yych = *++cursor_; + if (yych == '3') goto yy1179; + if (yych == '6') goto yy1180; + goto yy87; +yy1144: + yych = *++cursor_; + if (yych == '3') goto yy1181; + if (yych == '6') goto yy1182; + goto yy87; +yy1145: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 425 "src/wast-lexer.cc" { OPCODE(F64PromoteF32); RETURN(CONVERT); } -#line 6113 "src/prebuilt/wast-lexer-gen.cc" -yy1142: +#line 6134 "src/prebuilt/wast-lexer-gen.cc" +yy1147: yych = *++cursor_; - if (yych == '/') goto yy1178; + if (yych == '/') goto yy1183; goto yy87; -yy1143: +yy1148: yych = *++cursor_; - if (yych == '/') goto yy1179; + if (yych == '/') goto yy1184; goto yy87; -yy1144: +yy1149: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 409 "src/wast-lexer.cc" { OPCODE(I32TruncSF32); RETURN(CONVERT); } -#line 6129 "src/prebuilt/wast-lexer-gen.cc" -yy1146: +#line 6150 "src/prebuilt/wast-lexer-gen.cc" +yy1151: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 411 "src/wast-lexer.cc" { OPCODE(I32TruncSF64); RETURN(CONVERT); } -#line 6137 "src/prebuilt/wast-lexer-gen.cc" -yy1148: +#line 6158 "src/prebuilt/wast-lexer-gen.cc" +yy1153: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 413 "src/wast-lexer.cc" { OPCODE(I32TruncUF32); RETURN(CONVERT); } -#line 6145 "src/prebuilt/wast-lexer-gen.cc" -yy1150: +#line 6166 "src/prebuilt/wast-lexer-gen.cc" +yy1155: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 415 "src/wast-lexer.cc" { OPCODE(I32TruncUF64); RETURN(CONVERT); } -#line 6153 "src/prebuilt/wast-lexer-gen.cc" -yy1152: +#line 6174 "src/prebuilt/wast-lexer-gen.cc" +yy1157: yych = *++cursor_; - if (yych == '2') goto yy1180; + if (yych == '2') goto yy1185; goto yy87; -yy1153: +yy1158: yych = *++cursor_; - if (yych == '2') goto yy1182; + if (yych == '2') goto yy1187; goto yy87; -yy1154: +yy1159: yych = *++cursor_; - if (yych == '/') goto yy1184; + if (yych == '/') goto yy1189; goto yy87; -yy1155: +yy1160: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 410 "src/wast-lexer.cc" { OPCODE(I64TruncSF32); RETURN(CONVERT); } -#line 6173 "src/prebuilt/wast-lexer-gen.cc" -yy1157: +#line 6194 "src/prebuilt/wast-lexer-gen.cc" +yy1162: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 412 "src/wast-lexer.cc" { OPCODE(I64TruncSF64); RETURN(CONVERT); } -#line 6181 "src/prebuilt/wast-lexer-gen.cc" -yy1159: +#line 6202 "src/prebuilt/wast-lexer-gen.cc" +yy1164: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 414 "src/wast-lexer.cc" { OPCODE(I64TruncUF32); RETURN(CONVERT); } -#line 6189 "src/prebuilt/wast-lexer-gen.cc" -yy1161: +#line 6210 "src/prebuilt/wast-lexer-gen.cc" +yy1166: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 416 "src/wast-lexer.cc" { OPCODE(I64TruncUF64); RETURN(CONVERT); } -#line 6197 "src/prebuilt/wast-lexer-gen.cc" -yy1163: +#line 6218 "src/prebuilt/wast-lexer-gen.cc" +yy1168: yych = *++cursor_; - if (yych == 'n') goto yy1185; + if (yych == 'n') goto yy1190; goto yy87; -yy1164: +yy1169: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 455 "src/wast-lexer.cc" +#line 456 "src/wast-lexer.cc" { RETURN(ASSERT_MALFORMED); } -#line 6209 "src/prebuilt/wast-lexer-gen.cc" -yy1166: - yych = *++cursor_; - if (yych == 'i') goto yy1187; - goto yy87; -yy1167: - yych = *++cursor_; - if (yych == 'n') goto yy1188; - goto yy87; -yy1168: - yych = *++cursor_; - if (yych == 'e') goto yy1189; - goto yy87; -yy1169: - yych = *++cursor_; - if (yych == '2') goto yy1191; - goto yy87; -yy1170: - yych = *++cursor_; - if (yych == '4') goto yy1193; - goto yy87; +#line 6230 "src/prebuilt/wast-lexer-gen.cc" yy1171: yych = *++cursor_; - if (yych == '2') goto yy1195; + if (yych == 'i') goto yy1192; goto yy87; yy1172: yych = *++cursor_; - if (yych == '4') goto yy1197; + if (yych == 'n') goto yy1193; goto yy87; yy1173: yych = *++cursor_; - if (yych == 'i') goto yy1199; + if (yych == 'e') goto yy1194; goto yy87; yy1174: yych = *++cursor_; - if (yych == '2') goto yy1200; + if (yych == '2') goto yy1196; goto yy87; yy1175: yych = *++cursor_; - if (yych == '4') goto yy1202; + if (yych == '4') goto yy1198; goto yy87; yy1176: yych = *++cursor_; - if (yych == '2') goto yy1204; + if (yych == '2') goto yy1200; goto yy87; yy1177: yych = *++cursor_; - if (yych == '4') goto yy1206; + if (yych == '4') goto yy1202; goto yy87; yy1178: yych = *++cursor_; - if (yych == 'i') goto yy1208; + if (yych == 'i') goto yy1204; goto yy87; yy1179: yych = *++cursor_; - if (yych == 'f') goto yy1209; + if (yych == '2') goto yy1205; goto yy87; yy1180: + yych = *++cursor_; + if (yych == '4') goto yy1207; + goto yy87; +yy1181: + yych = *++cursor_; + if (yych == '2') goto yy1209; + goto yy87; +yy1182: + yych = *++cursor_; + if (yych == '4') goto yy1211; + goto yy87; +yy1183: + yych = *++cursor_; + if (yych == 'i') goto yy1213; + goto yy87; +yy1184: + yych = *++cursor_; + if (yych == 'f') goto yy1214; + goto yy87; +yy1185: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 406 "src/wast-lexer.cc" { OPCODE(I64ExtendSI32); RETURN(CONVERT); } -#line 6273 "src/prebuilt/wast-lexer-gen.cc" -yy1182: +#line 6294 "src/prebuilt/wast-lexer-gen.cc" +yy1187: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 407 "src/wast-lexer.cc" { OPCODE(I64ExtendUI32); RETURN(CONVERT); } -#line 6281 "src/prebuilt/wast-lexer-gen.cc" -yy1184: +#line 6302 "src/prebuilt/wast-lexer-gen.cc" +yy1189: yych = *++cursor_; - if (yych == 'f') goto yy1210; + if (yych == 'f') goto yy1215; goto yy87; -yy1185: +yy1190: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 464 "src/wast-lexer.cc" +#line 465 "src/wast-lexer.cc" { RETURN(ASSERT_EXHAUSTION); } -#line 6293 "src/prebuilt/wast-lexer-gen.cc" -yy1187: +#line 6314 "src/prebuilt/wast-lexer-gen.cc" +yy1192: yych = *++cursor_; - if (yych == 't') goto yy1211; + if (yych == 't') goto yy1216; goto yy87; -yy1188: +yy1193: yych = *++cursor_; - if (yych == 'o') goto yy1212; + if (yych == 'o') goto yy1217; goto yy87; -yy1189: +yy1194: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 457 "src/wast-lexer.cc" +#line 458 "src/wast-lexer.cc" { RETURN(ASSERT_UNLINKABLE); } -#line 6309 "src/prebuilt/wast-lexer-gen.cc" -yy1191: +#line 6330 "src/prebuilt/wast-lexer-gen.cc" +yy1196: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 417 "src/wast-lexer.cc" { OPCODE(F32ConvertSI32); RETURN(CONVERT); } -#line 6317 "src/prebuilt/wast-lexer-gen.cc" -yy1193: +#line 6338 "src/prebuilt/wast-lexer-gen.cc" +yy1198: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 419 "src/wast-lexer.cc" { OPCODE(F32ConvertSI64); RETURN(CONVERT); } -#line 6325 "src/prebuilt/wast-lexer-gen.cc" -yy1195: +#line 6346 "src/prebuilt/wast-lexer-gen.cc" +yy1200: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 421 "src/wast-lexer.cc" { OPCODE(F32ConvertUI32); RETURN(CONVERT); } -#line 6333 "src/prebuilt/wast-lexer-gen.cc" -yy1197: +#line 6354 "src/prebuilt/wast-lexer-gen.cc" +yy1202: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 423 "src/wast-lexer.cc" { OPCODE(F32ConvertUI64); RETURN(CONVERT); } -#line 6341 "src/prebuilt/wast-lexer-gen.cc" -yy1199: +#line 6362 "src/prebuilt/wast-lexer-gen.cc" +yy1204: yych = *++cursor_; - if (yych == '3') goto yy1213; + if (yych == '3') goto yy1218; goto yy87; -yy1200: +yy1205: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 418 "src/wast-lexer.cc" { OPCODE(F64ConvertSI32); RETURN(CONVERT); } -#line 6353 "src/prebuilt/wast-lexer-gen.cc" -yy1202: +#line 6374 "src/prebuilt/wast-lexer-gen.cc" +yy1207: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 420 "src/wast-lexer.cc" { OPCODE(F64ConvertSI64); RETURN(CONVERT); } -#line 6361 "src/prebuilt/wast-lexer-gen.cc" -yy1204: +#line 6382 "src/prebuilt/wast-lexer-gen.cc" +yy1209: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 422 "src/wast-lexer.cc" { OPCODE(F64ConvertUI32); RETURN(CONVERT); } -#line 6369 "src/prebuilt/wast-lexer-gen.cc" -yy1206: +#line 6390 "src/prebuilt/wast-lexer-gen.cc" +yy1211: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 424 "src/wast-lexer.cc" { OPCODE(F64ConvertUI64); RETURN(CONVERT); } -#line 6377 "src/prebuilt/wast-lexer-gen.cc" -yy1208: +#line 6398 "src/prebuilt/wast-lexer-gen.cc" +yy1213: yych = *++cursor_; - if (yych == '6') goto yy1214; + if (yych == '6') goto yy1219; goto yy87; -yy1209: +yy1214: yych = *++cursor_; - if (yych == '3') goto yy1215; + if (yych == '3') goto yy1220; goto yy87; -yy1210: +yy1215: yych = *++cursor_; - if (yych == '6') goto yy1216; + if (yych == '6') goto yy1221; goto yy87; -yy1211: +yy1216: yych = *++cursor_; - if (yych == 'h') goto yy1217; + if (yych == 'h') goto yy1222; goto yy87; -yy1212: +yy1217: yych = *++cursor_; - if (yych == 'n') goto yy1218; + if (yych == 'n') goto yy1223; goto yy87; -yy1213: +yy1218: yych = *++cursor_; - if (yych == '2') goto yy1219; + if (yych == '2') goto yy1224; goto yy87; -yy1214: +yy1219: yych = *++cursor_; - if (yych == '4') goto yy1221; + if (yych == '4') goto yy1226; goto yy87; -yy1215: +yy1220: yych = *++cursor_; - if (yych == '2') goto yy1223; + if (yych == '2') goto yy1228; goto yy87; -yy1216: +yy1221: yych = *++cursor_; - if (yych == '4') goto yy1225; + if (yych == '4') goto yy1230; goto yy87; -yy1217: +yy1222: yych = *++cursor_; - if (yych == 'm') goto yy1227; + if (yych == 'm') goto yy1232; goto yy87; -yy1218: +yy1223: yych = *++cursor_; - if (yych == 'i') goto yy1228; + if (yych == 'i') goto yy1233; goto yy87; -yy1219: +yy1224: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 427 "src/wast-lexer.cc" { OPCODE(F32ReinterpretI32); RETURN(CONVERT); } -#line 6429 "src/prebuilt/wast-lexer-gen.cc" -yy1221: +#line 6450 "src/prebuilt/wast-lexer-gen.cc" +yy1226: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 429 "src/wast-lexer.cc" { OPCODE(F64ReinterpretI64); RETURN(CONVERT); } -#line 6437 "src/prebuilt/wast-lexer-gen.cc" -yy1223: +#line 6458 "src/prebuilt/wast-lexer-gen.cc" +yy1228: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 428 "src/wast-lexer.cc" { OPCODE(I32ReinterpretF32); RETURN(CONVERT); } -#line 6445 "src/prebuilt/wast-lexer-gen.cc" -yy1225: +#line 6466 "src/prebuilt/wast-lexer-gen.cc" +yy1230: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } #line 430 "src/wast-lexer.cc" { OPCODE(I64ReinterpretF64); RETURN(CONVERT); } -#line 6453 "src/prebuilt/wast-lexer-gen.cc" -yy1227: - yych = *++cursor_; - if (yych == 'e') goto yy1229; - goto yy87; -yy1228: - yych = *++cursor_; - if (yych == 'c') goto yy1230; - goto yy87; -yy1229: - yych = *++cursor_; - if (yych == 't') goto yy1231; - goto yy87; -yy1230: - yych = *++cursor_; - if (yych == 'a') goto yy1232; - goto yy87; -yy1231: - yych = *++cursor_; - if (yych == 'i') goto yy1233; - goto yy87; +#line 6474 "src/prebuilt/wast-lexer-gen.cc" yy1232: yych = *++cursor_; - if (yych == 'l') goto yy1234; + if (yych == 'e') goto yy1234; goto yy87; yy1233: yych = *++cursor_; @@ -6480,57 +6481,77 @@ yy1233: goto yy87; yy1234: yych = *++cursor_; - if (yych == '_') goto yy1236; + if (yych == 't') goto yy1236; goto yy87; yy1235: yych = *++cursor_; - if (yych == '_') goto yy1237; + if (yych == 'a') goto yy1237; goto yy87; yy1236: yych = *++cursor_; - if (yych == 'n') goto yy1238; + if (yych == 'i') goto yy1238; goto yy87; yy1237: yych = *++cursor_; - if (yych == 'n') goto yy1239; + if (yych == 'l') goto yy1239; goto yy87; yy1238: yych = *++cursor_; - if (yych == 'a') goto yy1240; + if (yych == 'c') goto yy1240; goto yy87; yy1239: yych = *++cursor_; - if (yych == 'a') goto yy1241; + if (yych == '_') goto yy1241; goto yy87; yy1240: yych = *++cursor_; - if (yych == 'n') goto yy1242; + if (yych == '_') goto yy1242; goto yy87; yy1241: yych = *++cursor_; - if (yych == 'n') goto yy1244; + if (yych == 'n') goto yy1243; goto yy87; yy1242: + yych = *++cursor_; + if (yych == 'n') goto yy1244; + goto yy87; +yy1243: + yych = *++cursor_; + if (yych == 'a') goto yy1245; + goto yy87; +yy1244: + yych = *++cursor_; + if (yych == 'a') goto yy1246; + goto yy87; +yy1245: + yych = *++cursor_; + if (yych == 'n') goto yy1247; + goto yy87; +yy1246: + yych = *++cursor_; + if (yych == 'n') goto yy1249; + goto yy87; +yy1247: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 459 "src/wast-lexer.cc" +#line 460 "src/wast-lexer.cc" { RETURN(ASSERT_RETURN_CANONICAL_NAN); } -#line 6522 "src/prebuilt/wast-lexer-gen.cc" -yy1244: +#line 6543 "src/prebuilt/wast-lexer-gen.cc" +yy1249: ++cursor_; if (yybm[0+(yych = *cursor_)] & 8) { goto yy86; } -#line 461 "src/wast-lexer.cc" +#line 462 "src/wast-lexer.cc" { RETURN(ASSERT_RETURN_ARITHMETIC_NAN); } -#line 6531 "src/prebuilt/wast-lexer-gen.cc" +#line 6552 "src/prebuilt/wast-lexer-gen.cc" } } -#line 490 "src/wast-lexer.cc" +#line 491 "src/wast-lexer.cc" } } diff --git a/src/prebuilt/wast-parser-gen.cc b/src/prebuilt/wast-parser-gen.cc index d945322e..0744dd33 100644 --- a/src/prebuilt/wast-parser-gen.cc +++ b/src/prebuilt/wast-parser-gen.cc @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.0.4. */ +/* A Bison parser, made by GNU Bison 3.0.2. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.0.4" +#define YYBISON_VERSION "3.0.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -152,12 +152,12 @@ } \ } while (0) -#define CHECK_ALLOW_EXCEPTIONS(loc, opcode_name) \ - do { \ - if (!parser->options->allow_exceptions) { \ - wast_parser_error(loc, lexer, parser, "opcode not allowed: %s", \ - opcode_name); \ - } \ +#define CHECK_ALLOW_EXCEPTIONS(loc, opcode_name) \ + do { \ + if (!parser->options->allow_exceptions) { \ + wast_parser_error(loc, lexer, parser, "opcode not allowed: %s", \ + opcode_name); \ + } \ } while (0) #define YYMALLOC(size) new char [size] @@ -315,21 +315,22 @@ extern int wabt_wast_parser_debug; WABT_TOKEN_TYPE_OFFSET = 316, WABT_TOKEN_TYPE_IMPORT = 317, WABT_TOKEN_TYPE_EXPORT = 318, - WABT_TOKEN_TYPE_MODULE = 319, - WABT_TOKEN_TYPE_BIN = 320, - WABT_TOKEN_TYPE_QUOTE = 321, - WABT_TOKEN_TYPE_REGISTER = 322, - WABT_TOKEN_TYPE_INVOKE = 323, - WABT_TOKEN_TYPE_GET = 324, - WABT_TOKEN_TYPE_ASSERT_MALFORMED = 325, - WABT_TOKEN_TYPE_ASSERT_INVALID = 326, - WABT_TOKEN_TYPE_ASSERT_UNLINKABLE = 327, - WABT_TOKEN_TYPE_ASSERT_RETURN = 328, - WABT_TOKEN_TYPE_ASSERT_RETURN_CANONICAL_NAN = 329, - WABT_TOKEN_TYPE_ASSERT_RETURN_ARITHMETIC_NAN = 330, - WABT_TOKEN_TYPE_ASSERT_TRAP = 331, - WABT_TOKEN_TYPE_ASSERT_EXHAUSTION = 332, - WABT_TOKEN_TYPE_LOW = 333 + WABT_TOKEN_TYPE_EXCEPT = 319, + WABT_TOKEN_TYPE_MODULE = 320, + WABT_TOKEN_TYPE_BIN = 321, + WABT_TOKEN_TYPE_QUOTE = 322, + WABT_TOKEN_TYPE_REGISTER = 323, + WABT_TOKEN_TYPE_INVOKE = 324, + WABT_TOKEN_TYPE_GET = 325, + WABT_TOKEN_TYPE_ASSERT_MALFORMED = 326, + WABT_TOKEN_TYPE_ASSERT_INVALID = 327, + WABT_TOKEN_TYPE_ASSERT_UNLINKABLE = 328, + WABT_TOKEN_TYPE_ASSERT_RETURN = 329, + WABT_TOKEN_TYPE_ASSERT_RETURN_CANONICAL_NAN = 330, + WABT_TOKEN_TYPE_ASSERT_RETURN_ARITHMETIC_NAN = 331, + WABT_TOKEN_TYPE_ASSERT_TRAP = 332, + WABT_TOKEN_TYPE_ASSERT_EXHAUSTION = 333, + WABT_TOKEN_TYPE_LOW = 334 }; #endif @@ -362,7 +363,7 @@ int wabt_wast_parser_parse (::wabt::WastLexer* lexer, ::wabt::WastParser* parser /* Copy the second part of user declarations. */ -#line 366 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:358 */ +#line 367 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:358 */ #ifdef short # undef short @@ -604,23 +605,23 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 49 +#define YYFINAL 52 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 980 +#define YYLAST 1148 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 79 +#define YYNTOKENS 80 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 83 +#define YYNNTS 87 /* YYNRULES -- Number of rules. */ -#define YYNRULES 207 +#define YYNRULES 216 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 464 +#define YYNSTATES 477 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 333 +#define YYMAXUTOK 334 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -662,34 +663,35 @@ static const yytype_uint8 yytranslate[] = 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, 74, - 75, 76, 77, 78 + 75, 76, 77, 78, 79 }; #if WABT_WAST_PARSER_DEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 260, 260, 266, 276, 277, 281, 299, 300, 306, - 309, 314, 322, 326, 327, 332, 341, 342, 350, 356, - 362, 367, 374, 380, 391, 395, 399, 406, 410, 418, - 419, 426, 427, 430, 434, 435, 439, 440, 456, 457, - 472, 473, 474, 478, 481, 484, 487, 490, 494, 498, - 502, 505, 509, 513, 517, 521, 525, 529, 533, 536, - 539, 552, 555, 558, 561, 564, 567, 570, 574, 581, - 586, 591, 596, 602, 610, 613, 618, 625, 630, 638, - 639, 645, 649, 652, 657, 662, 668, 676, 679, 685, - 693, 696, 700, 704, 708, 712, 716, 723, 728, 734, - 740, 741, 749, 750, 758, 763, 777, 785, 790, 801, - 809, 820, 827, 828, 834, 844, 845, 854, 861, 862, - 868, 878, 879, 888, 895, 899, 904, 916, 919, 923, - 933, 947, 961, 967, 975, 983, 1003, 1013, 1027, 1041, - 1046, 1054, 1062, 1086, 1100, 1106, 1114, 1127, 1136, 1144, - 1150, 1156, 1165, 1175, 1183, 1189, 1195, 1201, 1209, 1218, - 1228, 1235, 1246, 1255, 1256, 1257, 1258, 1259, 1260, 1261, - 1262, 1263, 1264, 1268, 1269, 1273, 1278, 1286, 1306, 1313, - 1316, 1324, 1342, 1350, 1361, 1372, 1383, 1389, 1395, 1401, - 1407, 1413, 1418, 1423, 1429, 1438, 1443, 1444, 1449, 1459, - 1463, 1470, 1482, 1483, 1490, 1493, 1553, 1565 + 0, 262, 262, 268, 278, 279, 283, 301, 302, 308, + 311, 316, 324, 328, 329, 334, 343, 344, 352, 358, + 364, 369, 376, 382, 393, 397, 401, 408, 412, 420, + 421, 428, 429, 432, 436, 437, 441, 442, 458, 459, + 474, 475, 476, 480, 483, 486, 489, 492, 496, 500, + 504, 507, 511, 515, 519, 523, 527, 531, 535, 538, + 541, 554, 557, 560, 563, 566, 569, 572, 576, 583, + 588, 593, 598, 604, 612, 615, 620, 627, 632, 639, + 640, 646, 650, 653, 658, 663, 669, 677, 683, 687, + 691, 704, 707, 713, 721, 724, 728, 732, 736, 740, + 744, 751, 756, 762, 768, 769, 777, 778, 786, 791, + 799, 808, 822, 830, 835, 846, 854, 865, 872, 873, + 879, 889, 890, 899, 906, 907, 913, 923, 924, 933, + 940, 944, 949, 961, 964, 968, 978, 992, 1006, 1012, + 1020, 1028, 1048, 1058, 1072, 1086, 1091, 1099, 1107, 1131, + 1145, 1151, 1159, 1172, 1181, 1189, 1195, 1201, 1207, 1215, + 1225, 1233, 1239, 1245, 1251, 1257, 1265, 1274, 1284, 1291, + 1302, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, + 1320, 1321, 1325, 1326, 1330, 1335, 1343, 1363, 1370, 1373, + 1381, 1399, 1407, 1418, 1429, 1440, 1446, 1452, 1458, 1464, + 1470, 1475, 1480, 1486, 1495, 1500, 1501, 1506, 1516, 1520, + 1527, 1539, 1540, 1547, 1550, 1610, 1622 }; #endif @@ -707,9 +709,9 @@ static const char *const yytname[] = "UNARY", "BINARY", "COMPARE", "CONVERT", "SELECT", "UNREACHABLE", "CURRENT_MEMORY", "GROW_MEMORY", "FUNC", "START", "TYPE", "PARAM", "RESULT", "LOCAL", "GLOBAL", "TABLE", "ELEM", "MEMORY", "DATA", "OFFSET", - "IMPORT", "EXPORT", "MODULE", "BIN", "QUOTE", "REGISTER", "INVOKE", - "GET", "ASSERT_MALFORMED", "ASSERT_INVALID", "ASSERT_UNLINKABLE", - "ASSERT_RETURN", "ASSERT_RETURN_CANONICAL_NAN", + "IMPORT", "EXPORT", "EXCEPT", "MODULE", "BIN", "QUOTE", "REGISTER", + "INVOKE", "GET", "ASSERT_MALFORMED", "ASSERT_INVALID", + "ASSERT_UNLINKABLE", "ASSERT_RETURN", "ASSERT_RETURN_CANONICAL_NAN", "ASSERT_RETURN_ARITHMETIC_NAN", "ASSERT_TRAP", "ASSERT_EXHAUSTION", "LOW", "$accept", "text_list", "text_list_opt", "quoted_text", "value_type_list", "elem_type", "global_type", "func_type", "func_sig", @@ -717,9 +719,10 @@ static const char *const yytname[] = "nat", "literal", "var", "var_list", "bind_var_opt", "bind_var", "labeling_opt", "offset_opt", "align_opt", "instr", "plain_instr", "block_instr", "block_sig", "block", "catch_instr", "catch_instr_list", - "expr", "expr1", "catch_list", "if_block", "if_", "rethrow_check", - "throw_check", "try_check", "instr_list", "expr_list", "const_expr", - "func", "func_fields", "func_fields_import", "func_fields_import1", + "expr", "expr1", "try_", "try_instr_list", "catch_list", "if_block", + "if_", "rethrow_check", "throw_check", "try_check", "instr_list", + "expr_list", "const_expr", "exception", "exception_field", "func", + "func_fields", "func_fields_import", "func_fields_import1", "func_fields_import_result", "func_fields_body", "func_fields_body1", "func_result_body", "func_body", "func_body1", "offset", "elem", "table", "table_fields", "data", "memory", "memory_fields", "global", @@ -743,14 +746,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, 329, 330, 331, 332, 333 + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334 }; # endif -#define YYPACT_NINF -371 +#define YYPACT_NINF -378 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-371))) + (!!((Yystate) == (-378))) #define YYTABLE_NINF -31 @@ -761,53 +764,54 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 27, 903, -371, -371, -371, -371, -371, -371, -371, -371, - -371, -371, -371, 68, -371, -371, -371, -371, -371, -371, - 125, -371, 66, 159, 33, 85, 159, 159, 148, 159, - 148, 162, 162, 159, 162, 175, 175, 197, 197, 197, - 202, 202, 202, 222, 202, 229, -371, 140, -371, -371, - -371, 442, -371, -371, -371, -371, 227, 184, 233, 236, - 97, 132, 393, 253, -371, -371, 103, 253, 255, -371, - 162, 265, 46, 175, -371, 162, 162, 208, 162, 162, - 162, 70, -371, 274, 280, 134, 162, 162, 162, 349, - -371, -371, 159, 159, 159, 33, 33, -371, -371, -371, - -371, 33, 33, -371, 33, 33, 33, 33, 33, 256, - 256, 111, -371, -371, -371, -371, -371, -371, -371, -371, - 479, 516, -371, -371, -371, 33, 33, 159, -371, 294, - -371, -371, -371, -371, -371, 297, 442, -371, 304, -371, - 305, 28, -371, 516, 308, 119, 97, 199, -371, 312, - -371, 306, 303, 319, 303, 132, 159, 159, 159, 516, - 313, 320, 324, -371, 48, 96, -371, -371, 325, 303, - 103, 255, -371, 323, 332, 334, 91, 335, 255, 255, - 338, 68, 342, -371, 344, 345, 347, 348, 267, -371, - -371, 351, 352, 353, 33, 159, -371, 159, 162, 162, - -371, 553, 553, 553, -371, -371, 33, -371, -371, -371, - -371, -371, -371, -371, -371, 288, 288, -371, -371, -371, - -371, 664, -371, 902, -371, -371, -371, 553, -371, 188, - 357, -371, -371, -371, -371, 221, 361, -371, -371, 328, - -371, -371, -371, 355, -371, -371, 310, -371, -371, -371, - -371, -371, 553, 371, 553, 384, 313, -371, -371, 360, - 214, -371, -371, 255, -371, -371, -371, 385, -371, -371, - 115, 395, 33, 33, 33, 33, -371, 138, 220, -371, - -371, 279, -371, -371, -371, -371, 359, -371, -371, -371, - -371, -371, 401, 151, 399, 165, 173, 408, 162, 415, - 827, 553, 416, -371, 163, 417, 224, -371, -371, -371, - 268, 159, -371, 250, -371, 159, -371, -371, 439, -371, - -371, 789, 371, 441, -371, -371, -371, -371, -371, 159, - -371, 443, -371, 159, 159, 159, 159, -371, 444, 445, - 446, 447, -371, -371, -371, 111, -371, 479, -371, 448, - 590, 627, 449, 454, -371, -371, -371, 159, 159, 159, - 159, 33, 33, 268, 430, 176, 450, 177, 185, 451, - 187, -371, 217, 516, -371, 865, 313, 553, -371, 464, - 119, 303, 303, -371, -371, -371, -371, 477, -371, 479, - 707, -371, 750, -371, 627, -371, 189, -371, -371, 516, - -371, 516, 516, -371, 159, 357, 491, 465, 304, 493, - 495, -371, 500, 516, -371, 501, 206, 514, 528, 530, - 531, 537, -371, -371, -371, -371, 526, -371, -371, -371, - -371, 357, 515, -371, -371, 304, 517, -371, 552, 568, - 575, -371, -371, -371, -371, -371, 159, -371, -371, 560, - 589, 268, -371, -371, 516, 587, 604, 605, 516, 575, - -371, 611, -371, -371 + 25, 1070, -378, -378, -378, -378, -378, -378, -378, -378, + -378, -378, -378, -378, -378, 36, -378, -378, -378, -378, + -378, -378, 52, -378, 84, 85, 134, 145, 85, 85, + 146, 85, 146, 107, 107, 85, 85, 107, 138, 138, + 162, 162, 162, 179, 179, 179, 211, 179, 148, -378, + 222, -378, -378, -378, 462, -378, -378, -378, -378, 224, + 185, 258, 242, 51, 118, 413, 261, -378, -378, 67, + 261, 271, -378, 107, 279, -378, 14, 138, -378, 107, + 107, 223, 107, 107, 107, 104, -378, 307, 311, 127, + 107, 107, 107, 369, -378, -378, 85, 85, 85, 134, + 134, -378, -378, -378, -378, 134, 134, -378, 134, 134, + 134, 134, 134, 281, 281, 151, -378, -378, -378, -378, + -378, -378, -378, -378, 499, 536, -378, -378, -378, 134, + 134, 85, -378, 317, -378, -378, -378, -378, -378, 319, + 462, -378, 320, -378, 322, 33, -378, 536, 323, 106, + 51, 131, -378, 325, -378, 324, 326, 329, 326, 118, + 85, 85, 85, 536, 327, 330, 85, -378, 126, 121, + -378, -378, 333, 326, 67, 271, -378, 331, 334, 338, + 159, 343, 27, 271, 271, 345, 36, 347, -378, 349, + 350, 351, 352, 264, -378, -378, 353, 354, 356, 134, + 85, -378, 85, 107, 107, -378, 573, 573, 573, -378, + -378, 134, -378, -378, -378, -378, -378, -378, -378, -378, + 328, 328, -378, -378, -378, -378, 758, -378, 1069, -378, + -378, -378, 573, -378, 200, 361, -378, -378, -378, -378, + 248, 370, -378, -378, 355, -378, -378, -378, 363, -378, + -378, 315, -378, -378, -378, -378, -378, 573, 373, 573, + 381, 327, -378, -378, 610, 232, -378, -378, 271, -378, + -378, -378, 384, -378, -378, 170, -378, 390, 134, 134, + 134, 134, 134, -378, -378, -378, 213, 240, -378, -378, + 282, -378, -378, -378, -378, 336, -378, -378, -378, -378, + -378, 391, 157, 398, 165, 176, 399, 107, 415, 957, + 573, 404, -378, 247, 409, 241, -378, -378, -378, 288, + 85, -378, 263, -378, 85, -378, -378, 425, -378, -378, + 919, 373, 435, -378, -378, -378, -378, -378, 881, 647, + 610, -378, -378, -378, -378, 448, -378, 85, 85, 85, + 85, -378, 449, 459, 460, 463, 464, -378, -378, -378, + 151, -378, 499, 465, 684, 721, 466, 467, -378, -378, + -378, 85, 85, 85, 85, 134, 536, 288, 423, 181, + 456, 191, 209, 468, 221, -378, 238, 536, -378, 1032, + 327, 469, 995, -378, -378, -378, 477, 106, 326, 326, + -378, -378, -378, -378, -378, 483, -378, 499, 801, -378, + 844, -378, 721, -378, 228, -378, -378, 536, -378, 536, + -378, -378, 85, 361, 484, 478, 320, 497, 512, -378, + 513, 536, -378, 515, 219, 520, 521, 534, 548, 550, + -378, -378, -378, -378, 539, -378, -378, -378, 361, 418, + -378, -378, 320, 507, -378, 559, 571, 288, -378, -378, + -378, -378, -378, -378, 85, -378, -378, 570, 588, -378, + 536, 579, 595, 536, -378, 608, -378 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -815,81 +819,82 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 204, 0, 167, 168, 165, 169, 166, 164, 171, 172, - 163, 170, 175, 178, 197, 206, 177, 195, 196, 199, - 205, 207, 0, 31, 0, 0, 31, 31, 0, 31, - 0, 0, 0, 31, 0, 179, 179, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 176, 0, 200, 1, - 33, 100, 32, 23, 28, 27, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 29, 0, 0, 4, 6, - 0, 0, 173, 179, 180, 0, 0, 0, 0, 0, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 34, 34, 34, 0, 0, 29, 99, 98, - 97, 0, 0, 50, 0, 0, 0, 0, 0, 36, - 36, 0, 61, 62, 63, 64, 46, 43, 65, 66, - 100, 100, 40, 41, 42, 0, 0, 34, 124, 0, - 107, 117, 118, 121, 123, 115, 100, 162, 16, 160, - 0, 0, 10, 100, 0, 0, 0, 0, 9, 0, - 132, 0, 20, 0, 0, 0, 34, 34, 34, 100, - 102, 0, 0, 29, 0, 0, 139, 19, 0, 0, - 0, 4, 2, 5, 0, 0, 0, 0, 0, 0, - 0, 174, 0, 202, 0, 0, 0, 0, 0, 191, - 192, 0, 0, 0, 0, 7, 7, 7, 0, 0, - 35, 100, 100, 100, 47, 48, 0, 51, 52, 53, - 54, 55, 56, 57, 37, 38, 38, 24, 25, 26, - 60, 0, 106, 0, 101, 68, 67, 100, 105, 0, - 115, 109, 111, 112, 110, 0, 0, 13, 161, 0, - 104, 144, 143, 0, 145, 146, 0, 18, 21, 131, - 133, 134, 100, 0, 100, 0, 102, 82, 81, 0, - 0, 130, 30, 4, 138, 140, 141, 0, 3, 137, - 0, 0, 0, 0, 0, 0, 158, 0, 0, 181, - 198, 0, 185, 186, 187, 188, 0, 190, 203, 189, - 193, 194, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 100, 0, 76, 0, 0, 49, 39, 58, 59, - 0, 7, 7, 0, 108, 7, 7, 12, 0, 29, - 83, 0, 0, 0, 85, 90, 84, 127, 103, 34, - 129, 0, 136, 31, 31, 31, 31, 152, 0, 0, - 0, 0, 182, 183, 184, 0, 22, 100, 8, 0, - 100, 100, 0, 0, 159, 7, 75, 34, 34, 34, - 34, 0, 0, 79, 0, 0, 0, 0, 0, 0, - 0, 11, 0, 100, 89, 0, 96, 100, 142, 16, - 0, 0, 0, 154, 157, 155, 156, 0, 119, 100, - 0, 122, 0, 125, 100, 153, 0, 69, 71, 100, - 70, 100, 100, 80, 34, 115, 0, 115, 16, 0, - 16, 135, 0, 100, 95, 0, 0, 0, 0, 0, - 0, 0, 201, 120, 126, 74, 0, 77, 78, 73, - 113, 115, 0, 116, 14, 16, 0, 17, 92, 0, - 0, 148, 147, 151, 149, 150, 34, 114, 15, 0, - 94, 0, 86, 72, 100, 0, 0, 0, 100, 87, - 91, 0, 88, 93 + 213, 0, 110, 181, 175, 176, 173, 177, 174, 172, + 179, 180, 171, 178, 184, 187, 206, 215, 186, 204, + 205, 208, 214, 216, 0, 31, 0, 0, 31, 31, + 0, 31, 0, 0, 0, 31, 31, 0, 188, 188, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, + 0, 209, 1, 33, 104, 32, 23, 28, 27, 0, + 0, 0, 0, 0, 0, 0, 0, 134, 29, 0, + 0, 4, 6, 0, 0, 7, 182, 188, 189, 0, + 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, + 0, 0, 0, 0, 44, 45, 34, 34, 34, 0, + 0, 29, 103, 102, 101, 0, 0, 50, 0, 0, + 0, 0, 0, 36, 36, 0, 61, 62, 63, 64, + 46, 43, 65, 66, 104, 104, 40, 41, 42, 0, + 0, 34, 130, 0, 113, 123, 124, 127, 129, 121, + 104, 170, 16, 168, 0, 0, 10, 104, 0, 0, + 0, 0, 9, 0, 138, 0, 20, 0, 0, 0, + 34, 34, 34, 104, 106, 0, 34, 29, 0, 0, + 145, 19, 0, 0, 0, 4, 2, 5, 0, 0, + 0, 0, 0, 0, 0, 0, 183, 0, 211, 0, + 0, 0, 0, 0, 200, 201, 0, 0, 0, 0, + 7, 7, 7, 0, 0, 35, 104, 104, 104, 47, + 48, 0, 51, 52, 53, 54, 55, 56, 57, 37, + 38, 38, 24, 25, 26, 60, 0, 112, 0, 105, + 68, 67, 104, 111, 0, 121, 115, 117, 118, 116, + 0, 0, 13, 169, 0, 108, 150, 149, 0, 151, + 152, 0, 18, 21, 137, 139, 140, 104, 0, 104, + 0, 106, 82, 81, 0, 0, 136, 30, 4, 144, + 146, 147, 0, 3, 143, 0, 158, 0, 0, 0, + 0, 0, 0, 166, 109, 8, 0, 0, 190, 207, + 0, 194, 195, 196, 197, 0, 199, 212, 198, 202, + 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 104, 0, 76, 0, 0, 49, 39, 58, 59, 0, + 7, 7, 0, 114, 7, 7, 12, 0, 29, 83, + 0, 0, 0, 85, 94, 84, 133, 107, 0, 0, + 0, 86, 88, 89, 135, 0, 142, 31, 31, 31, + 31, 159, 0, 0, 0, 0, 0, 191, 192, 193, + 0, 22, 104, 0, 104, 104, 0, 0, 167, 7, + 75, 34, 34, 34, 34, 0, 104, 79, 0, 0, + 0, 0, 0, 0, 0, 11, 0, 104, 93, 0, + 100, 0, 0, 90, 87, 148, 16, 0, 0, 0, + 161, 164, 162, 163, 165, 0, 125, 104, 0, 128, + 0, 131, 104, 160, 0, 69, 71, 104, 70, 104, + 78, 80, 34, 121, 0, 121, 16, 0, 16, 141, + 0, 104, 99, 91, 0, 0, 0, 0, 0, 0, + 210, 126, 132, 74, 0, 77, 73, 119, 121, 0, + 122, 14, 16, 0, 17, 96, 0, 0, 92, 154, + 153, 157, 155, 156, 34, 120, 15, 0, 98, 72, + 104, 0, 0, 104, 95, 0, 97 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -371, 127, -144, 45, -149, 478, -130, 557, -346, 235, - -146, -150, -60, -122, -56, 298, -21, -81, -15, -1, - -93, 536, 436, -371, -45, -371, -230, -157, 215, 290, - -26, -371, 223, 358, -371, -371, -371, -31, -100, 411, - 524, -371, 554, 459, -370, 296, 584, -311, 364, -371, - -322, 63, -371, -371, 561, -371, -371, 545, -371, 577, - -371, -371, -10, -371, -371, -6, -371, -371, 7, -371, - 653, -371, -371, 3, 30, 205, -371, 706, -371, -371, - 549, -371, -371 + -378, 135, -150, 80, -180, 437, -136, 564, -328, 201, + -147, -159, -63, -131, -54, 268, -23, -89, 31, 22, + -97, 522, 414, -212, -60, -378, -228, -184, -284, 272, + -28, -378, 332, 364, 230, 335, -378, -378, -378, -49, + -107, 412, 502, 523, -378, -378, 546, 474, -377, 275, + 586, -333, 359, -378, -322, 76, -378, -378, 578, -378, + -378, 565, -378, 590, -378, -378, -37, -378, -378, 28, + -378, -378, 4, -378, 670, -378, -378, 2, 92, 262, + -378, 725, -378, -378, 572, -378, -378 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 173, 174, 70, 293, 149, 143, 58, 236, 237, - 150, 166, 151, 120, 55, 220, 262, 164, 51, 200, - 201, 215, 308, 121, 122, 123, 301, 302, 363, 364, - 124, 161, 452, 324, 325, 125, 126, 127, 128, 257, - 241, 2, 129, 231, 232, 233, 130, 131, 132, 133, - 134, 65, 3, 4, 153, 5, 6, 168, 7, 144, - 271, 8, 135, 177, 9, 136, 10, 11, 12, 180, - 13, 14, 15, 75, 16, 17, 18, 19, 20, 288, - 188, 21, 22 + -1, 177, 178, 73, 182, 153, 147, 61, 241, 242, + 154, 170, 155, 124, 58, 225, 267, 168, 54, 205, + 206, 220, 317, 125, 126, 127, 310, 311, 391, 378, + 128, 165, 341, 342, 343, 333, 334, 129, 130, 131, + 132, 262, 246, 2, 3, 4, 133, 236, 237, 238, + 134, 135, 136, 137, 138, 68, 5, 6, 157, 7, + 8, 172, 9, 148, 277, 10, 139, 181, 11, 140, + 12, 13, 14, 185, 15, 16, 17, 79, 18, 19, + 20, 21, 22, 297, 193, 23, 24 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -897,190 +902,219 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 202, 203, 64, 56, 64, 152, 167, 63, 250, 67, - 152, 60, 61, 230, 66, 244, 206, 160, 72, 265, - 46, 224, 52, 322, 59, 52, 52, 267, 52, 393, - 1, 162, 52, 417, 227, 430, 388, 64, 53, 76, - 239, 64, 54, 240, 160, 304, 305, 295, 296, 45, - 145, 154, 261, 53, 146, 155, 169, 54, 162, 240, - 170, 447, 434, 252, 253, 254, 49, 78, 79, 80, - 310, 45, 424, 86, 204, 205, 182, 71, 423, 73, - 207, 208, 260, 209, 210, 211, 212, 213, 57, 448, - 198, 199, 322, 68, 50, 320, 248, 326, 152, 152, - 141, 303, 303, 303, 225, 226, 165, 142, 53, 167, - 167, 178, 179, 152, 152, 175, 217, 218, 219, 331, - 183, 184, 243, 185, 186, 187, 163, 303, 47, 142, - 171, 191, 192, 193, 256, 147, 145, 53, 35, 36, - 146, 272, 342, 148, 356, 154, 268, 273, 274, 155, - 275, 62, 303, 53, 303, 347, 263, 54, 198, 199, - 169, 348, 365, 367, 170, 333, 368, 370, 50, 350, - 69, 334, 335, 292, 336, 348, 160, 351, 160, 358, - 405, 407, 359, 348, 74, 306, 348, 348, 46, 408, - 162, 410, 162, 425, 294, 348, 297, 348, 33, 348, - 77, 303, 35, 36, 33, 81, 396, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 330, 53, - 415, 411, 53, 54, 343, 85, 54, 323, 268, -30, - 256, 137, 421, -30, 138, 420, 377, 139, 372, 57, - 194, 311, 312, 298, 299, 82, 83, 84, 87, 88, - 419, 338, 339, 340, 341, 160, 62, 418, 194, 315, - 316, 198, 199, 172, 397, 398, 399, 400, 176, 162, - 286, 287, 33, 412, 315, 316, 160, 303, 189, 23, - 24, 25, 286, 344, 190, 26, 27, 28, 29, 30, - 162, 31, 32, 361, 362, 214, 323, 376, 228, 426, - 229, 427, 428, 311, 312, 277, 278, 235, 53, 238, - 366, 429, 242, 439, 369, 246, 223, 148, 379, 380, - 381, 382, 167, 249, 258, 152, 152, 259, 307, 264, - 160, 268, 52, 52, 52, 52, 269, 270, 318, 276, - 401, 402, 279, 353, 162, 160, 280, 160, 282, 283, - 414, 284, 285, 453, 457, 289, 290, 291, 461, 162, - 313, 162, 90, 91, 156, 317, 157, 239, 319, 158, - 95, 96, 97, 98, 321, 329, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 327, 332, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 337, - 345, 194, 195, 196, 197, 346, 90, 91, 156, 349, - 157, 198, 199, 158, 95, 96, 97, 98, 352, 354, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 357, 360, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 371, 375, 89, 404, 378, 383, 384, - 385, 386, 389, 394, 159, 90, 91, 92, 395, 93, - 406, 409, 94, 95, 96, 97, 98, 416, 432, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 422, 221, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 90, 91, 92, 431, 93, 435, 436, 94, - 95, 96, 97, 98, 438, 440, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 441, 223, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 90, - 91, 92, 442, 93, 443, 444, 94, 95, 96, 97, - 98, 445, 446, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 449, 300, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 90, 91, 92, 312, - 93, 316, 450, 94, 95, 96, 97, 98, 451, 454, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 455, 390, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 90, 91, 92, 458, 93, 459, 460, - 94, 95, 96, 97, 98, 463, 140, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 247, - 392, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 90, 91, 92, 387, 93, 437, 216, 94, 95, 96, - 97, 98, 309, 403, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 456, 328, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 90, 91, 156, - 374, 157, 462, 255, 158, 95, 96, 97, 98, 314, - 234, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 433, 222, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 391, 266, 251, 195, 196, 197, - 90, 91, 156, 245, 157, 181, 48, 158, 95, 96, - 97, 98, 281, 0, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 0, 0, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 0, 0, 0, - 0, 196, 197, 90, 91, 156, 0, 157, 0, 0, - 158, 95, 96, 97, 98, 0, 0, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 0, - 0, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 0, 0, 90, 91, 156, 197, 157, 373, 0, 158, - 95, 96, 97, 98, 0, 0, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 0, 0, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 0, - 90, 91, 156, 355, 157, 0, 0, 158, 95, 96, - 97, 98, 0, 0, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 0, 0, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 0, 90, 91, - 156, 355, 157, 413, 0, 158, 95, 96, 97, 98, - 0, 0, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 0, 0, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 90, 91, 156, 0, 157, - 0, 0, 158, 95, 96, 97, 98, 0, 0, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 0, 0, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 0, 23, 24, 25, 0, 0, 0, 26, - 27, 28, 29, 30, 0, 31, 32, 33, 0, 0, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44 + 207, 208, 67, 59, 67, 164, 171, 66, 235, 70, + 156, 255, 211, 249, 270, 156, 166, 48, 229, 49, + 302, 304, 305, 313, 314, 272, 149, 158, 1, 406, + 331, 284, 173, 164, 232, 377, 340, 285, 67, 48, + 245, 80, 67, 411, 166, 244, 447, 55, 319, 62, + 55, 55, 339, 55, 145, 50, 245, 55, 55, 63, + 64, 146, 69, 257, 258, 259, 75, 76, 435, 264, + 169, 465, 56, 329, 441, 335, 209, 210, 265, 187, + 183, 184, 212, 213, 52, 214, 215, 216, 217, 218, + 442, 150, 159, 377, 53, 203, 204, 174, 451, 312, + 312, 312, 253, 331, 156, 156, 230, 231, 71, 248, + 171, 171, 340, 149, 74, 72, 146, 77, 345, 156, + 156, 151, 158, 56, 466, 312, 370, 339, 339, 152, + 266, 56, 82, 83, 84, 57, 261, 173, 90, 56, + 379, 381, 167, 57, 382, 384, 175, 78, 60, 65, + 312, 56, 312, 179, 53, 57, 222, 223, 224, 188, + 189, 362, 190, 191, 192, 81, 164, 285, 164, 364, + 196, 197, 198, 38, 39, 285, 301, 166, 150, 166, + 365, 268, 85, 203, 204, 423, 285, 159, 315, 414, + 49, 285, 36, 203, 204, 425, 38, 39, 25, 26, + 27, 285, 174, 312, 28, 29, 30, 31, 32, 278, + 33, 34, 35, 426, 89, 279, 280, 357, 281, 285, + 347, 273, 303, 282, 306, 428, 348, 349, 141, 350, + 332, 285, 443, 261, 35, 142, 344, 56, 285, 386, + 439, 57, 429, 56, 358, 60, -30, 57, 273, 164, + -30, 438, 199, 320, 321, 352, 353, 354, 355, 356, + 166, 437, 143, 372, 65, 436, 373, 295, 296, 420, + 164, 199, 324, 325, 415, 416, 417, 418, 164, 176, + 430, 166, 180, 307, 308, 295, 359, 36, 36, 166, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 324, 325, 332, 390, 86, 87, 88, 91, 92, + 444, 194, 445, 375, 376, 195, 320, 321, 286, 287, + 219, 233, 234, 240, 456, 446, 243, 247, 251, 164, + 228, 56, 164, 254, 263, 152, 171, 269, 274, 273, + 166, 275, 380, 166, 156, 156, 383, 283, 164, 288, + 164, 289, 419, 291, 292, 293, 294, 298, 299, 166, + 300, 166, 432, 472, 322, 327, 475, 469, 316, 55, + 55, 55, 55, 328, 326, 244, 330, 360, 396, 397, + 398, 399, 94, 95, 160, 336, 161, 367, 346, 162, + 99, 100, 101, 102, 351, 361, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 363, 366, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 368, + 371, 199, 200, 201, 202, 374, 94, 95, 160, 385, + 161, 203, 204, 162, 99, 100, 101, 102, 389, 422, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 395, 400, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 401, 402, 93, 424, 403, 404, 407, + 412, 413, 321, 433, 163, 94, 95, 96, 427, 97, + 434, 449, 98, 99, 100, 101, 102, 440, 448, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 452, 226, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 94, 95, 96, 453, 97, 455, 457, 98, + 99, 100, 101, 102, 459, 460, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 461, 228, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 94, + 95, 96, 462, 97, 463, 464, 98, 99, 100, 101, + 102, 325, 467, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 468, 309, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 94, 95, 96, 470, + 97, 471, 252, 98, 99, 100, 101, 102, 473, 474, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 476, 338, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 94, 95, 96, 144, 97, 405, 454, + 98, 99, 100, 101, 102, 318, 221, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 421, + 392, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 94, 95, 96, 458, 97, 260, 388, 98, 99, 100, + 101, 102, 394, 337, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 239, 408, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 94, 95, 96, + 450, 97, 276, 393, 98, 99, 100, 101, 102, 323, + 227, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 409, 410, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 94, 95, 96, 256, 97, 271, + 250, 98, 99, 100, 101, 102, 186, 51, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 290, 0, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 94, 95, 160, 0, 161, 0, 0, 162, 99, + 100, 101, 102, 0, 0, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 0, 0, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 0, 0, + 0, 200, 201, 202, 94, 95, 160, 0, 161, 0, + 0, 162, 99, 100, 101, 102, 0, 0, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 0, 0, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 0, 0, 0, 0, 201, 202, 94, 95, 160, + 0, 161, 0, 0, 162, 99, 100, 101, 102, 0, + 0, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 0, 0, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 94, 95, 160, 0, 161, 202, + 0, 162, 99, 100, 101, 102, 375, 376, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 0, 0, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 0, 94, 95, 160, 369, 161, 387, 0, 162, + 99, 100, 101, 102, 0, 0, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 0, 0, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, + 94, 95, 160, 369, 161, 0, 0, 162, 99, 100, + 101, 102, 0, 0, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 0, 0, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 0, 94, 95, + 160, 369, 161, 0, 0, 162, 99, 100, 101, 102, + 375, 376, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 0, 0, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 94, 95, 160, 0, 161, + 431, 0, 162, 99, 100, 101, 102, 0, 0, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 0, 0, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 94, 95, 160, 0, 161, 0, 0, 162, + 99, 100, 101, 102, 0, 0, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 0, 0, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, + 25, 26, 27, 0, 0, 0, 28, 29, 30, 31, + 32, 0, 33, 34, 35, 36, 0, 0, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47 }; static const yytype_int16 yycheck[] = { - 93, 94, 28, 24, 30, 61, 66, 28, 154, 30, - 66, 26, 27, 135, 29, 145, 97, 62, 33, 169, - 13, 121, 23, 253, 25, 26, 27, 171, 29, 351, - 3, 62, 33, 379, 127, 405, 347, 63, 5, 36, - 12, 67, 9, 143, 89, 202, 203, 196, 197, 3, - 60, 61, 4, 5, 60, 61, 66, 9, 89, 159, - 66, 431, 408, 156, 157, 158, 0, 37, 38, 39, - 227, 3, 394, 43, 95, 96, 73, 32, 389, 34, - 101, 102, 163, 104, 105, 106, 107, 108, 3, 435, - 62, 63, 322, 30, 9, 252, 152, 254, 154, 155, - 3, 201, 202, 203, 125, 126, 3, 10, 5, 169, - 170, 65, 66, 169, 170, 70, 5, 6, 7, 263, - 75, 76, 3, 78, 79, 80, 63, 227, 3, 10, - 67, 86, 87, 88, 160, 3, 146, 5, 68, 69, - 146, 50, 4, 11, 301, 155, 8, 56, 57, 155, - 59, 3, 252, 5, 254, 4, 60, 9, 62, 63, - 170, 10, 311, 312, 170, 50, 315, 316, 9, 4, - 8, 56, 57, 194, 59, 10, 221, 4, 223, 16, - 4, 4, 19, 10, 9, 206, 10, 10, 181, 4, - 221, 4, 223, 4, 195, 10, 197, 10, 64, 10, - 3, 301, 68, 69, 64, 3, 355, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 4, 5, - 377, 4, 5, 9, 4, 3, 9, 253, 8, 5, - 256, 4, 382, 9, 50, 381, 329, 4, 319, 3, - 52, 53, 54, 198, 199, 40, 41, 42, 43, 44, - 380, 272, 273, 274, 275, 300, 3, 379, 52, 53, - 54, 62, 63, 8, 357, 358, 359, 360, 3, 300, - 3, 4, 64, 373, 53, 54, 321, 377, 4, 50, - 51, 52, 3, 4, 4, 56, 57, 58, 59, 60, - 321, 62, 63, 25, 26, 39, 322, 323, 4, 399, - 3, 401, 402, 53, 54, 178, 179, 3, 5, 4, - 311, 404, 4, 413, 315, 3, 3, 11, 333, 334, - 335, 336, 382, 4, 4, 381, 382, 3, 40, 4, - 375, 8, 333, 334, 335, 336, 4, 3, 10, 4, - 361, 362, 4, 298, 375, 390, 4, 392, 4, 4, - 376, 4, 4, 446, 454, 4, 4, 4, 458, 390, - 3, 392, 13, 14, 15, 4, 17, 12, 58, 20, - 21, 22, 23, 24, 3, 15, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 4, 4, + 97, 98, 30, 26, 32, 65, 69, 30, 139, 32, + 64, 158, 101, 149, 173, 69, 65, 3, 125, 15, + 200, 201, 202, 207, 208, 175, 63, 64, 3, 362, + 258, 4, 69, 93, 131, 319, 264, 10, 66, 3, + 147, 39, 70, 365, 93, 12, 423, 25, 232, 27, + 28, 29, 264, 31, 3, 3, 163, 35, 36, 28, + 29, 10, 31, 160, 161, 162, 35, 36, 396, 166, + 3, 448, 5, 257, 407, 259, 99, 100, 167, 77, + 66, 67, 105, 106, 0, 108, 109, 110, 111, 112, + 412, 63, 64, 377, 9, 62, 63, 69, 426, 206, + 207, 208, 156, 331, 158, 159, 129, 130, 32, 3, + 173, 174, 340, 150, 34, 8, 10, 37, 268, 173, + 174, 3, 159, 5, 452, 232, 310, 339, 340, 11, + 4, 5, 40, 41, 42, 9, 164, 174, 46, 5, + 320, 321, 66, 9, 324, 325, 70, 9, 3, 3, + 257, 5, 259, 73, 9, 9, 5, 6, 7, 79, + 80, 4, 82, 83, 84, 3, 226, 10, 228, 4, + 90, 91, 92, 69, 70, 10, 199, 226, 150, 228, + 4, 60, 3, 62, 63, 4, 10, 159, 211, 369, + 186, 10, 65, 62, 63, 4, 69, 70, 50, 51, + 52, 10, 174, 310, 56, 57, 58, 59, 60, 50, + 62, 63, 64, 4, 3, 56, 57, 4, 59, 10, + 50, 8, 200, 64, 202, 4, 56, 57, 4, 59, + 258, 10, 4, 261, 64, 50, 4, 5, 10, 328, + 399, 9, 4, 5, 4, 3, 5, 9, 8, 309, + 9, 398, 52, 53, 54, 278, 279, 280, 281, 282, + 309, 397, 4, 16, 3, 396, 19, 3, 4, 376, + 330, 52, 53, 54, 371, 372, 373, 374, 338, 8, + 387, 330, 3, 203, 204, 3, 4, 65, 65, 338, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 53, 54, 331, 332, 43, 44, 45, 46, 47, + 417, 4, 419, 25, 26, 4, 53, 54, 183, 184, + 39, 4, 3, 3, 431, 422, 4, 4, 3, 389, + 3, 5, 392, 4, 4, 11, 399, 4, 4, 8, + 389, 3, 320, 392, 398, 399, 324, 4, 408, 4, + 410, 4, 375, 4, 4, 4, 4, 4, 4, 408, + 4, 410, 390, 470, 3, 10, 473, 464, 40, 347, + 348, 349, 350, 58, 4, 12, 3, 41, 347, 348, + 349, 350, 13, 14, 15, 4, 17, 307, 4, 20, + 21, 22, 23, 24, 4, 4, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 10, 10, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4, - 41, 52, 53, 54, 55, 4, 13, 14, 15, 10, - 17, 62, 63, 20, 21, 22, 23, 24, 10, 4, + 16, 52, 53, 54, 55, 16, 13, 14, 15, 4, + 17, 62, 63, 20, 21, 22, 23, 24, 3, 16, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 16, 16, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 4, 3, 3, 16, 4, 4, 4, - 4, 4, 4, 4, 61, 13, 14, 15, 4, 17, - 10, 10, 20, 21, 22, 23, 24, 3, 3, 27, + 37, 38, 4, 4, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 4, 4, 3, 10, 4, 4, 4, + 4, 4, 54, 4, 61, 13, 14, 15, 10, 17, + 3, 3, 20, 21, 22, 23, 24, 4, 4, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 4, 3, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 13, 14, 15, 4, 17, 4, 3, 20, + 48, 49, 13, 14, 15, 3, 17, 4, 3, 20, 21, 22, 23, 24, 4, 4, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 4, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 13, - 14, 15, 4, 17, 4, 4, 20, 21, 22, 23, - 24, 4, 16, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 3, 3, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 13, 14, 15, 54, - 17, 54, 4, 20, 21, 22, 23, 24, 3, 19, + 14, 15, 4, 17, 4, 16, 20, 21, 22, 23, + 24, 54, 3, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 4, 3, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 13, 14, 15, 19, + 17, 3, 155, 20, 21, 22, 23, 24, 19, 4, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 3, 3, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 13, 14, 15, 19, 17, 4, 4, - 20, 21, 22, 23, 24, 4, 59, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 151, + 37, 38, 4, 3, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 13, 14, 15, 62, 17, 360, 428, + 20, 21, 22, 23, 24, 221, 114, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 377, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 13, 14, 15, 345, 17, 410, 110, 20, 21, 22, - 23, 24, 216, 363, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 451, 256, 41, 42, + 13, 14, 15, 433, 17, 163, 331, 20, 21, 22, + 23, 24, 340, 261, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 140, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 13, 14, 15, - 322, 17, 459, 159, 20, 21, 22, 23, 24, 230, - 136, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 407, 120, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 350, 170, 155, 53, 54, 55, - 13, 14, 15, 146, 17, 72, 20, 20, 21, 22, - 23, 24, 183, -1, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, -1, -1, 41, 42, - 43, 44, 45, 46, 47, 48, 49, -1, -1, -1, - -1, 54, 55, 13, 14, 15, -1, 17, -1, -1, - 20, 21, 22, 23, 24, -1, -1, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, -1, - -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, - -1, -1, 13, 14, 15, 55, 17, 18, -1, 20, + 425, 17, 179, 339, 20, 21, 22, 23, 24, 235, + 124, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 364, 3, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 13, 14, 15, 159, 17, 174, + 150, 20, 21, 22, 23, 24, 76, 22, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 188, -1, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 13, 14, 15, -1, 17, -1, -1, 20, 21, + 22, 23, 24, -1, -1, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, -1, -1, 41, + 42, 43, 44, 45, 46, 47, 48, 49, -1, -1, + -1, 53, 54, 55, 13, 14, 15, -1, 17, -1, + -1, 20, 21, 22, 23, 24, -1, -1, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, -1, -1, -1, 54, 55, 13, 14, 15, + -1, 17, -1, -1, 20, 21, 22, 23, 24, -1, + -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, -1, -1, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 13, 14, 15, -1, 17, 55, + -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, + 49, -1, 13, 14, 15, 54, 17, 18, -1, 20, 21, 22, 23, 24, -1, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, @@ -1088,96 +1122,101 @@ static const yytype_int16 yycheck[] = 23, 24, -1, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, 13, 14, - 15, 54, 17, 18, -1, 20, 21, 22, 23, 24, - -1, -1, 27, 28, 29, 30, 31, 32, 33, 34, + 15, 54, 17, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 13, 14, 15, -1, 17, - -1, -1, 20, 21, 22, 23, 24, -1, -1, 27, + 18, -1, 20, 21, 22, 23, 24, -1, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, -1, -1, 41, 42, 43, 44, 45, 46, 47, - 48, 49, -1, 50, 51, 52, -1, -1, -1, 56, - 57, 58, 59, 60, -1, 62, 63, 64, -1, -1, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77 + 48, 49, 13, 14, 15, -1, 17, -1, -1, 20, + 21, 22, 23, 24, -1, -1, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, -1, -1, + 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, + 50, 51, 52, -1, -1, -1, 56, 57, 58, 59, + 60, -1, 62, 63, 64, 65, -1, -1, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 3, 120, 131, 132, 134, 135, 137, 140, 143, - 145, 146, 147, 149, 150, 151, 153, 154, 155, 156, - 157, 160, 161, 50, 51, 52, 56, 57, 58, 59, - 60, 62, 63, 64, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 3, 147, 3, 156, 0, - 9, 97, 98, 5, 9, 93, 95, 3, 86, 98, - 97, 97, 3, 95, 109, 130, 97, 95, 130, 8, - 82, 82, 97, 82, 9, 152, 152, 3, 153, 153, - 153, 3, 154, 154, 154, 3, 153, 154, 154, 3, - 13, 14, 15, 17, 20, 21, 22, 23, 24, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 92, 102, 103, 104, 109, 114, 115, 116, 117, 121, - 125, 126, 127, 128, 129, 141, 144, 4, 50, 4, - 86, 3, 10, 85, 138, 141, 144, 3, 11, 84, - 89, 91, 93, 133, 141, 144, 15, 17, 20, 61, - 103, 110, 116, 130, 96, 3, 90, 91, 136, 141, - 144, 130, 8, 80, 81, 82, 3, 142, 65, 66, - 148, 149, 152, 82, 82, 82, 82, 82, 159, 4, - 4, 82, 82, 82, 52, 53, 54, 55, 62, 63, - 98, 99, 99, 99, 95, 95, 96, 95, 95, 95, - 95, 95, 95, 95, 39, 100, 100, 5, 6, 7, - 94, 3, 125, 3, 117, 95, 95, 99, 4, 3, - 92, 122, 123, 124, 121, 3, 87, 88, 4, 12, - 117, 119, 4, 3, 85, 138, 3, 84, 93, 4, - 89, 133, 99, 99, 99, 119, 109, 118, 4, 3, - 96, 4, 95, 60, 4, 90, 136, 81, 8, 4, - 3, 139, 50, 56, 57, 59, 4, 80, 80, 4, - 4, 159, 4, 4, 4, 4, 3, 4, 158, 4, - 4, 4, 95, 83, 98, 83, 83, 98, 82, 82, - 3, 105, 106, 117, 106, 106, 95, 40, 101, 101, - 106, 53, 54, 3, 122, 53, 54, 4, 10, 58, - 106, 3, 105, 109, 112, 113, 106, 4, 118, 15, - 4, 81, 4, 50, 56, 57, 59, 4, 95, 95, - 95, 95, 4, 4, 4, 41, 4, 4, 10, 10, - 4, 4, 10, 82, 4, 54, 106, 16, 16, 19, - 16, 25, 26, 107, 108, 83, 98, 83, 83, 98, - 83, 4, 96, 18, 112, 3, 109, 99, 4, 97, - 97, 97, 97, 4, 4, 4, 4, 94, 126, 4, - 3, 127, 3, 129, 4, 4, 83, 99, 99, 99, - 99, 95, 95, 108, 16, 4, 10, 4, 4, 10, - 4, 4, 117, 18, 109, 106, 3, 87, 92, 85, - 89, 90, 4, 126, 129, 4, 117, 117, 117, 99, - 123, 4, 3, 124, 87, 4, 3, 88, 4, 117, - 4, 4, 4, 4, 4, 4, 16, 123, 87, 3, - 4, 3, 111, 99, 19, 3, 107, 117, 19, 4, - 4, 117, 111, 4 + 0, 3, 123, 124, 125, 136, 137, 139, 140, 142, + 145, 148, 150, 151, 152, 154, 155, 156, 158, 159, + 160, 161, 162, 165, 166, 50, 51, 52, 56, 57, + 58, 59, 60, 62, 63, 64, 65, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 3, 152, + 3, 161, 0, 9, 98, 99, 5, 9, 94, 96, + 3, 87, 99, 98, 98, 3, 96, 110, 135, 98, + 96, 135, 8, 83, 83, 98, 98, 83, 9, 157, + 157, 3, 158, 158, 158, 3, 159, 159, 159, 3, + 158, 159, 159, 3, 13, 14, 15, 17, 20, 21, + 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 93, 103, 104, 105, 110, 117, + 118, 119, 120, 126, 130, 131, 132, 133, 134, 146, + 149, 4, 50, 4, 87, 3, 10, 86, 143, 146, + 149, 3, 11, 85, 90, 92, 94, 138, 146, 149, + 15, 17, 20, 61, 104, 111, 119, 135, 97, 3, + 91, 92, 141, 146, 149, 135, 8, 81, 82, 83, + 3, 147, 84, 66, 67, 153, 154, 157, 83, 83, + 83, 83, 83, 164, 4, 4, 83, 83, 83, 52, + 53, 54, 55, 62, 63, 99, 100, 100, 100, 96, + 96, 97, 96, 96, 96, 96, 96, 96, 96, 39, + 101, 101, 5, 6, 7, 95, 3, 130, 3, 120, + 96, 96, 100, 4, 3, 93, 127, 128, 129, 126, + 3, 88, 89, 4, 12, 120, 122, 4, 3, 86, + 143, 3, 85, 94, 4, 90, 138, 100, 100, 100, + 122, 110, 121, 4, 100, 97, 4, 96, 60, 4, + 91, 141, 82, 8, 4, 3, 123, 144, 50, 56, + 57, 59, 64, 4, 4, 10, 81, 81, 4, 4, + 164, 4, 4, 4, 4, 3, 4, 163, 4, 4, + 4, 96, 84, 99, 84, 84, 99, 83, 83, 3, + 106, 107, 120, 107, 107, 96, 40, 102, 102, 107, + 53, 54, 3, 127, 53, 54, 4, 10, 58, 107, + 3, 106, 110, 115, 116, 107, 4, 121, 3, 103, + 106, 112, 113, 114, 4, 82, 4, 50, 56, 57, + 59, 4, 96, 96, 96, 96, 96, 4, 4, 4, + 41, 4, 4, 10, 4, 4, 10, 83, 4, 54, + 107, 16, 16, 19, 16, 25, 26, 108, 109, 84, + 99, 84, 84, 99, 84, 4, 97, 18, 115, 3, + 110, 108, 3, 113, 112, 4, 98, 98, 98, 98, + 4, 4, 4, 4, 4, 95, 131, 4, 3, 132, + 3, 134, 4, 4, 84, 100, 100, 100, 100, 96, + 120, 109, 16, 4, 10, 4, 4, 10, 4, 4, + 120, 18, 110, 4, 3, 88, 93, 86, 90, 91, + 4, 131, 134, 4, 120, 120, 100, 128, 4, 3, + 129, 88, 4, 3, 89, 4, 120, 3, 114, 4, + 4, 4, 4, 4, 16, 128, 88, 3, 4, 100, + 19, 3, 120, 19, 4, 120, 4 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 79, 80, 80, 81, 81, 82, 83, 83, 84, - 85, 85, 86, 87, 87, 87, 88, 88, 89, 90, - 91, 91, 92, 93, 94, 94, 94, 95, 95, 96, - 96, 97, 97, 98, 99, 99, 100, 100, 101, 101, - 102, 102, 102, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 104, - 104, 104, 104, 104, 105, 106, 106, 107, 107, 108, - 108, 109, 110, 110, 110, 110, 110, 111, 111, 112, - 112, 113, 113, 113, 113, 113, 113, 114, 115, 116, - 117, 117, 118, 118, 119, 120, 121, 121, 121, 121, - 121, 122, 123, 123, 123, 124, 124, 125, 126, 126, - 126, 127, 127, 128, 129, 129, 129, 130, 130, 131, - 131, 132, 133, 133, 133, 133, 134, 134, 135, 136, - 136, 136, 136, 137, 138, 138, 138, 139, 139, 139, - 139, 139, 140, 141, 142, 142, 142, 142, 143, 144, - 145, 145, 146, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 148, 148, 149, 149, 150, 151, 152, - 152, 153, 153, 153, 154, 154, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 156, 156, 156, 156, 157, - 157, 158, 159, 159, 160, 160, 160, 161 + 0, 80, 81, 81, 82, 82, 83, 84, 84, 85, + 86, 86, 87, 88, 88, 88, 89, 89, 90, 91, + 92, 92, 93, 94, 95, 95, 95, 96, 96, 97, + 97, 98, 98, 99, 100, 100, 101, 101, 102, 102, + 103, 103, 103, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 105, + 105, 105, 105, 105, 106, 107, 107, 108, 108, 109, + 109, 110, 111, 111, 111, 111, 111, 112, 112, 113, + 113, 114, 114, 115, 115, 116, 116, 116, 116, 116, + 116, 117, 118, 119, 120, 120, 121, 121, 122, 123, + 124, 125, 126, 126, 126, 126, 126, 127, 128, 128, + 128, 129, 129, 130, 131, 131, 131, 132, 132, 133, + 134, 134, 134, 135, 135, 136, 136, 137, 138, 138, + 138, 138, 139, 139, 140, 141, 141, 141, 141, 142, + 143, 143, 143, 144, 144, 144, 144, 144, 144, 145, + 146, 147, 147, 147, 147, 147, 148, 149, 150, 150, + 151, 152, 152, 152, 152, 152, 152, 152, 152, 152, + 152, 152, 153, 153, 154, 154, 155, 156, 157, 157, + 158, 158, 158, 159, 159, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 161, 161, 161, 161, 162, 162, + 163, 164, 164, 165, 165, 165, 166 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1190,20 +1229,21 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 1, 1, 1, 1, 1, 1, 2, 2, 5, - 5, 5, 8, 6, 4, 2, 1, 3, 3, 1, - 2, 3, 2, 3, 3, 3, 7, 3, 4, 2, - 1, 8, 4, 9, 5, 3, 2, 1, 1, 1, - 0, 2, 0, 2, 1, 5, 2, 1, 3, 2, - 2, 1, 1, 5, 6, 0, 5, 1, 1, 5, - 6, 1, 5, 1, 1, 5, 6, 4, 1, 6, - 5, 5, 1, 2, 2, 5, 6, 5, 5, 1, - 2, 2, 4, 5, 2, 2, 2, 5, 5, 5, - 5, 5, 6, 5, 4, 4, 4, 4, 5, 4, - 4, 5, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 1, 1, 2, 1, 1, 0, - 1, 5, 6, 6, 6, 5, 5, 5, 5, 5, - 5, 4, 4, 5, 5, 1, 1, 1, 5, 1, - 2, 4, 0, 2, 0, 1, 1, 1 + 5, 5, 8, 6, 4, 2, 1, 3, 2, 1, + 2, 3, 2, 3, 3, 3, 3, 2, 1, 1, + 2, 3, 4, 2, 1, 8, 4, 9, 5, 3, + 2, 1, 1, 1, 0, 2, 0, 2, 1, 5, + 1, 5, 2, 1, 3, 2, 2, 1, 1, 5, + 6, 0, 5, 1, 1, 5, 6, 1, 5, 1, + 1, 5, 6, 4, 1, 6, 5, 5, 1, 2, + 2, 5, 6, 5, 5, 1, 2, 2, 4, 5, + 2, 2, 2, 5, 5, 5, 5, 5, 1, 6, + 5, 4, 4, 4, 4, 4, 5, 4, 4, 5, + 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 2, 1, 1, 0, 1, + 5, 6, 6, 6, 5, 5, 5, 5, 5, 5, + 4, 4, 5, 5, 1, 1, 1, 5, 1, 2, + 4, 0, 2, 0, 1, 1, 1 }; @@ -1700,435 +1740,447 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio switch (yytype) { case 5: /* NAT */ -#line 224 "src/wast-parser.y" /* yacc.c:1257 */ +#line 226 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1706 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1746 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 6: /* INT */ -#line 224 "src/wast-parser.y" /* yacc.c:1257 */ +#line 226 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1712 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1752 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 7: /* FLOAT */ -#line 224 "src/wast-parser.y" /* yacc.c:1257 */ +#line 226 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1718 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1758 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 8: /* TEXT */ -#line 224 "src/wast-parser.y" /* yacc.c:1257 */ +#line 226 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1724 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1764 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 9: /* VAR */ -#line 224 "src/wast-parser.y" /* yacc.c:1257 */ +#line 226 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1730 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1770 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 39: /* OFFSET_EQ_NAT */ -#line 224 "src/wast-parser.y" /* yacc.c:1257 */ +#line 226 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1736 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1776 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 40: /* ALIGN_EQ_NAT */ -#line 224 "src/wast-parser.y" /* yacc.c:1257 */ +#line 226 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1742 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1782 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 80: /* text_list */ -#line 244 "src/wast-parser.y" /* yacc.c:1257 */ + case 81: /* text_list */ +#line 246 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_text_list(&((*yyvaluep).text_list)); } -#line 1748 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1788 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 81: /* text_list_opt */ -#line 244 "src/wast-parser.y" /* yacc.c:1257 */ + case 82: /* text_list_opt */ +#line 246 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_text_list(&((*yyvaluep).text_list)); } -#line 1754 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1794 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 82: /* quoted_text */ -#line 225 "src/wast-parser.y" /* yacc.c:1257 */ + case 83: /* quoted_text */ +#line 227 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).text)); } -#line 1760 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1800 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 83: /* value_type_list */ -#line 245 "src/wast-parser.y" /* yacc.c:1257 */ + case 84: /* value_type_list */ +#line 247 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).types); } -#line 1766 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1806 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 85: /* global_type */ -#line 238 "src/wast-parser.y" /* yacc.c:1257 */ + case 86: /* global_type */ +#line 240 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).global); } -#line 1772 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1812 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 86: /* func_type */ -#line 237 "src/wast-parser.y" /* yacc.c:1257 */ + case 87: /* func_type */ +#line 239 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func_sig); } -#line 1778 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1818 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 87: /* func_sig */ -#line 237 "src/wast-parser.y" /* yacc.c:1257 */ + case 88: /* func_sig */ +#line 239 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func_sig); } -#line 1784 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1824 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 88: /* func_sig_result */ -#line 237 "src/wast-parser.y" /* yacc.c:1257 */ + case 89: /* func_sig_result */ +#line 239 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func_sig); } -#line 1790 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1830 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 90: /* memory_sig */ -#line 240 "src/wast-parser.y" /* yacc.c:1257 */ + case 91: /* memory_sig */ +#line 242 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).memory); } -#line 1796 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1836 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 92: /* type_use */ -#line 246 "src/wast-parser.y" /* yacc.c:1257 */ + case 93: /* type_use */ +#line 248 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).var); } -#line 1802 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1842 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 94: /* literal */ -#line 226 "src/wast-parser.y" /* yacc.c:1257 */ + case 95: /* literal */ +#line 228 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).literal).text); } -#line 1808 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1848 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 95: /* var */ -#line 246 "src/wast-parser.y" /* yacc.c:1257 */ + case 96: /* var */ +#line 248 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).var); } -#line 1814 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1854 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 96: /* var_list */ -#line 247 "src/wast-parser.y" /* yacc.c:1257 */ + case 97: /* var_list */ +#line 249 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).vars); } -#line 1820 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1860 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 97: /* bind_var_opt */ -#line 225 "src/wast-parser.y" /* yacc.c:1257 */ + case 98: /* bind_var_opt */ +#line 227 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).text)); } -#line 1826 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1866 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 98: /* bind_var */ -#line 225 "src/wast-parser.y" /* yacc.c:1257 */ + case 99: /* bind_var */ +#line 227 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).text)); } -#line 1832 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1872 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 99: /* labeling_opt */ -#line 225 "src/wast-parser.y" /* yacc.c:1257 */ + case 100: /* labeling_opt */ +#line 227 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).text)); } -#line 1838 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1878 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 102: /* instr */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ + case 103: /* instr */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1844 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1884 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 103: /* plain_instr */ -#line 233 "src/wast-parser.y" /* yacc.c:1257 */ + case 104: /* plain_instr */ +#line 235 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).expr); } -#line 1850 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1890 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 104: /* block_instr */ -#line 233 "src/wast-parser.y" /* yacc.c:1257 */ + case 105: /* block_instr */ +#line 235 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).expr); } -#line 1856 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1896 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 105: /* block_sig */ -#line 245 "src/wast-parser.y" /* yacc.c:1257 */ + case 106: /* block_sig */ +#line 247 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).types); } -#line 1862 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1902 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 106: /* block */ -#line 228 "src/wast-parser.y" /* yacc.c:1257 */ + case 107: /* block */ +#line 230 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).block); } -#line 1868 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1908 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 107: /* catch_instr */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ + case 108: /* catch_instr */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1874 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1914 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 108: /* catch_instr_list */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ + case 109: /* catch_instr_list */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1880 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1920 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 109: /* expr */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ + case 110: /* expr */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1886 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1926 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 110: /* expr1 */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ + case 111: /* expr1 */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1892 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1932 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 111: /* catch_list */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ + case 112: /* try_ */ +#line 235 "src/wast-parser.y" /* yacc.c:1257 */ + { delete ((*yyvaluep).expr); } +#line 1938 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ + break; + + case 113: /* try_instr_list */ +#line 235 "src/wast-parser.y" /* yacc.c:1257 */ + { delete ((*yyvaluep).expr); } +#line 1944 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ + break; + + case 114: /* catch_list */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1898 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1950 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 112: /* if_block */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ + case 115: /* if_block */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1904 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1956 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 113: /* if_ */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ + case 116: /* if_ */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1910 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1962 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 117: /* instr_list */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ + case 120: /* instr_list */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1916 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1968 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 118: /* expr_list */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ + case 121: /* expr_list */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1922 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1974 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 119: /* const_expr */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ + case 122: /* const_expr */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1928 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1980 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 120: /* func */ -#line 235 "src/wast-parser.y" /* yacc.c:1257 */ + case 125: /* func */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 1934 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1986 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 121: /* func_fields */ -#line 235 "src/wast-parser.y" /* yacc.c:1257 */ + case 126: /* func_fields */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 1940 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1992 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 122: /* func_fields_import */ -#line 236 "src/wast-parser.y" /* yacc.c:1257 */ + case 127: /* func_fields_import */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 1946 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1998 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 123: /* func_fields_import1 */ -#line 236 "src/wast-parser.y" /* yacc.c:1257 */ + case 128: /* func_fields_import1 */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 1952 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2004 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 124: /* func_fields_import_result */ -#line 236 "src/wast-parser.y" /* yacc.c:1257 */ + case 129: /* func_fields_import_result */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 1958 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2010 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 125: /* func_fields_body */ -#line 236 "src/wast-parser.y" /* yacc.c:1257 */ + case 130: /* func_fields_body */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 1964 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2016 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 126: /* func_fields_body1 */ -#line 236 "src/wast-parser.y" /* yacc.c:1257 */ + case 131: /* func_fields_body1 */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 1970 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2022 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 127: /* func_result_body */ -#line 236 "src/wast-parser.y" /* yacc.c:1257 */ + case 132: /* func_result_body */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 1976 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2028 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 128: /* func_body */ -#line 236 "src/wast-parser.y" /* yacc.c:1257 */ + case 133: /* func_body */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 1982 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2034 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 129: /* func_body1 */ -#line 236 "src/wast-parser.y" /* yacc.c:1257 */ + case 134: /* func_body1 */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 1988 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2040 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 130: /* offset */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ + case 135: /* offset */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1994 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2046 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 132: /* table */ -#line 235 "src/wast-parser.y" /* yacc.c:1257 */ + case 137: /* table */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2000 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2052 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 133: /* table_fields */ -#line 235 "src/wast-parser.y" /* yacc.c:1257 */ + case 138: /* table_fields */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2006 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2058 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 135: /* memory */ -#line 235 "src/wast-parser.y" /* yacc.c:1257 */ + case 140: /* memory */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2012 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2064 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 136: /* memory_fields */ -#line 235 "src/wast-parser.y" /* yacc.c:1257 */ + case 141: /* memory_fields */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2018 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2070 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 137: /* global */ -#line 235 "src/wast-parser.y" /* yacc.c:1257 */ + case 142: /* global */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2024 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2076 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 138: /* global_fields */ -#line 235 "src/wast-parser.y" /* yacc.c:1257 */ + case 143: /* global_fields */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2030 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2082 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 139: /* import_desc */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ + case 144: /* import_desc */ +#line 241 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).import); } -#line 2036 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2088 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 141: /* inline_import */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ + case 146: /* inline_import */ +#line 241 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).import); } -#line 2042 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2094 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 142: /* export_desc */ -#line 232 "src/wast-parser.y" /* yacc.c:1257 */ + case 147: /* export_desc */ +#line 234 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).export_); } -#line 2048 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2100 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 144: /* inline_export */ -#line 232 "src/wast-parser.y" /* yacc.c:1257 */ + case 149: /* inline_export */ +#line 234 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).export_); } -#line 2054 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2106 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 147: /* module_field */ -#line 235 "src/wast-parser.y" /* yacc.c:1257 */ + case 152: /* module_field */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2060 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2112 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 148: /* module_fields_opt */ -#line 241 "src/wast-parser.y" /* yacc.c:1257 */ + case 153: /* module_fields_opt */ +#line 243 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).module); } -#line 2066 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2118 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 149: /* module_fields */ -#line 241 "src/wast-parser.y" /* yacc.c:1257 */ + case 154: /* module_fields */ +#line 243 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).module); } -#line 2072 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2124 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 150: /* module */ -#line 241 "src/wast-parser.y" /* yacc.c:1257 */ + case 155: /* module */ +#line 243 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).module); } -#line 2078 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2130 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 151: /* inline_module */ -#line 241 "src/wast-parser.y" /* yacc.c:1257 */ + case 156: /* inline_module */ +#line 243 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).module); } -#line 2084 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2136 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 152: /* script_var_opt */ -#line 246 "src/wast-parser.y" /* yacc.c:1257 */ + case 157: /* script_var_opt */ +#line 248 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).var); } -#line 2090 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2142 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 153: /* script_module */ -#line 242 "src/wast-parser.y" /* yacc.c:1257 */ + case 158: /* script_module */ +#line 244 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).script_module); } -#line 2096 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2148 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 154: /* action */ -#line 227 "src/wast-parser.y" /* yacc.c:1257 */ + case 159: /* action */ +#line 229 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).action); } -#line 2102 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2154 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 155: /* assertion */ -#line 229 "src/wast-parser.y" /* yacc.c:1257 */ + case 160: /* assertion */ +#line 231 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).command); } -#line 2108 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2160 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 156: /* cmd */ -#line 229 "src/wast-parser.y" /* yacc.c:1257 */ + case 161: /* cmd */ +#line 231 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).command); } -#line 2114 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2166 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 157: /* cmd_list */ -#line 230 "src/wast-parser.y" /* yacc.c:1257 */ + case 162: /* cmd_list */ +#line 232 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).commands); } -#line 2120 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2172 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 159: /* const_list */ -#line 231 "src/wast-parser.y" /* yacc.c:1257 */ + case 164: /* const_list */ +#line 233 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).consts); } -#line 2126 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2178 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; - case 160: /* script */ -#line 243 "src/wast-parser.y" /* yacc.c:1257 */ + case 165: /* script */ +#line 245 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).script); } -#line 2132 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2184 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; @@ -2420,18 +2472,18 @@ yyreduce: switch (yyn) { case 2: -#line 260 "src/wast-parser.y" /* yacc.c:1646 */ +#line 262 "src/wast-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 2431 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2483 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 3: -#line 266 "src/wast-parser.y" /* yacc.c:1646 */ +#line 268 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.text_list) = (yyvsp[-1].text_list); TextListNode* node = new TextListNode(); @@ -2440,17 +2492,17 @@ yyreduce: (yyval.text_list).last->next = node; (yyval.text_list).last = node; } -#line 2444 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2496 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 4: -#line 276 "src/wast-parser.y" /* yacc.c:1646 */ +#line 278 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.text_list).first = (yyval.text_list).last = nullptr; } -#line 2450 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2502 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 6: -#line 281 "src/wast-parser.y" /* yacc.c:1646 */ +#line 283 "src/wast-parser.y" /* yacc.c:1646 */ { TextListNode node; node.text = (yyvsp[0].text); @@ -2464,139 +2516,139 @@ yyreduce: (yyval.text).start = data; (yyval.text).length = size; } -#line 2468 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2520 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 7: -#line 299 "src/wast-parser.y" /* yacc.c:1646 */ +#line 301 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.types) = new TypeVector(); } -#line 2474 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2526 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 8: -#line 300 "src/wast-parser.y" /* yacc.c:1646 */ +#line 302 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.types) = (yyvsp[-1].types); (yyval.types)->push_back((yyvsp[0].type)); } -#line 2483 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2535 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 9: -#line 306 "src/wast-parser.y" /* yacc.c:1646 */ +#line 308 "src/wast-parser.y" /* yacc.c:1646 */ {} -#line 2489 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2541 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 10: -#line 309 "src/wast-parser.y" /* yacc.c:1646 */ +#line 311 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.global) = new Global(); (yyval.global)->type = (yyvsp[0].type); (yyval.global)->mutable_ = false; } -#line 2499 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2551 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 11: -#line 314 "src/wast-parser.y" /* yacc.c:1646 */ +#line 316 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.global) = new Global(); (yyval.global)->type = (yyvsp[-1].type); (yyval.global)->mutable_ = true; } -#line 2509 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2561 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 12: -#line 322 "src/wast-parser.y" /* yacc.c:1646 */ +#line 324 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = (yyvsp[-1].func_sig); } -#line 2515 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2567 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 14: -#line 327 "src/wast-parser.y" /* yacc.c:1646 */ +#line 329 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = (yyvsp[0].func_sig); (yyval.func_sig)->param_types.insert((yyval.func_sig)->param_types.begin(), (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 2525 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2577 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 15: -#line 332 "src/wast-parser.y" /* yacc.c:1646 */ +#line 334 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = (yyvsp[0].func_sig); (yyval.func_sig)->param_types.insert((yyval.func_sig)->param_types.begin(), (yyvsp[-2].type)); // Ignore bind_var. destroy_string_slice(&(yyvsp[-3].text)); } -#line 2536 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2588 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 16: -#line 341 "src/wast-parser.y" /* yacc.c:1646 */ +#line 343 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = new FuncSignature(); } -#line 2542 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2594 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 17: -#line 342 "src/wast-parser.y" /* yacc.c:1646 */ +#line 344 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = (yyvsp[0].func_sig); (yyval.func_sig)->result_types.insert((yyval.func_sig)->result_types.begin(), (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 2552 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2604 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 18: -#line 350 "src/wast-parser.y" /* yacc.c:1646 */ +#line 352 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.table) = new Table(); (yyval.table)->elem_limits = (yyvsp[-1].limits); } -#line 2561 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2613 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 19: -#line 356 "src/wast-parser.y" /* yacc.c:1646 */ +#line 358 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.memory) = new Memory(); (yyval.memory)->page_limits = (yyvsp[0].limits); } -#line 2570 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2622 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 20: -#line 362 "src/wast-parser.y" /* yacc.c:1646 */ +#line 364 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.limits).has_max = false; (yyval.limits).initial = (yyvsp[0].u64); (yyval.limits).max = 0; } -#line 2580 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2632 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 21: -#line 367 "src/wast-parser.y" /* yacc.c:1646 */ +#line 369 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.limits).has_max = true; (yyval.limits).initial = (yyvsp[-1].u64); (yyval.limits).max = (yyvsp[0].u64); } -#line 2590 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2642 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 22: -#line 374 "src/wast-parser.y" /* yacc.c:1646 */ +#line 376 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.var) = (yyvsp[-1].var); } -#line 2596 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2648 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 23: -#line 380 "src/wast-parser.y" /* yacc.c:1646 */ +#line 382 "src/wast-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)))) { @@ -2605,98 +2657,98 @@ yyreduce: WABT_PRINTF_STRING_SLICE_ARG((yyvsp[0].literal).text)); } } -#line 2609 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2661 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 24: -#line 391 "src/wast-parser.y" /* yacc.c:1646 */ +#line 393 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 2618 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2670 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 25: -#line 395 "src/wast-parser.y" /* yacc.c:1646 */ +#line 397 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 2627 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2679 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 26: -#line 399 "src/wast-parser.y" /* yacc.c:1646 */ +#line 401 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 2636 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2688 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 27: -#line 406 "src/wast-parser.y" /* yacc.c:1646 */ +#line 408 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.var) = new Var((yyvsp[0].u64)); (yyval.var)->loc = (yylsp[0]); } -#line 2645 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2697 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 28: -#line 410 "src/wast-parser.y" /* yacc.c:1646 */ +#line 412 "src/wast-parser.y" /* yacc.c:1646 */ { StringSlice name; DUPTEXT(name, (yyvsp[0].text)); (yyval.var) = new Var(name); (yyval.var)->loc = (yylsp[0]); } -#line 2656 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2708 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 29: -#line 418 "src/wast-parser.y" /* yacc.c:1646 */ +#line 420 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.vars) = new VarVector(); } -#line 2662 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2714 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 30: -#line 419 "src/wast-parser.y" /* yacc.c:1646 */ +#line 421 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.vars) = (yyvsp[-1].vars); (yyval.vars)->emplace_back(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2672 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2724 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 31: -#line 426 "src/wast-parser.y" /* yacc.c:1646 */ +#line 428 "src/wast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.text)); } -#line 2678 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2730 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 33: -#line 430 "src/wast-parser.y" /* yacc.c:1646 */ +#line 432 "src/wast-parser.y" /* yacc.c:1646 */ { DUPTEXT((yyval.text), (yyvsp[0].text)); } -#line 2684 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2736 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 34: -#line 434 "src/wast-parser.y" /* yacc.c:1646 */ +#line 436 "src/wast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.text)); } -#line 2690 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2742 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 36: -#line 439 "src/wast-parser.y" /* yacc.c:1646 */ +#line 441 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.u64) = 0; } -#line 2696 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2748 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 37: -#line 440 "src/wast-parser.y" /* yacc.c:1646 */ +#line 442 "src/wast-parser.y" /* yacc.c:1646 */ { uint64_t offset64; if (WABT_FAILED(parse_int64((yyvsp[0].text).start, (yyvsp[0].text).start + (yyvsp[0].text).length, &offset64, @@ -2711,17 +2763,17 @@ yyreduce: } (yyval.u64) = static_cast<uint32_t>(offset64); } -#line 2715 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2767 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 38: -#line 456 "src/wast-parser.y" /* yacc.c:1646 */ +#line 458 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.u32) = USE_NATURAL_ALIGNMENT; } -#line 2721 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2773 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 39: -#line 457 "src/wast-parser.y" /* yacc.c:1646 */ +#line 459 "src/wast-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))) { @@ -2734,169 +2786,169 @@ yyreduce: wast_parser_error(&(yylsp[0]), lexer, parser, "alignment must be power-of-two"); } } -#line 2738 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2790 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 40: -#line 472 "src/wast-parser.y" /* yacc.c:1646 */ +#line 474 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); } -#line 2744 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2796 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 41: -#line 473 "src/wast-parser.y" /* yacc.c:1646 */ +#line 475 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); } -#line 2750 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2802 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 43: -#line 478 "src/wast-parser.y" /* yacc.c:1646 */ +#line 480 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateUnreachable(); } -#line 2758 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2810 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 44: -#line 481 "src/wast-parser.y" /* yacc.c:1646 */ +#line 483 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateNop(); } -#line 2766 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2818 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 45: -#line 484 "src/wast-parser.y" /* yacc.c:1646 */ +#line 486 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateDrop(); } -#line 2774 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2826 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 46: -#line 487 "src/wast-parser.y" /* yacc.c:1646 */ +#line 489 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateSelect(); } -#line 2782 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2834 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 47: -#line 490 "src/wast-parser.y" /* yacc.c:1646 */ +#line 492 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBr(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2791 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2843 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 48: -#line 494 "src/wast-parser.y" /* yacc.c:1646 */ +#line 496 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBrIf(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2800 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2852 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 49: -#line 498 "src/wast-parser.y" /* yacc.c:1646 */ +#line 500 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBrTable((yyvsp[-1].vars), std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2809 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2861 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 50: -#line 502 "src/wast-parser.y" /* yacc.c:1646 */ +#line 504 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateReturn(); } -#line 2817 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2869 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 51: -#line 505 "src/wast-parser.y" /* yacc.c:1646 */ +#line 507 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateCall(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2826 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2878 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 52: -#line 509 "src/wast-parser.y" /* yacc.c:1646 */ +#line 511 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateCallIndirect(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2835 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2887 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 53: -#line 513 "src/wast-parser.y" /* yacc.c:1646 */ +#line 515 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateGetLocal(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2844 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2896 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 54: -#line 517 "src/wast-parser.y" /* yacc.c:1646 */ +#line 519 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateSetLocal(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2853 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2905 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 55: -#line 521 "src/wast-parser.y" /* yacc.c:1646 */ +#line 523 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateTeeLocal(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2862 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2914 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 56: -#line 525 "src/wast-parser.y" /* yacc.c:1646 */ +#line 527 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateGetGlobal(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2871 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2923 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 57: -#line 529 "src/wast-parser.y" /* yacc.c:1646 */ +#line 531 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateSetGlobal(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2880 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2932 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 58: -#line 533 "src/wast-parser.y" /* yacc.c:1646 */ +#line 535 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateLoad((yyvsp[-2].opcode), (yyvsp[0].u32), (yyvsp[-1].u64)); } -#line 2888 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2940 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 59: -#line 536 "src/wast-parser.y" /* yacc.c:1646 */ +#line 538 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateStore((yyvsp[-2].opcode), (yyvsp[0].u32), (yyvsp[-1].u64)); } -#line 2896 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2948 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 60: -#line 539 "src/wast-parser.y" /* yacc.c:1646 */ +#line 541 "src/wast-parser.y" /* yacc.c:1646 */ { Const const_; WABT_ZERO_MEMORY(const_); @@ -2910,252 +2962,286 @@ yyreduce: delete [] (yyvsp[0].literal).text.start; (yyval.expr) = Expr::CreateConst(const_); } -#line 2914 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2966 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 61: -#line 552 "src/wast-parser.y" /* yacc.c:1646 */ +#line 554 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateUnary((yyvsp[0].opcode)); } -#line 2922 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2974 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 62: -#line 555 "src/wast-parser.y" /* yacc.c:1646 */ +#line 557 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBinary((yyvsp[0].opcode)); } -#line 2930 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2982 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 63: -#line 558 "src/wast-parser.y" /* yacc.c:1646 */ +#line 560 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateCompare((yyvsp[0].opcode)); } -#line 2938 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2990 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 64: -#line 561 "src/wast-parser.y" /* yacc.c:1646 */ +#line 563 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateConvert((yyvsp[0].opcode)); } -#line 2946 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2998 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 65: -#line 564 "src/wast-parser.y" /* yacc.c:1646 */ +#line 566 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateCurrentMemory(); } -#line 2954 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3006 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 66: -#line 567 "src/wast-parser.y" /* yacc.c:1646 */ +#line 569 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateGrowMemory(); } -#line 2962 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3014 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 67: -#line 570 "src/wast-parser.y" /* yacc.c:1646 */ +#line 572 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateThrow(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2971 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3023 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 68: -#line 574 "src/wast-parser.y" /* yacc.c:1646 */ +#line 576 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateRethrow(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2980 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3032 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 69: -#line 581 "src/wast-parser.y" /* yacc.c:1646 */ +#line 583 "src/wast-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 2990 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3042 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 70: -#line 586 "src/wast-parser.y" /* yacc.c:1646 */ +#line 588 "src/wast-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 3000 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3052 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 71: -#line 591 "src/wast-parser.y" /* yacc.c:1646 */ +#line 593 "src/wast-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 3010 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3062 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 72: -#line 596 "src/wast-parser.y" /* yacc.c:1646 */ +#line 598 "src/wast-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 3021 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3073 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 73: -#line 602 "src/wast-parser.y" /* yacc.c:1646 */ +#line 604 "src/wast-parser.y" /* yacc.c:1646 */ { (yyvsp[-3].block)->label = (yyvsp[-4].text); (yyval.expr) = Expr::CreateTry((yyvsp[-3].block), (yyvsp[-2].expr_list).first); CHECK_END_LABEL((yylsp[0]), (yyvsp[-3].block)->label, (yyvsp[0].text)); } -#line 3031 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3083 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 74: -#line 610 "src/wast-parser.y" /* yacc.c:1646 */ +#line 612 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.types) = (yyvsp[-1].types); } -#line 3037 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3089 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 75: -#line 613 "src/wast-parser.y" /* yacc.c:1646 */ +#line 615 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.block) = (yyvsp[0].block); (yyval.block)->sig.insert((yyval.block)->sig.end(), (yyvsp[-1].types)->begin(), (yyvsp[-1].types)->end()); delete (yyvsp[-1].types); } -#line 3047 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3099 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 76: -#line 618 "src/wast-parser.y" /* yacc.c:1646 */ +#line 620 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.block) = new Block(); (yyval.block)->first = (yyvsp[0].expr_list).first; } -#line 3056 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3108 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 77: -#line 625 "src/wast-parser.y" /* yacc.c:1646 */ +#line 627 "src/wast-parser.y" /* yacc.c:1646 */ { Expr* expr = Expr::CreateCatch(std::move(*(yyvsp[-1].var)), (yyvsp[0].expr_list).first); delete (yyvsp[-1].var); (yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr); } -#line 3066 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3118 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 78: -#line 630 "src/wast-parser.y" /* yacc.c:1646 */ +#line 632 "src/wast-parser.y" /* yacc.c:1646 */ { - Expr* expr = Expr::CreateCatchAll(std::move(*(yyvsp[-1].var)), (yyvsp[0].expr_list).first); - delete (yyvsp[-1].var); - (yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr); + Expr* expr = Expr::CreateCatchAll((yyvsp[0].expr_list).first); + (yyval.expr_list) = join_exprs1(&(yylsp[-1]), expr); } -#line 3076 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3127 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 80: -#line 639 "src/wast-parser.y" /* yacc.c:1646 */ +#line 640 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_expr_lists(&(yyvsp[-1].expr_list), &(yyvsp[0].expr_list)); } -#line 3084 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3135 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 81: -#line 645 "src/wast-parser.y" /* yacc.c:1646 */ +#line 646 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[-1].expr_list); } -#line 3090 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3141 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 82: -#line 649 "src/wast-parser.y" /* yacc.c:1646 */ +#line 650 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_exprs2(&(yylsp[-1]), &(yyvsp[0].expr_list), (yyvsp[-1].expr)); } -#line 3098 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3149 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 83: -#line 652 "src/wast-parser.y" /* yacc.c:1646 */ +#line 653 "src/wast-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 3108 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3159 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 84: -#line 657 "src/wast-parser.y" /* yacc.c:1646 */ +#line 658 "src/wast-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 3118 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3169 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 85: -#line 662 "src/wast-parser.y" /* yacc.c:1646 */ +#line 663 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[0].expr_list); Expr* if_ = (yyvsp[0].expr_list).last; assert(if_->type == ExprType::If); if_->if_.true_->label = (yyvsp[-1].text); } -#line 3129 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3180 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 86: -#line 668 "src/wast-parser.y" /* yacc.c:1646 */ +#line 669 "src/wast-parser.y" /* yacc.c:1646 */ { - (yyvsp[-2].block)->label = (yyvsp[-3].text); - Expr* try_ = Expr::CreateTry((yyvsp[-2].block), (yyvsp[0].expr_list).first); - (yyval.expr_list) = join_exprs1(&(yylsp[-6]), try_); + Block* block = (yyvsp[0].expr)->try_block.block; + block->label = (yyvsp[-1].text); + (yyval.expr_list) = join_exprs1(&(yylsp[-2]), (yyvsp[0].expr)); } -#line 3139 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3190 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 87: -#line 676 "src/wast-parser.y" /* yacc.c:1646 */ +#line 677 "src/wast-parser.y" /* yacc.c:1646 */ + { + (yyval.expr) = (yyvsp[0].expr); + Block* block = (yyval.expr)->try_block.block; + block->sig.insert(block->sig.end(), (yyvsp[-1].types)->begin(), (yyvsp[-1].types)->end()); + delete (yyvsp[-1].types); + } +#line 3201 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ + break; + + case 89: +#line 687 "src/wast-parser.y" /* yacc.c:1646 */ + { + Block* block = new Block(); + (yyval.expr) = Expr::CreateTry(block, (yyvsp[0].expr_list).first); + } +#line 3210 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ + break; + + case 90: +#line 691 "src/wast-parser.y" /* yacc.c:1646 */ + { + (yyval.expr) = (yyvsp[0].expr); + Block* block = (yyval.expr)->try_block.block; + if ((yyvsp[-1].expr_list).last) { + (yyvsp[-1].expr_list).last->next = block->first; + } else { + (yyvsp[-1].expr_list).first->next = block->first; + } + block->first = (yyvsp[-1].expr_list).first; + } +#line 3225 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ + break; + + case 91: +#line 704 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[-1].expr_list); } -#line 3147 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3233 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 88: -#line 679 "src/wast-parser.y" /* yacc.c:1646 */ + case 92: +#line 707 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_expr_lists(&(yyvsp[-2].expr_list), &(yyvsp[0].expr_list)); } -#line 3155 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3241 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 89: -#line 685 "src/wast-parser.y" /* yacc.c:1646 */ + case 93: +#line 713 "src/wast-parser.y" /* yacc.c:1646 */ { Expr* if_ = (yyvsp[0].expr_list).last; assert(if_->type == ExprType::If); @@ -3164,123 +3250,144 @@ yyreduce: true_->sig.insert(true_->sig.end(), (yyvsp[-1].types)->begin(), (yyvsp[-1].types)->end()); delete (yyvsp[-1].types); } -#line 3168 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3254 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 91: -#line 696 "src/wast-parser.y" /* yacc.c:1646 */ + case 95: +#line 724 "src/wast-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 3177 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3263 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 92: -#line 700 "src/wast-parser.y" /* yacc.c:1646 */ + case 96: +#line 728 "src/wast-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 3186 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3272 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 93: -#line 704 "src/wast-parser.y" /* yacc.c:1646 */ + case 97: +#line 732 "src/wast-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 3195 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3281 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 94: -#line 708 "src/wast-parser.y" /* yacc.c:1646 */ + case 98: +#line 736 "src/wast-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 3204 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3290 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 95: -#line 712 "src/wast-parser.y" /* yacc.c:1646 */ + case 99: +#line 740 "src/wast-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 3213 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3299 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 96: -#line 716 "src/wast-parser.y" /* yacc.c:1646 */ + case 100: +#line 744 "src/wast-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 3222 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3308 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 97: -#line 723 "src/wast-parser.y" /* yacc.c:1646 */ + case 101: +#line 751 "src/wast-parser.y" /* yacc.c:1646 */ { CHECK_ALLOW_EXCEPTIONS(&(yylsp[0]), "rethrow"); } -#line 3230 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3316 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 98: -#line 728 "src/wast-parser.y" /* yacc.c:1646 */ + case 102: +#line 756 "src/wast-parser.y" /* yacc.c:1646 */ { CHECK_ALLOW_EXCEPTIONS(&(yylsp[0]), "throw"); } -#line 3238 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3324 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 99: -#line 734 "src/wast-parser.y" /* yacc.c:1646 */ + case 103: +#line 762 "src/wast-parser.y" /* yacc.c:1646 */ { CHECK_ALLOW_EXCEPTIONS(&(yylsp[0]), "try"); } -#line 3246 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3332 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 100: -#line 740 "src/wast-parser.y" /* yacc.c:1646 */ + case 104: +#line 768 "src/wast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.expr_list)); } -#line 3252 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3338 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 101: -#line 741 "src/wast-parser.y" /* yacc.c:1646 */ + case 105: +#line 769 "src/wast-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 3263 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3349 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 102: -#line 749 "src/wast-parser.y" /* yacc.c:1646 */ + case 106: +#line 777 "src/wast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.expr_list)); } -#line 3269 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3355 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 103: -#line 750 "src/wast-parser.y" /* yacc.c:1646 */ + case 107: +#line 778 "src/wast-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 3280 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3366 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 105: -#line 763 "src/wast-parser.y" /* yacc.c:1646 */ + case 109: +#line 791 "src/wast-parser.y" /* yacc.c:1646 */ + { + (yyval.exception) = new Exception(); + (yyval.exception)->name = (yyvsp[-2].text); + (yyval.exception)->sig = std::move(*(yyvsp[-1].types)); + delete (yyvsp[-1].types); + } +#line 3377 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ + break; + + case 110: +#line 799 "src/wast-parser.y" /* yacc.c:1646 */ + { + (yyval.module_field) = new ModuleField(ModuleFieldType::Except); + (yyval.module_field)->loc = (yylsp[0]); + (yyval.module_field)->except = (yyvsp[0].exception); + } +#line 3387 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ + break; + + case 111: +#line 808 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields) = (yyvsp[-1].module_fields); ModuleField* main = (yyval.module_fields).first; @@ -3292,11 +3399,11 @@ yyreduce: main->import->func->name = (yyvsp[-2].text); } } -#line 3296 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3403 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 106: -#line 777 "src/wast-parser.y" /* yacc.c:1646 */ + case 112: +#line 822 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Func); field->func = (yyvsp[0].func); @@ -3305,21 +3412,21 @@ yyreduce: delete (yyvsp[-1].var); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3309 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3416 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 107: -#line 785 "src/wast-parser.y" /* yacc.c:1646 */ + case 113: +#line 830 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Func); field->func = (yyvsp[0].func); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3319 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3426 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 108: -#line 790 "src/wast-parser.y" /* yacc.c:1646 */ + case 114: +#line 835 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Import); field->loc = (yylsp[-2]); @@ -3331,11 +3438,11 @@ yyreduce: delete (yyvsp[-1].var); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3335 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3442 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 109: -#line 801 "src/wast-parser.y" /* yacc.c:1646 */ + case 115: +#line 846 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Import); field->loc = (yylsp[-1]); @@ -3344,11 +3451,11 @@ yyreduce: field->import->func = (yyvsp[0].func); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3348 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3455 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 110: -#line 809 "src/wast-parser.y" /* yacc.c:1646 */ + case 116: +#line 854 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Export); field->loc = (yylsp[-1]); @@ -3357,31 +3464,31 @@ yyreduce: (yyval.module_fields).first = (yyvsp[0].module_fields).first; (yyval.module_fields).last = (yyvsp[0].module_fields).last->next = field; } -#line 3361 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3468 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 111: -#line 820 "src/wast-parser.y" /* yacc.c:1646 */ + case 117: +#line 865 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = (yyvsp[0].func); reverse_bindings(&(yyval.func)->decl.sig.param_types, &(yyval.func)->param_bindings); } -#line 3370 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3477 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 113: -#line 828 "src/wast-parser.y" /* yacc.c:1646 */ + case 119: +#line 873 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = (yyvsp[0].func); (yyval.func)->decl.sig.param_types.insert((yyval.func)->decl.sig.param_types.begin(), (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 3381 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3488 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 114: -#line 834 "src/wast-parser.y" /* yacc.c:1646 */ + case 120: +#line 879 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = (yyvsp[0].func); (yyval.func)->param_bindings.emplace(string_slice_to_string((yyvsp[-3].text)), @@ -3389,48 +3496,48 @@ yyreduce: destroy_string_slice(&(yyvsp[-3].text)); (yyval.func)->decl.sig.param_types.insert((yyval.func)->decl.sig.param_types.begin(), (yyvsp[-2].type)); } -#line 3393 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3500 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 115: -#line 844 "src/wast-parser.y" /* yacc.c:1646 */ + case 121: +#line 889 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = new Func(); } -#line 3399 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3506 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 116: -#line 845 "src/wast-parser.y" /* yacc.c:1646 */ + case 122: +#line 890 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = (yyvsp[0].func); (yyval.func)->decl.sig.result_types.insert((yyval.func)->decl.sig.result_types.begin(), (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 3410 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3517 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 117: -#line 854 "src/wast-parser.y" /* yacc.c:1646 */ + case 123: +#line 899 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = (yyvsp[0].func); reverse_bindings(&(yyval.func)->decl.sig.param_types, &(yyval.func)->param_bindings); } -#line 3419 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3526 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 119: -#line 862 "src/wast-parser.y" /* yacc.c:1646 */ + case 125: +#line 907 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = (yyvsp[0].func); (yyval.func)->decl.sig.param_types.insert((yyval.func)->decl.sig.param_types.begin(), (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 3430 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3537 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 120: -#line 868 "src/wast-parser.y" /* yacc.c:1646 */ + case 126: +#line 913 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = (yyvsp[0].func); (yyval.func)->param_bindings.emplace(string_slice_to_string((yyvsp[-3].text)), @@ -3438,50 +3545,50 @@ yyreduce: destroy_string_slice(&(yyvsp[-3].text)); (yyval.func)->decl.sig.param_types.insert((yyval.func)->decl.sig.param_types.begin(), (yyvsp[-2].type)); } -#line 3442 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3549 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 122: -#line 879 "src/wast-parser.y" /* yacc.c:1646 */ + case 128: +#line 924 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = (yyvsp[0].func); (yyval.func)->decl.sig.result_types.insert((yyval.func)->decl.sig.result_types.begin(), (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 3453 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3560 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 123: -#line 888 "src/wast-parser.y" /* yacc.c:1646 */ + case 129: +#line 933 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = (yyvsp[0].func); reverse_bindings(&(yyval.func)->local_types, &(yyval.func)->local_bindings); } -#line 3462 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3569 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 124: -#line 895 "src/wast-parser.y" /* yacc.c:1646 */ + case 130: +#line 940 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = new Func(); (yyval.func)->first_expr = (yyvsp[0].expr_list).first; } -#line 3471 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3578 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 125: -#line 899 "src/wast-parser.y" /* yacc.c:1646 */ + case 131: +#line 944 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = (yyvsp[0].func); (yyval.func)->local_types.insert((yyval.func)->local_types.begin(), (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 3481 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3588 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 126: -#line 904 "src/wast-parser.y" /* yacc.c:1646 */ + case 132: +#line 949 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = (yyvsp[0].func); (yyval.func)->local_bindings.emplace(string_slice_to_string((yyvsp[-3].text)), @@ -3489,19 +3596,19 @@ yyreduce: destroy_string_slice(&(yyvsp[-3].text)); (yyval.func)->local_types.insert((yyval.func)->local_types.begin(), (yyvsp[-2].type)); } -#line 3493 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3600 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 127: -#line 916 "src/wast-parser.y" /* yacc.c:1646 */ + case 133: +#line 961 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[-1].expr_list); } -#line 3501 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3608 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 129: -#line 923 "src/wast-parser.y" /* yacc.c:1646 */ + case 135: +#line 968 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_field) = new ModuleField(ModuleFieldType::ElemSegment); (yyval.module_field)->loc = (yylsp[-4]); @@ -3512,11 +3619,11 @@ yyreduce: (yyval.module_field)->elem_segment->vars = std::move(*(yyvsp[-1].vars)); delete (yyvsp[-1].vars); } -#line 3516 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3623 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 130: -#line 933 "src/wast-parser.y" /* yacc.c:1646 */ + case 136: +#line 978 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_field) = new ModuleField(ModuleFieldType::ElemSegment); (yyval.module_field)->loc = (yylsp[-3]); @@ -3528,11 +3635,11 @@ yyreduce: (yyval.module_field)->elem_segment->vars = std::move(*(yyvsp[-1].vars)); delete (yyvsp[-1].vars); } -#line 3532 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3639 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 131: -#line 947 "src/wast-parser.y" /* yacc.c:1646 */ + case 137: +#line 992 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields) = (yyvsp[-1].module_fields); ModuleField* main = (yyval.module_fields).first; @@ -3544,22 +3651,22 @@ yyreduce: main->import->table->name = (yyvsp[-2].text); } } -#line 3548 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3655 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 132: -#line 961 "src/wast-parser.y" /* yacc.c:1646 */ + case 138: +#line 1006 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Table); field->loc = (yylsp[0]); field->table = (yyvsp[0].table); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3559 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3666 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 133: -#line 967 "src/wast-parser.y" /* yacc.c:1646 */ + case 139: +#line 1012 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Import); field->loc = (yylsp[-1]); @@ -3568,11 +3675,11 @@ yyreduce: field->import->table = (yyvsp[0].table); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3572 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3679 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 134: -#line 975 "src/wast-parser.y" /* yacc.c:1646 */ + case 140: +#line 1020 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Export); field->loc = (yylsp[-1]); @@ -3581,11 +3688,11 @@ yyreduce: (yyval.module_fields).first = (yyvsp[0].module_fields).first; (yyval.module_fields).last = (yyvsp[0].module_fields).last->next = field; } -#line 3585 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3692 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 135: -#line 983 "src/wast-parser.y" /* yacc.c:1646 */ + case 141: +#line 1028 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* table_field = new ModuleField(ModuleFieldType::Table); Table* table = table_field->table = new Table(); @@ -3603,11 +3710,11 @@ yyreduce: (yyval.module_fields).first = table_field; (yyval.module_fields).last = table_field->next = elem_field; } -#line 3607 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3714 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 136: -#line 1003 "src/wast-parser.y" /* yacc.c:1646 */ + case 142: +#line 1048 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_field) = new ModuleField(ModuleFieldType::DataSegment); (yyval.module_field)->loc = (yylsp[-4]); @@ -3618,11 +3725,11 @@ yyreduce: dup_text_list(&(yyvsp[-1].text_list), &(yyval.module_field)->data_segment->data, &(yyval.module_field)->data_segment->size); destroy_text_list(&(yyvsp[-1].text_list)); } -#line 3622 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3729 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 137: -#line 1013 "src/wast-parser.y" /* yacc.c:1646 */ + case 143: +#line 1058 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_field) = new ModuleField(ModuleFieldType::DataSegment); (yyval.module_field)->loc = (yylsp[-3]); @@ -3634,11 +3741,11 @@ yyreduce: dup_text_list(&(yyvsp[-1].text_list), &(yyval.module_field)->data_segment->data, &(yyval.module_field)->data_segment->size); destroy_text_list(&(yyvsp[-1].text_list)); } -#line 3638 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3745 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 138: -#line 1027 "src/wast-parser.y" /* yacc.c:1646 */ + case 144: +#line 1072 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields) = (yyvsp[-1].module_fields); ModuleField* main = (yyval.module_fields).first; @@ -3650,21 +3757,21 @@ yyreduce: main->import->memory->name = (yyvsp[-2].text); } } -#line 3654 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3761 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 139: -#line 1041 "src/wast-parser.y" /* yacc.c:1646 */ + case 145: +#line 1086 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Memory); field->memory = (yyvsp[0].memory); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3664 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3771 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 140: -#line 1046 "src/wast-parser.y" /* yacc.c:1646 */ + case 146: +#line 1091 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Import); field->loc = (yylsp[-1]); @@ -3673,11 +3780,11 @@ yyreduce: field->import->memory = (yyvsp[0].memory); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3677 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3784 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 141: -#line 1054 "src/wast-parser.y" /* yacc.c:1646 */ + case 147: +#line 1099 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Export); field->loc = (yylsp[-1]); @@ -3686,11 +3793,11 @@ yyreduce: (yyval.module_fields).first = (yyvsp[0].module_fields).first; (yyval.module_fields).last = (yyvsp[0].module_fields).last->next = field; } -#line 3690 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3797 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 142: -#line 1062 "src/wast-parser.y" /* yacc.c:1646 */ + case 148: +#line 1107 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* data_field = new ModuleField(ModuleFieldType::DataSegment); data_field->loc = (yylsp[-2]); @@ -3712,11 +3819,11 @@ yyreduce: (yyval.module_fields).first = memory_field; (yyval.module_fields).last = memory_field->next = data_field; } -#line 3716 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3823 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 143: -#line 1086 "src/wast-parser.y" /* yacc.c:1646 */ + case 149: +#line 1131 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields) = (yyvsp[-1].module_fields); ModuleField* main = (yyval.module_fields).first; @@ -3728,22 +3835,22 @@ yyreduce: main->import->global->name = (yyvsp[-2].text); } } -#line 3732 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3839 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 144: -#line 1100 "src/wast-parser.y" /* yacc.c:1646 */ + case 150: +#line 1145 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Global); field->global = (yyvsp[-1].global); field->global->init_expr = (yyvsp[0].expr_list).first; (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3743 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3850 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 145: -#line 1106 "src/wast-parser.y" /* yacc.c:1646 */ + case 151: +#line 1151 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Import); field->loc = (yylsp[-1]); @@ -3752,11 +3859,11 @@ yyreduce: field->import->global = (yyvsp[0].global); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3756 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3863 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 146: -#line 1114 "src/wast-parser.y" /* yacc.c:1646 */ + case 152: +#line 1159 "src/wast-parser.y" /* yacc.c:1646 */ { ModuleField* field = new ModuleField(ModuleFieldType::Export); field->loc = (yylsp[-1]); @@ -3765,11 +3872,11 @@ yyreduce: (yyval.module_fields).first = (yyvsp[0].module_fields).first; (yyval.module_fields).last = (yyvsp[0].module_fields).last->next = field; } -#line 3769 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3876 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 147: -#line 1127 "src/wast-parser.y" /* yacc.c:1646 */ + case 153: +#line 1172 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new Import(); (yyval.import)->kind = ExternalKind::Func; @@ -3779,11 +3886,11 @@ yyreduce: (yyval.import)->func->decl.type_var = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 3783 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3890 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 148: -#line 1136 "src/wast-parser.y" /* yacc.c:1646 */ + case 154: +#line 1181 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new Import(); (yyval.import)->kind = ExternalKind::Func; @@ -3792,44 +3899,54 @@ yyreduce: (yyval.import)->func->decl.sig = std::move(*(yyvsp[-1].func_sig)); delete (yyvsp[-1].func_sig); } -#line 3796 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3903 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 149: -#line 1144 "src/wast-parser.y" /* yacc.c:1646 */ + case 155: +#line 1189 "src/wast-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 3807 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3914 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 150: -#line 1150 "src/wast-parser.y" /* yacc.c:1646 */ + case 156: +#line 1195 "src/wast-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 3818 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3925 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 151: -#line 1156 "src/wast-parser.y" /* yacc.c:1646 */ + case 157: +#line 1201 "src/wast-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 3829 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3936 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 152: -#line 1165 "src/wast-parser.y" /* yacc.c:1646 */ + case 158: +#line 1207 "src/wast-parser.y" /* yacc.c:1646 */ + { + (yyval.import) = new Import(); + (yyval.import)->kind = ExternalKind::Except; + (yyval.import)->except = (yyvsp[0].exception); + } +#line 3946 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ + break; + + case 159: +#line 1215 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_field) = new ModuleField(ModuleFieldType::Import); (yyval.module_field)->loc = (yylsp[-4]); @@ -3837,85 +3954,96 @@ yyreduce: (yyval.module_field)->import->module_name = (yyvsp[-3].text); (yyval.module_field)->import->field_name = (yyvsp[-2].text); } -#line 3841 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3958 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 153: -#line 1175 "src/wast-parser.y" /* yacc.c:1646 */ + case 160: +#line 1225 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.import) = new Import(); (yyval.import)->module_name = (yyvsp[-2].text); (yyval.import)->field_name = (yyvsp[-1].text); } -#line 3851 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3968 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 154: -#line 1183 "src/wast-parser.y" /* yacc.c:1646 */ + case 161: +#line 1233 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.export_) = new Export(); (yyval.export_)->kind = ExternalKind::Func; (yyval.export_)->var = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 3862 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3979 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 155: -#line 1189 "src/wast-parser.y" /* yacc.c:1646 */ + case 162: +#line 1239 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.export_) = new Export(); (yyval.export_)->kind = ExternalKind::Table; (yyval.export_)->var = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 3873 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3990 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 156: -#line 1195 "src/wast-parser.y" /* yacc.c:1646 */ + case 163: +#line 1245 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.export_) = new Export(); (yyval.export_)->kind = ExternalKind::Memory; (yyval.export_)->var = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 3884 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4001 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 157: -#line 1201 "src/wast-parser.y" /* yacc.c:1646 */ + case 164: +#line 1251 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.export_) = new Export(); (yyval.export_)->kind = ExternalKind::Global; (yyval.export_)->var = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 3895 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4012 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 158: -#line 1209 "src/wast-parser.y" /* yacc.c:1646 */ + case 165: +#line 1257 "src/wast-parser.y" /* yacc.c:1646 */ + { + (yyval.export_) = new Export(); + (yyval.export_)->kind = ExternalKind::Except; + (yyval.export_)->var = std::move(*(yyvsp[-1].var)); + delete (yyvsp[-1].var); + } +#line 4023 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ + break; + + case 166: +#line 1265 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_field) = new ModuleField(ModuleFieldType::Export); (yyval.module_field)->loc = (yylsp[-3]); (yyval.module_field)->export_ = (yyvsp[-1].export_); (yyval.module_field)->export_->name = (yyvsp[-2].text); } -#line 3906 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4034 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 159: -#line 1218 "src/wast-parser.y" /* yacc.c:1646 */ + case 167: +#line 1274 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.export_) = new Export(); (yyval.export_)->name = (yyvsp[-1].text); } -#line 3915 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4043 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 160: -#line 1228 "src/wast-parser.y" /* yacc.c:1646 */ + case 168: +#line 1284 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_field) = new ModuleField(ModuleFieldType::FuncType); (yyval.module_field)->loc = (yylsp[-2]); @@ -3923,11 +4051,11 @@ yyreduce: (yyval.module_field)->func_type->sig = std::move(*(yyvsp[-1].func_sig)); delete (yyvsp[-1].func_sig); } -#line 3927 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4055 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 161: -#line 1235 "src/wast-parser.y" /* yacc.c:1646 */ + case 169: +#line 1291 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_field) = new ModuleField(ModuleFieldType::FuncType); (yyval.module_field)->loc = (yylsp[-3]); @@ -3936,84 +4064,90 @@ yyreduce: (yyval.module_field)->func_type->sig = std::move(*(yyvsp[-1].func_sig)); delete (yyvsp[-1].func_sig); } -#line 3940 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4068 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 162: -#line 1246 "src/wast-parser.y" /* yacc.c:1646 */ + case 170: +#line 1302 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_field) = new ModuleField(ModuleFieldType::Start); (yyval.module_field)->loc = (yylsp[-2]); (yyval.module_field)->start = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 3951 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4079 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 163: -#line 1255 "src/wast-parser.y" /* yacc.c:1646 */ + case 171: +#line 1311 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 3957 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4085 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 168: -#line 1260 "src/wast-parser.y" /* yacc.c:1646 */ + case 176: +#line 1316 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 3963 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4091 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 169: -#line 1261 "src/wast-parser.y" /* yacc.c:1646 */ + case 177: +#line 1317 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 3969 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4097 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 170: -#line 1262 "src/wast-parser.y" /* yacc.c:1646 */ + case 178: +#line 1318 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 3975 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4103 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 171: -#line 1263 "src/wast-parser.y" /* yacc.c:1646 */ + case 179: +#line 1319 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 3981 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4109 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 172: -#line 1264 "src/wast-parser.y" /* yacc.c:1646 */ + case 180: +#line 1320 "src/wast-parser.y" /* yacc.c:1646 */ + { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } +#line 4115 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ + break; + + case 181: +#line 1321 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 3987 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4121 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 173: -#line 1268 "src/wast-parser.y" /* yacc.c:1646 */ + case 182: +#line 1325 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module) = new Module(); } -#line 3993 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4127 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 175: -#line 1273 "src/wast-parser.y" /* yacc.c:1646 */ + case 184: +#line 1330 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module) = new Module(); check_import_ordering(&(yylsp[0]), lexer, parser, (yyval.module), (yyvsp[0].module_fields).first); append_module_fields((yyval.module), (yyvsp[0].module_fields).first); } -#line 4003 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4137 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 176: -#line 1278 "src/wast-parser.y" /* yacc.c:1646 */ + case 185: +#line 1335 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module) = (yyvsp[-1].module); check_import_ordering(&(yylsp[0]), lexer, parser, (yyval.module), (yyvsp[0].module_fields).first); append_module_fields((yyval.module), (yyvsp[0].module_fields).first); } -#line 4013 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4147 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 177: -#line 1286 "src/wast-parser.y" /* yacc.c:1646 */ + case 186: +#line 1343 "src/wast-parser.y" /* yacc.c:1646 */ { if ((yyvsp[0].script_module)->type == ScriptModule::Type::Text) { (yyval.module) = (yyvsp[0].script_module)->text; @@ -4031,29 +4165,29 @@ yyreduce: } delete (yyvsp[0].script_module); } -#line 4035 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4169 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 179: -#line 1313 "src/wast-parser.y" /* yacc.c:1646 */ + case 188: +#line 1370 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.var) = new Var(kInvalidIndex); } -#line 4043 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4177 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 180: -#line 1316 "src/wast-parser.y" /* yacc.c:1646 */ + case 189: +#line 1373 "src/wast-parser.y" /* yacc.c:1646 */ { StringSlice name; DUPTEXT(name, (yyvsp[0].text)); (yyval.var) = new Var(name); } -#line 4053 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4187 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 181: -#line 1324 "src/wast-parser.y" /* yacc.c:1646 */ + case 190: +#line 1381 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.script_module) = new ScriptModule(); (yyval.script_module)->type = ScriptModule::Type::Text; @@ -4072,11 +4206,11 @@ yyreduce: } } } -#line 4076 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4210 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 182: -#line 1342 "src/wast-parser.y" /* yacc.c:1646 */ + case 191: +#line 1399 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.script_module) = new ScriptModule(); (yyval.script_module)->type = ScriptModule::Type::Binary; @@ -4085,11 +4219,11 @@ yyreduce: dup_text_list(&(yyvsp[-1].text_list), &(yyval.script_module)->binary.data, &(yyval.script_module)->binary.size); destroy_text_list(&(yyvsp[-1].text_list)); } -#line 4089 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4223 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 183: -#line 1350 "src/wast-parser.y" /* yacc.c:1646 */ + case 192: +#line 1407 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.script_module) = new ScriptModule(); (yyval.script_module)->type = ScriptModule::Type::Quoted; @@ -4098,11 +4232,11 @@ yyreduce: dup_text_list(&(yyvsp[-1].text_list), &(yyval.script_module)->quoted.data, &(yyval.script_module)->quoted.size); destroy_text_list(&(yyvsp[-1].text_list)); } -#line 4102 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4236 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 184: -#line 1361 "src/wast-parser.y" /* yacc.c:1646 */ + case 193: +#line 1418 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.action) = new Action(); (yyval.action)->loc = (yylsp[-4]); @@ -4114,11 +4248,11 @@ yyreduce: (yyval.action)->invoke->args = std::move(*(yyvsp[-1].consts)); delete (yyvsp[-1].consts); } -#line 4118 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4252 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 185: -#line 1372 "src/wast-parser.y" /* yacc.c:1646 */ + case 194: +#line 1429 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.action) = new Action(); (yyval.action)->loc = (yylsp[-3]); @@ -4127,128 +4261,128 @@ yyreduce: (yyval.action)->type = ActionType::Get; (yyval.action)->name = (yyvsp[-1].text); } -#line 4131 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4265 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 186: -#line 1383 "src/wast-parser.y" /* yacc.c:1646 */ + case 195: +#line 1440 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::AssertMalformed; (yyval.command)->assert_malformed.module = (yyvsp[-2].script_module); (yyval.command)->assert_malformed.text = (yyvsp[-1].text); } -#line 4142 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4276 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 187: -#line 1389 "src/wast-parser.y" /* yacc.c:1646 */ + case 196: +#line 1446 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::AssertInvalid; (yyval.command)->assert_invalid.module = (yyvsp[-2].script_module); (yyval.command)->assert_invalid.text = (yyvsp[-1].text); } -#line 4153 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4287 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 188: -#line 1395 "src/wast-parser.y" /* yacc.c:1646 */ + case 197: +#line 1452 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::AssertUnlinkable; (yyval.command)->assert_unlinkable.module = (yyvsp[-2].script_module); (yyval.command)->assert_unlinkable.text = (yyvsp[-1].text); } -#line 4164 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4298 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 189: -#line 1401 "src/wast-parser.y" /* yacc.c:1646 */ + case 198: +#line 1458 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::AssertUninstantiable; (yyval.command)->assert_uninstantiable.module = (yyvsp[-2].script_module); (yyval.command)->assert_uninstantiable.text = (yyvsp[-1].text); } -#line 4175 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4309 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 190: -#line 1407 "src/wast-parser.y" /* yacc.c:1646 */ + case 199: +#line 1464 "src/wast-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 4186 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4320 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 191: -#line 1413 "src/wast-parser.y" /* yacc.c:1646 */ + case 200: +#line 1470 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::AssertReturnCanonicalNan; (yyval.command)->assert_return_canonical_nan.action = (yyvsp[-1].action); } -#line 4196 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4330 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 192: -#line 1418 "src/wast-parser.y" /* yacc.c:1646 */ + case 201: +#line 1475 "src/wast-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 4206 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4340 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 193: -#line 1423 "src/wast-parser.y" /* yacc.c:1646 */ + case 202: +#line 1480 "src/wast-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 4217 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4351 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 194: -#line 1429 "src/wast-parser.y" /* yacc.c:1646 */ + case 203: +#line 1486 "src/wast-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 4228 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4362 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 195: -#line 1438 "src/wast-parser.y" /* yacc.c:1646 */ + case 204: +#line 1495 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::Action; (yyval.command)->action = (yyvsp[0].action); } -#line 4238 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4372 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 197: -#line 1444 "src/wast-parser.y" /* yacc.c:1646 */ + case 206: +#line 1501 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::Module; (yyval.command)->module = (yyvsp[0].module); } -#line 4248 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4382 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 198: -#line 1449 "src/wast-parser.y" /* yacc.c:1646 */ + case 207: +#line 1506 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.command) = new Command(); (yyval.command)->type = CommandType::Register; @@ -4257,29 +4391,29 @@ yyreduce: delete (yyvsp[-1].var); (yyval.command)->register_.var.loc = (yylsp[-1]); } -#line 4261 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4395 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 199: -#line 1459 "src/wast-parser.y" /* yacc.c:1646 */ + case 208: +#line 1516 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.commands) = new CommandPtrVector(); (yyval.commands)->emplace_back((yyvsp[0].command)); } -#line 4270 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4404 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 200: -#line 1463 "src/wast-parser.y" /* yacc.c:1646 */ + case 209: +#line 1520 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.commands) = (yyvsp[-1].commands); (yyval.commands)->emplace_back((yyvsp[0].command)); } -#line 4279 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4413 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 201: -#line 1470 "src/wast-parser.y" /* yacc.c:1646 */ + case 210: +#line 1527 "src/wast-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, @@ -4290,34 +4424,34 @@ yyreduce: } delete [] (yyvsp[-1].literal).text.start; } -#line 4294 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4428 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 202: -#line 1482 "src/wast-parser.y" /* yacc.c:1646 */ + case 211: +#line 1539 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.consts) = new ConstVector(); } -#line 4300 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4434 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 203: -#line 1483 "src/wast-parser.y" /* yacc.c:1646 */ + case 212: +#line 1540 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.consts) = (yyvsp[-1].consts); (yyval.consts)->push_back((yyvsp[0].const_)); } -#line 4309 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4443 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 204: -#line 1490 "src/wast-parser.y" /* yacc.c:1646 */ + case 213: +#line 1547 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.script) = new Script(); } -#line 4317 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4451 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 205: -#line 1493 "src/wast-parser.y" /* yacc.c:1646 */ + case 214: +#line 1550 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.script) = new Script(); (yyval.script)->commands = std::move(*(yyvsp[0].commands)); @@ -4378,11 +4512,11 @@ yyreduce: } } } -#line 4382 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4516 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 206: -#line 1553 "src/wast-parser.y" /* yacc.c:1646 */ + case 215: +#line 1610 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.script) = new Script(); Command* command = new Command(); @@ -4390,17 +4524,17 @@ yyreduce: command->module = (yyvsp[0].module); (yyval.script)->commands.emplace_back(command); } -#line 4394 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4528 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; - case 207: -#line 1565 "src/wast-parser.y" /* yacc.c:1646 */ + case 216: +#line 1622 "src/wast-parser.y" /* yacc.c:1646 */ { parser->script = (yyvsp[0].script); } -#line 4400 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4534 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; -#line 4404 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4538 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4635,7 +4769,7 @@ yyreturn: #endif return yyresult; } -#line 1568 "src/wast-parser.y" /* yacc.c:1906 */ +#line 1625 "src/wast-parser.y" /* yacc.c:1906 */ void append_expr_list(ExprList* expr_list, ExprList* expr) { @@ -4810,7 +4944,8 @@ void check_import_ordering(Location* loc, WastLexer* lexer, WastParser* parser, if (module->funcs.size() != module->num_func_imports || module->tables.size() != module->num_table_imports || module->memories.size() != module->num_memory_imports || - module->globals.size() != module->num_global_imports) { + module->globals.size() != module->num_global_imports || + module->excepts.size() != module->num_except_imports) { wast_parser_error( loc, lexer, parser, "imports must occur before all non-import definitions"); @@ -4877,6 +5012,13 @@ void append_module_fields(Module* module, ModuleField* first) { module->globals.push_back(field->import->global); ++module->num_global_imports; break; + case ExternalKind::Except: + name = &field->import->except->name; + bindings = &module->except_bindings; + index = module->excepts.size(); + module->excepts.push_back(field->except); + ++module->num_except_imports; + break; } module->imports.push_back(field->import); break; @@ -4932,6 +5074,13 @@ void append_module_fields(Module* module, ModuleField* first) { module->data_segments.push_back(field->data_segment); break; + case ModuleFieldType::Except: + name = &field->except->name; + bindings = &module->except_bindings; + index = module->excepts.size(); + module->excepts.push_back(field->except); + break; + case ModuleFieldType::Start: module->start = &field->start; break; diff --git a/src/prebuilt/wast-parser-gen.hh b/src/prebuilt/wast-parser-gen.hh index 4653690b..b20d1b92 100644 --- a/src/prebuilt/wast-parser-gen.hh +++ b/src/prebuilt/wast-parser-gen.hh @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.0.4. */ +/* A Bison parser, made by GNU Bison 3.0.2. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -115,21 +115,22 @@ extern int wabt_wast_parser_debug; WABT_TOKEN_TYPE_OFFSET = 316, WABT_TOKEN_TYPE_IMPORT = 317, WABT_TOKEN_TYPE_EXPORT = 318, - WABT_TOKEN_TYPE_MODULE = 319, - WABT_TOKEN_TYPE_BIN = 320, - WABT_TOKEN_TYPE_QUOTE = 321, - WABT_TOKEN_TYPE_REGISTER = 322, - WABT_TOKEN_TYPE_INVOKE = 323, - WABT_TOKEN_TYPE_GET = 324, - WABT_TOKEN_TYPE_ASSERT_MALFORMED = 325, - WABT_TOKEN_TYPE_ASSERT_INVALID = 326, - WABT_TOKEN_TYPE_ASSERT_UNLINKABLE = 327, - WABT_TOKEN_TYPE_ASSERT_RETURN = 328, - WABT_TOKEN_TYPE_ASSERT_RETURN_CANONICAL_NAN = 329, - WABT_TOKEN_TYPE_ASSERT_RETURN_ARITHMETIC_NAN = 330, - WABT_TOKEN_TYPE_ASSERT_TRAP = 331, - WABT_TOKEN_TYPE_ASSERT_EXHAUSTION = 332, - WABT_TOKEN_TYPE_LOW = 333 + WABT_TOKEN_TYPE_EXCEPT = 319, + WABT_TOKEN_TYPE_MODULE = 320, + WABT_TOKEN_TYPE_BIN = 321, + WABT_TOKEN_TYPE_QUOTE = 322, + WABT_TOKEN_TYPE_REGISTER = 323, + WABT_TOKEN_TYPE_INVOKE = 324, + WABT_TOKEN_TYPE_GET = 325, + WABT_TOKEN_TYPE_ASSERT_MALFORMED = 326, + WABT_TOKEN_TYPE_ASSERT_INVALID = 327, + WABT_TOKEN_TYPE_ASSERT_UNLINKABLE = 328, + WABT_TOKEN_TYPE_ASSERT_RETURN = 329, + WABT_TOKEN_TYPE_ASSERT_RETURN_CANONICAL_NAN = 330, + WABT_TOKEN_TYPE_ASSERT_RETURN_ARITHMETIC_NAN = 331, + WABT_TOKEN_TYPE_ASSERT_TRAP = 332, + WABT_TOKEN_TYPE_ASSERT_EXHAUSTION = 333, + WABT_TOKEN_TYPE_LOW = 334 }; #endif diff --git a/src/prebuilt/wast-parser-gen.output b/src/prebuilt/wast-parser-gen.output index 8b9dbaf5..1c4f03ec 100644 --- a/src/prebuilt/wast-parser-gen.output +++ b/src/prebuilt/wast-parser-gen.output @@ -105,7 +105,7 @@ Grammar 75 | instr_list 76 catch_instr: CATCH var instr_list - 77 | CATCH_ALL var instr_list + 77 | CATCH_ALL instr_list 78 catch_instr_list: catch_instr 79 | catch_instr catch_instr_list @@ -116,217 +116,232 @@ Grammar 82 | BLOCK labeling_opt block 83 | LOOP labeling_opt block 84 | IF labeling_opt if_block - 85 | try_check "(" BLOCK labeling_opt block ")" catch_list + 85 | try_check labeling_opt try_ - 86 catch_list: "(" catch_instr ")" - 87 | "(" catch_instr ")" catch_list + 86 try_: block_sig try_ + 87 | try_instr_list - 88 if_block: block_sig if_block - 89 | if_ + 88 try_instr_list: catch_list + 89 | instr try_instr_list - 90 if_: "(" THEN instr_list ")" "(" ELSE instr_list ")" - 91 | "(" THEN instr_list ")" - 92 | expr "(" THEN instr_list ")" "(" ELSE instr_list ")" - 93 | expr "(" THEN instr_list ")" - 94 | expr expr expr - 95 | expr expr + 90 catch_list: "(" catch_instr ")" + 91 | "(" catch_instr ")" catch_list - 96 rethrow_check: RETHROW + 92 if_block: block_sig if_block + 93 | if_ - 97 throw_check: THROW + 94 if_: "(" THEN instr_list ")" "(" ELSE instr_list ")" + 95 | "(" THEN instr_list ")" + 96 | expr "(" THEN instr_list ")" "(" ELSE instr_list ")" + 97 | expr "(" THEN instr_list ")" + 98 | expr expr expr + 99 | expr expr - 98 try_check: TRY + 100 rethrow_check: RETHROW - 99 instr_list: %empty - 100 | instr instr_list + 101 throw_check: THROW - 101 expr_list: %empty - 102 | expr expr_list + 102 try_check: TRY - 103 const_expr: instr_list + 103 instr_list: %empty + 104 | instr instr_list - 104 func: "(" FUNC bind_var_opt func_fields ")" + 105 expr_list: %empty + 106 | expr expr_list - 105 func_fields: type_use func_fields_body - 106 | func_fields_body - 107 | inline_import type_use func_fields_import - 108 | inline_import func_fields_import - 109 | inline_export func_fields + 107 const_expr: instr_list - 110 func_fields_import: func_fields_import1 + 108 exception: "(" EXCEPT bind_var_opt value_type_list ")" - 111 func_fields_import1: func_fields_import_result - 112 | "(" PARAM value_type_list ")" func_fields_import1 - 113 | "(" PARAM bind_var VALUE_TYPE ")" func_fields_import1 + 109 exception_field: exception - 114 func_fields_import_result: %empty - 115 | "(" RESULT value_type_list ")" func_fields_import_result + 110 func: "(" FUNC bind_var_opt func_fields ")" - 116 func_fields_body: func_fields_body1 + 111 func_fields: type_use func_fields_body + 112 | func_fields_body + 113 | inline_import type_use func_fields_import + 114 | inline_import func_fields_import + 115 | inline_export func_fields - 117 func_fields_body1: func_result_body - 118 | "(" PARAM value_type_list ")" func_fields_body1 - 119 | "(" PARAM bind_var VALUE_TYPE ")" func_fields_body1 + 116 func_fields_import: func_fields_import1 - 120 func_result_body: func_body - 121 | "(" RESULT value_type_list ")" func_result_body + 117 func_fields_import1: func_fields_import_result + 118 | "(" PARAM value_type_list ")" func_fields_import1 + 119 | "(" PARAM bind_var VALUE_TYPE ")" func_fields_import1 - 122 func_body: func_body1 + 120 func_fields_import_result: %empty + 121 | "(" RESULT value_type_list ")" func_fields_import_result - 123 func_body1: instr_list - 124 | "(" LOCAL value_type_list ")" func_body1 - 125 | "(" LOCAL bind_var VALUE_TYPE ")" func_body1 + 122 func_fields_body: func_fields_body1 - 126 offset: "(" OFFSET const_expr ")" - 127 | expr + 123 func_fields_body1: func_result_body + 124 | "(" PARAM value_type_list ")" func_fields_body1 + 125 | "(" PARAM bind_var VALUE_TYPE ")" func_fields_body1 - 128 elem: "(" ELEM var offset var_list ")" - 129 | "(" ELEM offset var_list ")" + 126 func_result_body: func_body + 127 | "(" RESULT value_type_list ")" func_result_body - 130 table: "(" TABLE bind_var_opt table_fields ")" + 128 func_body: func_body1 - 131 table_fields: table_sig - 132 | inline_import table_sig - 133 | inline_export table_fields - 134 | elem_type "(" ELEM var_list ")" + 129 func_body1: instr_list + 130 | "(" LOCAL value_type_list ")" func_body1 + 131 | "(" LOCAL bind_var VALUE_TYPE ")" func_body1 - 135 data: "(" DATA var offset text_list_opt ")" - 136 | "(" DATA offset text_list_opt ")" + 132 offset: "(" OFFSET const_expr ")" + 133 | expr - 137 memory: "(" MEMORY bind_var_opt memory_fields ")" + 134 elem: "(" ELEM var offset var_list ")" + 135 | "(" ELEM offset var_list ")" - 138 memory_fields: memory_sig - 139 | inline_import memory_sig - 140 | inline_export memory_fields - 141 | "(" DATA text_list_opt ")" + 136 table: "(" TABLE bind_var_opt table_fields ")" - 142 global: "(" GLOBAL bind_var_opt global_fields ")" + 137 table_fields: table_sig + 138 | inline_import table_sig + 139 | inline_export table_fields + 140 | elem_type "(" ELEM var_list ")" - 143 global_fields: global_type const_expr - 144 | inline_import global_type - 145 | inline_export global_fields + 141 data: "(" DATA var offset text_list_opt ")" + 142 | "(" DATA offset text_list_opt ")" - 146 import_desc: "(" FUNC bind_var_opt type_use ")" - 147 | "(" FUNC bind_var_opt func_sig ")" - 148 | "(" TABLE bind_var_opt table_sig ")" - 149 | "(" MEMORY bind_var_opt memory_sig ")" - 150 | "(" GLOBAL bind_var_opt global_type ")" + 143 memory: "(" MEMORY bind_var_opt memory_fields ")" - 151 import: "(" IMPORT quoted_text quoted_text import_desc ")" + 144 memory_fields: memory_sig + 145 | inline_import memory_sig + 146 | inline_export memory_fields + 147 | "(" DATA text_list_opt ")" - 152 inline_import: "(" IMPORT quoted_text quoted_text ")" + 148 global: "(" GLOBAL bind_var_opt global_fields ")" - 153 export_desc: "(" FUNC var ")" - 154 | "(" TABLE var ")" - 155 | "(" MEMORY var ")" - 156 | "(" GLOBAL var ")" + 149 global_fields: global_type const_expr + 150 | inline_import global_type + 151 | inline_export global_fields - 157 export: "(" EXPORT quoted_text export_desc ")" + 152 import_desc: "(" FUNC bind_var_opt type_use ")" + 153 | "(" FUNC bind_var_opt func_sig ")" + 154 | "(" TABLE bind_var_opt table_sig ")" + 155 | "(" MEMORY bind_var_opt memory_sig ")" + 156 | "(" GLOBAL bind_var_opt global_type ")" + 157 | exception - 158 inline_export: "(" EXPORT quoted_text ")" + 158 import: "(" IMPORT quoted_text quoted_text import_desc ")" - 159 type_def: "(" TYPE func_type ")" - 160 | "(" TYPE bind_var func_type ")" + 159 inline_import: "(" IMPORT quoted_text quoted_text ")" - 161 start: "(" START var ")" + 160 export_desc: "(" FUNC var ")" + 161 | "(" TABLE var ")" + 162 | "(" MEMORY var ")" + 163 | "(" GLOBAL var ")" + 164 | "(" EXCEPT var ")" - 162 module_field: type_def - 163 | global - 164 | table - 165 | memory - 166 | func - 167 | elem - 168 | data - 169 | start - 170 | import - 171 | export + 165 export: "(" EXPORT quoted_text export_desc ")" - 172 module_fields_opt: %empty - 173 | module_fields + 166 inline_export: "(" EXPORT quoted_text ")" - 174 module_fields: module_field - 175 | module_fields module_field + 167 type_def: "(" TYPE func_type ")" + 168 | "(" TYPE bind_var func_type ")" - 176 module: script_module + 169 start: "(" START var ")" - 177 inline_module: module_fields + 170 module_field: type_def + 171 | global + 172 | table + 173 | memory + 174 | func + 175 | elem + 176 | data + 177 | start + 178 | import + 179 | export + 180 | exception_field - 178 script_var_opt: %empty - 179 | VAR + 181 module_fields_opt: %empty + 182 | module_fields - 180 script_module: "(" MODULE bind_var_opt module_fields_opt ")" - 181 | "(" MODULE bind_var_opt BIN text_list ")" - 182 | "(" MODULE bind_var_opt QUOTE text_list ")" + 183 module_fields: module_field + 184 | module_fields module_field - 183 action: "(" INVOKE script_var_opt quoted_text const_list ")" - 184 | "(" GET script_var_opt quoted_text ")" + 185 module: script_module - 185 assertion: "(" ASSERT_MALFORMED script_module quoted_text ")" - 186 | "(" ASSERT_INVALID script_module quoted_text ")" - 187 | "(" ASSERT_UNLINKABLE script_module quoted_text ")" - 188 | "(" ASSERT_TRAP script_module quoted_text ")" - 189 | "(" ASSERT_RETURN action const_list ")" - 190 | "(" ASSERT_RETURN_CANONICAL_NAN action ")" - 191 | "(" ASSERT_RETURN_ARITHMETIC_NAN action ")" - 192 | "(" ASSERT_TRAP action quoted_text ")" - 193 | "(" ASSERT_EXHAUSTION action quoted_text ")" + 186 inline_module: module_fields - 194 cmd: action - 195 | assertion - 196 | module - 197 | "(" REGISTER quoted_text script_var_opt ")" + 187 script_var_opt: %empty + 188 | VAR - 198 cmd_list: cmd - 199 | cmd_list cmd + 189 script_module: "(" MODULE bind_var_opt module_fields_opt ")" + 190 | "(" MODULE bind_var_opt BIN text_list ")" + 191 | "(" MODULE bind_var_opt QUOTE text_list ")" - 200 const: "(" CONST literal ")" + 192 action: "(" INVOKE script_var_opt quoted_text const_list ")" + 193 | "(" GET script_var_opt quoted_text ")" - 201 const_list: %empty - 202 | const_list const + 194 assertion: "(" ASSERT_MALFORMED script_module quoted_text ")" + 195 | "(" ASSERT_INVALID script_module quoted_text ")" + 196 | "(" ASSERT_UNLINKABLE script_module quoted_text ")" + 197 | "(" ASSERT_TRAP script_module quoted_text ")" + 198 | "(" ASSERT_RETURN action const_list ")" + 199 | "(" ASSERT_RETURN_CANONICAL_NAN action ")" + 200 | "(" ASSERT_RETURN_ARITHMETIC_NAN action ")" + 201 | "(" ASSERT_TRAP action quoted_text ")" + 202 | "(" ASSERT_EXHAUSTION action quoted_text ")" - 203 script: %empty - 204 | cmd_list - 205 | inline_module + 203 cmd: action + 204 | assertion + 205 | module + 206 | "(" REGISTER quoted_text script_var_opt ")" - 206 script_start: script + 207 cmd_list: cmd + 208 | cmd_list cmd + + 209 const: "(" CONST literal ")" + + 210 const_list: %empty + 211 | const_list const + + 212 script: %empty + 213 | cmd_list + 214 | inline_module + + 215 script_start: script Terminals, with rules where they appear "EOF" (0) 0 error (256) -"(" (258) 10 11 13 14 16 21 73 80 85 86 87 90 91 92 93 104 112 113 - 115 118 119 121 124 125 126 128 129 130 134 135 136 137 141 142 - 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 - 180 181 182 183 184 185 186 187 188 189 190 191 192 193 197 200 -")" (259) 10 11 13 14 16 21 73 80 85 86 87 90 91 92 93 104 112 113 - 115 118 119 121 124 125 126 128 129 130 134 135 136 137 141 142 - 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 - 180 181 182 183 184 185 186 187 188 189 190 191 192 193 197 200 +"(" (258) 10 11 13 14 16 21 73 80 90 91 94 95 96 97 108 110 118 119 + 121 124 125 127 130 131 132 134 135 136 140 141 142 143 147 148 + 152 153 154 155 156 158 159 160 161 162 163 164 165 166 167 168 + 169 189 190 191 192 193 194 195 196 197 198 199 200 201 202 206 + 209 +")" (259) 10 11 13 14 16 21 73 80 90 91 94 95 96 97 108 110 118 119 + 121 124 125 127 130 131 132 134 135 136 140 141 142 143 147 148 + 152 153 154 155 156 158 159 160 161 162 163 164 165 166 167 168 + 169 189 190 191 192 193 194 195 196 197 198 199 200 201 202 206 + 209 NAT (260) 22 23 INT (261) 24 FLOAT (262) 25 TEXT (263) 1 2 5 -VAR (264) 27 32 179 -VALUE_TYPE (265) 7 9 10 14 113 119 125 +VAR (264) 27 32 188 +VALUE_TYPE (265) 7 9 10 14 119 125 131 ANYFUNC (266) 8 MUT (267) 10 NOP (268) 43 DROP (269) 44 -BLOCK (270) 68 82 85 +BLOCK (270) 68 82 END (271) 68 69 70 71 72 IF (272) 70 71 84 -THEN (273) 90 91 92 93 -ELSE (274) 71 90 92 +THEN (273) 94 95 96 97 +ELSE (274) 71 94 96 LOOP (275) 69 83 BR (276) 46 BR_IF (277) 47 BR_TABLE (278) 48 -TRY (279) 98 +TRY (279) 102 CATCH (280) 76 CATCH_ALL (281) 77 -THROW (282) 97 -RETHROW (283) 96 +THROW (282) 101 +RETHROW (283) 100 CALL (284) 50 CALL_INDIRECT (285) 51 RETURN (286) 49 @@ -339,7 +354,7 @@ LOAD (292) 57 STORE (293) 58 OFFSET_EQ_NAT (294) 36 ALIGN_EQ_NAT (295) 38 -CONST (296) 59 200 +CONST (296) 59 209 UNARY (297) 60 BINARY (298) 61 COMPARE (299) 62 @@ -348,210 +363,219 @@ SELECT (301) 45 UNREACHABLE (302) 42 CURRENT_MEMORY (303) 64 GROW_MEMORY (304) 65 -FUNC (305) 11 104 146 147 153 -START (306) 161 -TYPE (307) 21 159 160 -PARAM (308) 13 14 112 113 118 119 -RESULT (309) 16 73 115 121 -LOCAL (310) 124 125 -GLOBAL (311) 142 150 156 -TABLE (312) 130 148 154 -ELEM (313) 128 129 134 -MEMORY (314) 137 149 155 -DATA (315) 135 136 141 -OFFSET (316) 126 -IMPORT (317) 151 152 -EXPORT (318) 157 158 -MODULE (319) 180 181 182 -BIN (320) 181 -QUOTE (321) 182 -REGISTER (322) 197 -INVOKE (323) 183 -GET (324) 184 -ASSERT_MALFORMED (325) 185 -ASSERT_INVALID (326) 186 -ASSERT_UNLINKABLE (327) 187 -ASSERT_RETURN (328) 189 -ASSERT_RETURN_CANONICAL_NAN (329) 190 -ASSERT_RETURN_ARITHMETIC_NAN (330) 191 -ASSERT_TRAP (331) 188 192 -ASSERT_EXHAUSTION (332) 193 -LOW (333) +FUNC (305) 11 110 152 153 160 +START (306) 169 +TYPE (307) 21 167 168 +PARAM (308) 13 14 118 119 124 125 +RESULT (309) 16 73 121 127 +LOCAL (310) 130 131 +GLOBAL (311) 148 156 163 +TABLE (312) 136 154 161 +ELEM (313) 134 135 140 +MEMORY (314) 143 155 162 +DATA (315) 141 142 147 +OFFSET (316) 132 +IMPORT (317) 158 159 +EXPORT (318) 165 166 +EXCEPT (319) 108 164 +MODULE (320) 189 190 191 +BIN (321) 190 +QUOTE (322) 191 +REGISTER (323) 206 +INVOKE (324) 192 +GET (325) 193 +ASSERT_MALFORMED (326) 194 +ASSERT_INVALID (327) 195 +ASSERT_UNLINKABLE (328) 196 +ASSERT_RETURN (329) 198 +ASSERT_RETURN_CANONICAL_NAN (330) 199 +ASSERT_RETURN_ARITHMETIC_NAN (331) 200 +ASSERT_TRAP (332) 197 201 +ASSERT_EXHAUSTION (333) 202 +LOW (334) Nonterminals, with rules where they appear -$accept (79) +$accept (80) on left: 0 -text_list (80) - on left: 1 2, on right: 2 4 181 182 -text_list_opt (81) - on left: 3 4, on right: 135 136 141 -quoted_text (82) - on left: 5, on right: 151 152 157 158 183 184 185 186 187 188 192 - 193 197 -value_type_list (83) - on left: 6 7, on right: 7 13 16 73 112 115 118 121 124 -elem_type (84) - on left: 8, on right: 17 134 -global_type (85) - on left: 9 10, on right: 143 144 150 -func_type (86) - on left: 11, on right: 159 160 -func_sig (87) - on left: 12 13 14, on right: 11 13 14 147 -func_sig_result (88) +text_list (81) + on left: 1 2, on right: 2 4 190 191 +text_list_opt (82) + on left: 3 4, on right: 141 142 147 +quoted_text (83) + on left: 5, on right: 158 159 165 166 192 193 194 195 196 197 201 + 202 206 +value_type_list (84) + on left: 6 7, on right: 7 13 16 73 108 118 121 124 127 130 +elem_type (85) + on left: 8, on right: 17 140 +global_type (86) + on left: 9 10, on right: 149 150 156 +func_type (87) + on left: 11, on right: 167 168 +func_sig (88) + on left: 12 13 14, on right: 11 13 14 153 +func_sig_result (89) on left: 15 16, on right: 12 16 -table_sig (89) - on left: 17, on right: 131 132 148 -memory_sig (90) - on left: 18, on right: 138 139 149 -limits (91) +table_sig (90) + on left: 17, on right: 137 138 154 +memory_sig (91) + on left: 18, on right: 144 145 155 +limits (92) on left: 19 20, on right: 17 18 -type_use (92) - on left: 21, on right: 105 107 146 -nat (93) +type_use (93) + on left: 21, on right: 111 113 152 +nat (94) on left: 22, on right: 19 20 26 -literal (94) - on left: 23 24 25, on right: 59 200 -var (95) +literal (95) + on left: 23 24 25, on right: 59 209 +var (96) on left: 26 27, on right: 21 29 46 47 48 50 51 52 53 54 55 56 66 - 67 76 77 128 135 153 154 155 156 161 -var_list (96) - on left: 28 29, on right: 29 48 128 129 134 -bind_var_opt (97) - on left: 30 31, on right: 104 130 137 142 146 147 148 149 150 180 - 181 182 -bind_var (98) - on left: 32, on right: 14 31 34 113 119 125 160 -labeling_opt (99) + 67 76 134 141 160 161 162 163 164 169 +var_list (97) + on left: 28 29, on right: 29 48 134 135 140 +bind_var_opt (98) + on left: 30 31, on right: 108 110 136 143 148 152 153 154 155 156 + 189 190 191 +bind_var (99) + on left: 32, on right: 14 31 34 119 125 131 168 +labeling_opt (100) on left: 33 34, on right: 68 69 70 71 72 82 83 84 85 -offset_opt (100) +offset_opt (101) on left: 35 36, on right: 57 58 -align_opt (101) +align_opt (102) on left: 37 38, on right: 57 58 -instr (102) - on left: 39 40 41, on right: 100 -plain_instr (103) +instr (103) + on left: 39 40 41, on right: 89 104 +plain_instr (104) on left: 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, on right: 39 81 -block_instr (104) +block_instr (105) on left: 68 69 70 71 72, on right: 40 -block_sig (105) - on left: 73, on right: 74 88 -block (106) - on left: 74 75, on right: 68 69 70 71 72 74 82 83 85 -catch_instr (107) - on left: 76 77, on right: 78 79 86 87 -catch_instr_list (108) +block_sig (106) + on left: 73, on right: 74 86 92 +block (107) + on left: 74 75, on right: 68 69 70 71 72 74 82 83 +catch_instr (108) + on left: 76 77, on right: 78 79 90 91 +catch_instr_list (109) on left: 78 79, on right: 72 79 -expr (109) - on left: 80, on right: 41 92 93 94 95 102 127 -expr1 (110) +expr (110) + on left: 80, on right: 41 96 97 98 99 106 133 +expr1 (111) on left: 81 82 83 84 85, on right: 80 -catch_list (111) - on left: 86 87, on right: 85 87 -if_block (112) - on left: 88 89, on right: 84 88 -if_ (113) - on left: 90 91 92 93 94 95, on right: 89 -rethrow_check (114) - on left: 96, on right: 67 -throw_check (115) - on left: 97, on right: 66 -try_check (116) - on left: 98, on right: 72 85 -instr_list (117) - on left: 99 100, on right: 71 75 76 77 90 91 92 93 100 103 123 -expr_list (118) - on left: 101 102, on right: 81 102 -const_expr (119) - on left: 103, on right: 126 143 -func (120) - on left: 104, on right: 166 -func_fields (121) - on left: 105 106 107 108 109, on right: 104 109 -func_fields_import (122) - on left: 110, on right: 107 108 -func_fields_import1 (123) - on left: 111 112 113, on right: 110 112 113 -func_fields_import_result (124) - on left: 114 115, on right: 111 115 -func_fields_body (125) - on left: 116, on right: 105 106 -func_fields_body1 (126) +try_ (112) + on left: 86 87, on right: 85 86 +try_instr_list (113) + on left: 88 89, on right: 87 89 +catch_list (114) + on left: 90 91, on right: 88 91 +if_block (115) + on left: 92 93, on right: 84 92 +if_ (116) + on left: 94 95 96 97 98 99, on right: 93 +rethrow_check (117) + on left: 100, on right: 67 +throw_check (118) + on left: 101, on right: 66 +try_check (119) + on left: 102, on right: 72 85 +instr_list (120) + on left: 103 104, on right: 71 75 76 77 94 95 96 97 104 107 129 +expr_list (121) + on left: 105 106, on right: 81 106 +const_expr (122) + on left: 107, on right: 132 149 +exception (123) + on left: 108, on right: 109 157 +exception_field (124) + on left: 109, on right: 180 +func (125) + on left: 110, on right: 174 +func_fields (126) + on left: 111 112 113 114 115, on right: 110 115 +func_fields_import (127) + on left: 116, on right: 113 114 +func_fields_import1 (128) on left: 117 118 119, on right: 116 118 119 -func_result_body (127) +func_fields_import_result (129) on left: 120 121, on right: 117 121 -func_body (128) - on left: 122, on right: 120 -func_body1 (129) +func_fields_body (130) + on left: 122, on right: 111 112 +func_fields_body1 (131) on left: 123 124 125, on right: 122 124 125 -offset (130) - on left: 126 127, on right: 128 129 135 136 -elem (131) - on left: 128 129, on right: 167 -table (132) - on left: 130, on right: 164 -table_fields (133) - on left: 131 132 133 134, on right: 130 133 -data (134) - on left: 135 136, on right: 168 -memory (135) - on left: 137, on right: 165 -memory_fields (136) - on left: 138 139 140 141, on right: 137 140 -global (137) - on left: 142, on right: 163 -global_fields (138) - on left: 143 144 145, on right: 142 145 -import_desc (139) - on left: 146 147 148 149 150, on right: 151 -import (140) - on left: 151, on right: 170 -inline_import (141) - on left: 152, on right: 107 108 132 139 144 -export_desc (142) - on left: 153 154 155 156, on right: 157 -export (143) - on left: 157, on right: 171 -inline_export (144) - on left: 158, on right: 109 133 140 145 -type_def (145) - on left: 159 160, on right: 162 -start (146) - on left: 161, on right: 169 -module_field (147) - on left: 162 163 164 165 166 167 168 169 170 171, on right: 174 - 175 -module_fields_opt (148) - on left: 172 173, on right: 180 -module_fields (149) - on left: 174 175, on right: 173 175 177 -module (150) - on left: 176, on right: 196 -inline_module (151) - on left: 177, on right: 205 -script_var_opt (152) - on left: 178 179, on right: 183 184 197 -script_module (153) - on left: 180 181 182, on right: 176 185 186 187 188 -action (154) - on left: 183 184, on right: 189 190 191 192 193 194 -assertion (155) - on left: 185 186 187 188 189 190 191 192 193, on right: 195 -cmd (156) - on left: 194 195 196 197, on right: 198 199 -cmd_list (157) - on left: 198 199, on right: 199 204 -const (158) - on left: 200, on right: 202 -const_list (159) - on left: 201 202, on right: 183 189 202 -script (160) - on left: 203 204 205, on right: 206 -script_start (161) - on left: 206, on right: 0 +func_result_body (132) + on left: 126 127, on right: 123 127 +func_body (133) + on left: 128, on right: 126 +func_body1 (134) + on left: 129 130 131, on right: 128 130 131 +offset (135) + on left: 132 133, on right: 134 135 141 142 +elem (136) + on left: 134 135, on right: 175 +table (137) + on left: 136, on right: 172 +table_fields (138) + on left: 137 138 139 140, on right: 136 139 +data (139) + on left: 141 142, on right: 176 +memory (140) + on left: 143, on right: 173 +memory_fields (141) + on left: 144 145 146 147, on right: 143 146 +global (142) + on left: 148, on right: 171 +global_fields (143) + on left: 149 150 151, on right: 148 151 +import_desc (144) + on left: 152 153 154 155 156 157, on right: 158 +import (145) + on left: 158, on right: 178 +inline_import (146) + on left: 159, on right: 113 114 138 145 150 +export_desc (147) + on left: 160 161 162 163 164, on right: 165 +export (148) + on left: 165, on right: 179 +inline_export (149) + on left: 166, on right: 115 139 146 151 +type_def (150) + on left: 167 168, on right: 170 +start (151) + on left: 169, on right: 177 +module_field (152) + on left: 170 171 172 173 174 175 176 177 178 179 180, on right: + 183 184 +module_fields_opt (153) + on left: 181 182, on right: 189 +module_fields (154) + on left: 183 184, on right: 182 184 186 +module (155) + on left: 185, on right: 205 +inline_module (156) + on left: 186, on right: 214 +script_var_opt (157) + on left: 187 188, on right: 192 193 206 +script_module (158) + on left: 189 190 191, on right: 185 194 195 196 197 +action (159) + on left: 192 193, on right: 198 199 200 201 202 203 +assertion (160) + on left: 194 195 196 197 198 199 200 201 202, on right: 204 +cmd (161) + on left: 203 204 205 206, on right: 207 208 +cmd_list (162) + on left: 207 208, on right: 208 213 +const (163) + on left: 209, on right: 211 +const_list (164) + on left: 210 211, on right: 192 198 211 +script (165) + on left: 212 213 214, on right: 215 +script_start (166) + on left: 215, on right: 0 State 0 @@ -560,5575 +584,5853 @@ State 0 "(" shift, and go to state 1 - $default reduce using rule 203 (script) - - func go to state 2 - elem go to state 3 - table go to state 4 - data go to state 5 - memory go to state 6 - global go to state 7 - import go to state 8 - export go to state 9 - type_def go to state 10 - start go to state 11 - module_field go to state 12 - module_fields go to state 13 - module go to state 14 - inline_module go to state 15 - script_module go to state 16 - action go to state 17 - assertion go to state 18 - cmd go to state 19 - cmd_list go to state 20 - script go to state 21 - script_start go to state 22 + $default reduce using rule 212 (script) + + exception go to state 2 + exception_field go to state 3 + func go to state 4 + elem go to state 5 + table go to state 6 + data go to state 7 + memory go to state 8 + global go to state 9 + import go to state 10 + export go to state 11 + type_def go to state 12 + start go to state 13 + module_field go to state 14 + module_fields go to state 15 + module go to state 16 + inline_module go to state 17 + script_module go to state 18 + action go to state 19 + assertion go to state 20 + cmd go to state 21 + cmd_list go to state 22 + script go to state 23 + script_start go to state 24 State 1 - 104 func: "(" . FUNC bind_var_opt func_fields ")" - 128 elem: "(" . ELEM var offset var_list ")" - 129 | "(" . ELEM offset var_list ")" - 130 table: "(" . TABLE bind_var_opt table_fields ")" - 135 data: "(" . DATA var offset text_list_opt ")" - 136 | "(" . DATA offset text_list_opt ")" - 137 memory: "(" . MEMORY bind_var_opt memory_fields ")" - 142 global: "(" . GLOBAL bind_var_opt global_fields ")" - 151 import: "(" . IMPORT quoted_text quoted_text import_desc ")" - 157 export: "(" . EXPORT quoted_text export_desc ")" - 159 type_def: "(" . TYPE func_type ")" - 160 | "(" . TYPE bind_var func_type ")" - 161 start: "(" . START var ")" - 180 script_module: "(" . MODULE bind_var_opt module_fields_opt ")" - 181 | "(" . MODULE bind_var_opt BIN text_list ")" - 182 | "(" . MODULE bind_var_opt QUOTE text_list ")" - 183 action: "(" . INVOKE script_var_opt quoted_text const_list ")" - 184 | "(" . GET script_var_opt quoted_text ")" - 185 assertion: "(" . ASSERT_MALFORMED script_module quoted_text ")" - 186 | "(" . ASSERT_INVALID script_module quoted_text ")" - 187 | "(" . ASSERT_UNLINKABLE script_module quoted_text ")" - 188 | "(" . ASSERT_TRAP script_module quoted_text ")" - 189 | "(" . ASSERT_RETURN action const_list ")" - 190 | "(" . ASSERT_RETURN_CANONICAL_NAN action ")" - 191 | "(" . ASSERT_RETURN_ARITHMETIC_NAN action ")" - 192 | "(" . ASSERT_TRAP action quoted_text ")" - 193 | "(" . ASSERT_EXHAUSTION action quoted_text ")" - 197 cmd: "(" . REGISTER quoted_text script_var_opt ")" - - FUNC shift, and go to state 23 - START shift, and go to state 24 - TYPE shift, and go to state 25 - GLOBAL shift, and go to state 26 - TABLE shift, and go to state 27 - ELEM shift, and go to state 28 - MEMORY shift, and go to state 29 - DATA shift, and go to state 30 - IMPORT shift, and go to state 31 - EXPORT shift, and go to state 32 - MODULE shift, and go to state 33 - REGISTER shift, and go to state 34 - INVOKE shift, and go to state 35 - GET shift, and go to state 36 - ASSERT_MALFORMED shift, and go to state 37 - ASSERT_INVALID shift, and go to state 38 - ASSERT_UNLINKABLE shift, and go to state 39 - ASSERT_RETURN shift, and go to state 40 - ASSERT_RETURN_CANONICAL_NAN shift, and go to state 41 - ASSERT_RETURN_ARITHMETIC_NAN shift, and go to state 42 - ASSERT_TRAP shift, and go to state 43 - ASSERT_EXHAUSTION shift, and go to state 44 + 108 exception: "(" . EXCEPT bind_var_opt value_type_list ")" + 110 func: "(" . FUNC bind_var_opt func_fields ")" + 134 elem: "(" . ELEM var offset var_list ")" + 135 | "(" . ELEM offset var_list ")" + 136 table: "(" . TABLE bind_var_opt table_fields ")" + 141 data: "(" . DATA var offset text_list_opt ")" + 142 | "(" . DATA offset text_list_opt ")" + 143 memory: "(" . MEMORY bind_var_opt memory_fields ")" + 148 global: "(" . GLOBAL bind_var_opt global_fields ")" + 158 import: "(" . IMPORT quoted_text quoted_text import_desc ")" + 165 export: "(" . EXPORT quoted_text export_desc ")" + 167 type_def: "(" . TYPE func_type ")" + 168 | "(" . TYPE bind_var func_type ")" + 169 start: "(" . START var ")" + 189 script_module: "(" . MODULE bind_var_opt module_fields_opt ")" + 190 | "(" . MODULE bind_var_opt BIN text_list ")" + 191 | "(" . MODULE bind_var_opt QUOTE text_list ")" + 192 action: "(" . INVOKE script_var_opt quoted_text const_list ")" + 193 | "(" . GET script_var_opt quoted_text ")" + 194 assertion: "(" . ASSERT_MALFORMED script_module quoted_text ")" + 195 | "(" . ASSERT_INVALID script_module quoted_text ")" + 196 | "(" . ASSERT_UNLINKABLE script_module quoted_text ")" + 197 | "(" . ASSERT_TRAP script_module quoted_text ")" + 198 | "(" . ASSERT_RETURN action const_list ")" + 199 | "(" . ASSERT_RETURN_CANONICAL_NAN action ")" + 200 | "(" . ASSERT_RETURN_ARITHMETIC_NAN action ")" + 201 | "(" . ASSERT_TRAP action quoted_text ")" + 202 | "(" . ASSERT_EXHAUSTION action quoted_text ")" + 206 cmd: "(" . REGISTER quoted_text script_var_opt ")" + + FUNC shift, and go to state 25 + START shift, and go to state 26 + TYPE shift, and go to state 27 + GLOBAL shift, and go to state 28 + TABLE shift, and go to state 29 + ELEM shift, and go to state 30 + MEMORY shift, and go to state 31 + DATA shift, and go to state 32 + IMPORT shift, and go to state 33 + EXPORT shift, and go to state 34 + EXCEPT shift, and go to state 35 + MODULE shift, and go to state 36 + REGISTER shift, and go to state 37 + INVOKE shift, and go to state 38 + GET shift, and go to state 39 + ASSERT_MALFORMED shift, and go to state 40 + ASSERT_INVALID shift, and go to state 41 + ASSERT_UNLINKABLE shift, and go to state 42 + ASSERT_RETURN shift, and go to state 43 + ASSERT_RETURN_CANONICAL_NAN shift, and go to state 44 + ASSERT_RETURN_ARITHMETIC_NAN shift, and go to state 45 + ASSERT_TRAP shift, and go to state 46 + ASSERT_EXHAUSTION shift, and go to state 47 State 2 - 166 module_field: func . + 109 exception_field: exception . - $default reduce using rule 166 (module_field) + $default reduce using rule 109 (exception_field) State 3 - 167 module_field: elem . + 180 module_field: exception_field . - $default reduce using rule 167 (module_field) + $default reduce using rule 180 (module_field) State 4 - 164 module_field: table . + 174 module_field: func . - $default reduce using rule 164 (module_field) + $default reduce using rule 174 (module_field) State 5 - 168 module_field: data . + 175 module_field: elem . - $default reduce using rule 168 (module_field) + $default reduce using rule 175 (module_field) State 6 - 165 module_field: memory . + 172 module_field: table . - $default reduce using rule 165 (module_field) + $default reduce using rule 172 (module_field) State 7 - 163 module_field: global . + 176 module_field: data . - $default reduce using rule 163 (module_field) + $default reduce using rule 176 (module_field) State 8 - 170 module_field: import . + 173 module_field: memory . - $default reduce using rule 170 (module_field) + $default reduce using rule 173 (module_field) State 9 - 171 module_field: export . + 171 module_field: global . $default reduce using rule 171 (module_field) State 10 - 162 module_field: type_def . + 178 module_field: import . - $default reduce using rule 162 (module_field) + $default reduce using rule 178 (module_field) State 11 - 169 module_field: start . + 179 module_field: export . - $default reduce using rule 169 (module_field) + $default reduce using rule 179 (module_field) State 12 - 174 module_fields: module_field . + 170 module_field: type_def . - $default reduce using rule 174 (module_fields) + $default reduce using rule 170 (module_field) State 13 - 175 module_fields: module_fields . module_field - 177 inline_module: module_fields . - - "(" shift, and go to state 45 - - $default reduce using rule 177 (inline_module) + 177 module_field: start . - func go to state 2 - elem go to state 3 - table go to state 4 - data go to state 5 - memory go to state 6 - global go to state 7 - import go to state 8 - export go to state 9 - type_def go to state 10 - start go to state 11 - module_field go to state 46 + $default reduce using rule 177 (module_field) State 14 - 196 cmd: module . + 183 module_fields: module_field . - $default reduce using rule 196 (cmd) + $default reduce using rule 183 (module_fields) State 15 - 205 script: inline_module . + 184 module_fields: module_fields . module_field + 186 inline_module: module_fields . - $default reduce using rule 205 (script) + "(" shift, and go to state 48 + + $default reduce using rule 186 (inline_module) + + exception go to state 2 + exception_field go to state 3 + func go to state 4 + elem go to state 5 + table go to state 6 + data go to state 7 + memory go to state 8 + global go to state 9 + import go to state 10 + export go to state 11 + type_def go to state 12 + start go to state 13 + module_field go to state 49 State 16 - 176 module: script_module . + 205 cmd: module . - $default reduce using rule 176 (module) + $default reduce using rule 205 (cmd) State 17 - 194 cmd: action . + 214 script: inline_module . - $default reduce using rule 194 (cmd) + $default reduce using rule 214 (script) State 18 - 195 cmd: assertion . + 185 module: script_module . - $default reduce using rule 195 (cmd) + $default reduce using rule 185 (module) State 19 - 198 cmd_list: cmd . + 203 cmd: action . - $default reduce using rule 198 (cmd_list) + $default reduce using rule 203 (cmd) State 20 - 199 cmd_list: cmd_list . cmd - 204 script: cmd_list . - - "(" shift, and go to state 47 - - $default reduce using rule 204 (script) + 204 cmd: assertion . - module go to state 14 - script_module go to state 16 - action go to state 17 - assertion go to state 18 - cmd go to state 48 + $default reduce using rule 204 (cmd) State 21 - 206 script_start: script . + 207 cmd_list: cmd . - $default reduce using rule 206 (script_start) + $default reduce using rule 207 (cmd_list) State 22 - 0 $accept: script_start . "EOF" + 208 cmd_list: cmd_list . cmd + 213 script: cmd_list . - "EOF" shift, and go to state 49 + "(" shift, and go to state 50 + $default reduce using rule 213 (script) -State 23 + module go to state 16 + script_module go to state 18 + action go to state 19 + assertion go to state 20 + cmd go to state 51 - 104 func: "(" FUNC . bind_var_opt func_fields ")" - VAR shift, and go to state 50 +State 23 - $default reduce using rule 30 (bind_var_opt) + 215 script_start: script . - bind_var_opt go to state 51 - bind_var go to state 52 + $default reduce using rule 215 (script_start) State 24 - 161 start: "(" START . var ")" - - NAT shift, and go to state 53 - VAR shift, and go to state 54 + 0 $accept: script_start . "EOF" - nat go to state 55 - var go to state 56 + "EOF" shift, and go to state 52 State 25 - 159 type_def: "(" TYPE . func_type ")" - 160 | "(" TYPE . bind_var func_type ")" + 110 func: "(" FUNC . bind_var_opt func_fields ")" - "(" shift, and go to state 57 - VAR shift, and go to state 50 + VAR shift, and go to state 53 - func_type go to state 58 - bind_var go to state 59 + $default reduce using rule 30 (bind_var_opt) + bind_var_opt go to state 54 + bind_var go to state 55 -State 26 - 142 global: "(" GLOBAL . bind_var_opt global_fields ")" +State 26 - VAR shift, and go to state 50 + 169 start: "(" START . var ")" - $default reduce using rule 30 (bind_var_opt) + NAT shift, and go to state 56 + VAR shift, and go to state 57 - bind_var_opt go to state 60 - bind_var go to state 52 + nat go to state 58 + var go to state 59 State 27 - 130 table: "(" TABLE . bind_var_opt table_fields ")" + 167 type_def: "(" TYPE . func_type ")" + 168 | "(" TYPE . bind_var func_type ")" - VAR shift, and go to state 50 - - $default reduce using rule 30 (bind_var_opt) + "(" shift, and go to state 60 + VAR shift, and go to state 53 - bind_var_opt go to state 61 - bind_var go to state 52 + func_type go to state 61 + bind_var go to state 62 State 28 - 128 elem: "(" ELEM . var offset var_list ")" - 129 | "(" ELEM . offset var_list ")" + 148 global: "(" GLOBAL . bind_var_opt global_fields ")" - "(" shift, and go to state 62 - NAT shift, and go to state 53 - VAR shift, and go to state 54 + VAR shift, and go to state 53 - nat go to state 55 - var go to state 63 - expr go to state 64 - offset go to state 65 + $default reduce using rule 30 (bind_var_opt) + + bind_var_opt go to state 63 + bind_var go to state 55 State 29 - 137 memory: "(" MEMORY . bind_var_opt memory_fields ")" + 136 table: "(" TABLE . bind_var_opt table_fields ")" - VAR shift, and go to state 50 + VAR shift, and go to state 53 $default reduce using rule 30 (bind_var_opt) - bind_var_opt go to state 66 - bind_var go to state 52 + bind_var_opt go to state 64 + bind_var go to state 55 State 30 - 135 data: "(" DATA . var offset text_list_opt ")" - 136 | "(" DATA . offset text_list_opt ")" + 134 elem: "(" ELEM . var offset var_list ")" + 135 | "(" ELEM . offset var_list ")" - "(" shift, and go to state 62 - NAT shift, and go to state 53 - VAR shift, and go to state 54 + "(" shift, and go to state 65 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 67 - expr go to state 64 + nat go to state 58 + var go to state 66 + expr go to state 67 offset go to state 68 State 31 - 151 import: "(" IMPORT . quoted_text quoted_text import_desc ")" + 143 memory: "(" MEMORY . bind_var_opt memory_fields ")" - TEXT shift, and go to state 69 + VAR shift, and go to state 53 + + $default reduce using rule 30 (bind_var_opt) - quoted_text go to state 70 + bind_var_opt go to state 69 + bind_var go to state 55 State 32 - 157 export: "(" EXPORT . quoted_text export_desc ")" + 141 data: "(" DATA . var offset text_list_opt ")" + 142 | "(" DATA . offset text_list_opt ")" - TEXT shift, and go to state 69 + "(" shift, and go to state 65 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - quoted_text go to state 71 + nat go to state 58 + var go to state 70 + expr go to state 67 + offset go to state 71 State 33 - 180 script_module: "(" MODULE . bind_var_opt module_fields_opt ")" - 181 | "(" MODULE . bind_var_opt BIN text_list ")" - 182 | "(" MODULE . bind_var_opt QUOTE text_list ")" + 158 import: "(" IMPORT . quoted_text quoted_text import_desc ")" - VAR shift, and go to state 50 + TEXT shift, and go to state 72 - $default reduce using rule 30 (bind_var_opt) - - bind_var_opt go to state 72 - bind_var go to state 52 + quoted_text go to state 73 State 34 - 197 cmd: "(" REGISTER . quoted_text script_var_opt ")" + 165 export: "(" EXPORT . quoted_text export_desc ")" - TEXT shift, and go to state 69 + TEXT shift, and go to state 72 - quoted_text go to state 73 + quoted_text go to state 74 State 35 - 183 action: "(" INVOKE . script_var_opt quoted_text const_list ")" + 108 exception: "(" EXCEPT . bind_var_opt value_type_list ")" - VAR shift, and go to state 74 + VAR shift, and go to state 53 - $default reduce using rule 178 (script_var_opt) + $default reduce using rule 30 (bind_var_opt) - script_var_opt go to state 75 + bind_var_opt go to state 75 + bind_var go to state 55 State 36 - 184 action: "(" GET . script_var_opt quoted_text ")" + 189 script_module: "(" MODULE . bind_var_opt module_fields_opt ")" + 190 | "(" MODULE . bind_var_opt BIN text_list ")" + 191 | "(" MODULE . bind_var_opt QUOTE text_list ")" - VAR shift, and go to state 74 + VAR shift, and go to state 53 - $default reduce using rule 178 (script_var_opt) + $default reduce using rule 30 (bind_var_opt) - script_var_opt go to state 76 + bind_var_opt go to state 76 + bind_var go to state 55 State 37 - 185 assertion: "(" ASSERT_MALFORMED . script_module quoted_text ")" + 206 cmd: "(" REGISTER . quoted_text script_var_opt ")" - "(" shift, and go to state 77 + TEXT shift, and go to state 72 - script_module go to state 78 + quoted_text go to state 77 State 38 - 186 assertion: "(" ASSERT_INVALID . script_module quoted_text ")" + 192 action: "(" INVOKE . script_var_opt quoted_text const_list ")" - "(" shift, and go to state 77 + VAR shift, and go to state 78 - script_module go to state 79 + $default reduce using rule 187 (script_var_opt) + + script_var_opt go to state 79 State 39 - 187 assertion: "(" ASSERT_UNLINKABLE . script_module quoted_text ")" + 193 action: "(" GET . script_var_opt quoted_text ")" + + VAR shift, and go to state 78 - "(" shift, and go to state 77 + $default reduce using rule 187 (script_var_opt) - script_module go to state 80 + script_var_opt go to state 80 State 40 - 189 assertion: "(" ASSERT_RETURN . action const_list ")" + 194 assertion: "(" ASSERT_MALFORMED . script_module quoted_text ")" "(" shift, and go to state 81 - action go to state 82 + script_module go to state 82 State 41 - 190 assertion: "(" ASSERT_RETURN_CANONICAL_NAN . action ")" + 195 assertion: "(" ASSERT_INVALID . script_module quoted_text ")" "(" shift, and go to state 81 - action go to state 83 + script_module go to state 83 State 42 - 191 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN . action ")" + 196 assertion: "(" ASSERT_UNLINKABLE . script_module quoted_text ")" "(" shift, and go to state 81 - action go to state 84 + script_module go to state 84 State 43 - 188 assertion: "(" ASSERT_TRAP . script_module quoted_text ")" - 192 | "(" ASSERT_TRAP . action quoted_text ")" + 198 assertion: "(" ASSERT_RETURN . action const_list ")" "(" shift, and go to state 85 - script_module go to state 86 - action go to state 87 + action go to state 86 State 44 - 193 assertion: "(" ASSERT_EXHAUSTION . action quoted_text ")" + 199 assertion: "(" ASSERT_RETURN_CANONICAL_NAN . action ")" - "(" shift, and go to state 81 + "(" shift, and go to state 85 - action go to state 88 + action go to state 87 State 45 - 104 func: "(" . FUNC bind_var_opt func_fields ")" - 128 elem: "(" . ELEM var offset var_list ")" - 129 | "(" . ELEM offset var_list ")" - 130 table: "(" . TABLE bind_var_opt table_fields ")" - 135 data: "(" . DATA var offset text_list_opt ")" - 136 | "(" . DATA offset text_list_opt ")" - 137 memory: "(" . MEMORY bind_var_opt memory_fields ")" - 142 global: "(" . GLOBAL bind_var_opt global_fields ")" - 151 import: "(" . IMPORT quoted_text quoted_text import_desc ")" - 157 export: "(" . EXPORT quoted_text export_desc ")" - 159 type_def: "(" . TYPE func_type ")" - 160 | "(" . TYPE bind_var func_type ")" - 161 start: "(" . START var ")" - - FUNC shift, and go to state 23 - START shift, and go to state 24 - TYPE shift, and go to state 25 - GLOBAL shift, and go to state 26 - TABLE shift, and go to state 27 - ELEM shift, and go to state 28 - MEMORY shift, and go to state 29 - DATA shift, and go to state 30 - IMPORT shift, and go to state 31 - EXPORT shift, and go to state 32 + 200 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN . action ")" + + "(" shift, and go to state 85 + + action go to state 88 State 46 - 175 module_fields: module_fields module_field . + 197 assertion: "(" ASSERT_TRAP . script_module quoted_text ")" + 201 | "(" ASSERT_TRAP . action quoted_text ")" + + "(" shift, and go to state 89 - $default reduce using rule 175 (module_fields) + script_module go to state 90 + action go to state 91 State 47 - 180 script_module: "(" . MODULE bind_var_opt module_fields_opt ")" - 181 | "(" . MODULE bind_var_opt BIN text_list ")" - 182 | "(" . MODULE bind_var_opt QUOTE text_list ")" - 183 action: "(" . INVOKE script_var_opt quoted_text const_list ")" - 184 | "(" . GET script_var_opt quoted_text ")" - 185 assertion: "(" . ASSERT_MALFORMED script_module quoted_text ")" - 186 | "(" . ASSERT_INVALID script_module quoted_text ")" - 187 | "(" . ASSERT_UNLINKABLE script_module quoted_text ")" - 188 | "(" . ASSERT_TRAP script_module quoted_text ")" - 189 | "(" . ASSERT_RETURN action const_list ")" - 190 | "(" . ASSERT_RETURN_CANONICAL_NAN action ")" - 191 | "(" . ASSERT_RETURN_ARITHMETIC_NAN action ")" - 192 | "(" . ASSERT_TRAP action quoted_text ")" - 193 | "(" . ASSERT_EXHAUSTION action quoted_text ")" - 197 cmd: "(" . REGISTER quoted_text script_var_opt ")" - - MODULE shift, and go to state 33 - REGISTER shift, and go to state 34 - INVOKE shift, and go to state 35 - GET shift, and go to state 36 - ASSERT_MALFORMED shift, and go to state 37 - ASSERT_INVALID shift, and go to state 38 - ASSERT_UNLINKABLE shift, and go to state 39 - ASSERT_RETURN shift, and go to state 40 - ASSERT_RETURN_CANONICAL_NAN shift, and go to state 41 - ASSERT_RETURN_ARITHMETIC_NAN shift, and go to state 42 - ASSERT_TRAP shift, and go to state 43 - ASSERT_EXHAUSTION shift, and go to state 44 + 202 assertion: "(" ASSERT_EXHAUSTION . action quoted_text ")" + "(" shift, and go to state 85 -State 48 + action go to state 92 - 199 cmd_list: cmd_list cmd . - $default reduce using rule 199 (cmd_list) +State 48 + + 108 exception: "(" . EXCEPT bind_var_opt value_type_list ")" + 110 func: "(" . FUNC bind_var_opt func_fields ")" + 134 elem: "(" . ELEM var offset var_list ")" + 135 | "(" . ELEM offset var_list ")" + 136 table: "(" . TABLE bind_var_opt table_fields ")" + 141 data: "(" . DATA var offset text_list_opt ")" + 142 | "(" . DATA offset text_list_opt ")" + 143 memory: "(" . MEMORY bind_var_opt memory_fields ")" + 148 global: "(" . GLOBAL bind_var_opt global_fields ")" + 158 import: "(" . IMPORT quoted_text quoted_text import_desc ")" + 165 export: "(" . EXPORT quoted_text export_desc ")" + 167 type_def: "(" . TYPE func_type ")" + 168 | "(" . TYPE bind_var func_type ")" + 169 start: "(" . START var ")" + + FUNC shift, and go to state 25 + START shift, and go to state 26 + TYPE shift, and go to state 27 + GLOBAL shift, and go to state 28 + TABLE shift, and go to state 29 + ELEM shift, and go to state 30 + MEMORY shift, and go to state 31 + DATA shift, and go to state 32 + IMPORT shift, and go to state 33 + EXPORT shift, and go to state 34 + EXCEPT shift, and go to state 35 State 49 - 0 $accept: script_start "EOF" . + 184 module_fields: module_fields module_field . - $default accept + $default reduce using rule 184 (module_fields) State 50 - 32 bind_var: VAR . - - $default reduce using rule 32 (bind_var) + 189 script_module: "(" . MODULE bind_var_opt module_fields_opt ")" + 190 | "(" . MODULE bind_var_opt BIN text_list ")" + 191 | "(" . MODULE bind_var_opt QUOTE text_list ")" + 192 action: "(" . INVOKE script_var_opt quoted_text const_list ")" + 193 | "(" . GET script_var_opt quoted_text ")" + 194 assertion: "(" . ASSERT_MALFORMED script_module quoted_text ")" + 195 | "(" . ASSERT_INVALID script_module quoted_text ")" + 196 | "(" . ASSERT_UNLINKABLE script_module quoted_text ")" + 197 | "(" . ASSERT_TRAP script_module quoted_text ")" + 198 | "(" . ASSERT_RETURN action const_list ")" + 199 | "(" . ASSERT_RETURN_CANONICAL_NAN action ")" + 200 | "(" . ASSERT_RETURN_ARITHMETIC_NAN action ")" + 201 | "(" . ASSERT_TRAP action quoted_text ")" + 202 | "(" . ASSERT_EXHAUSTION action quoted_text ")" + 206 cmd: "(" . REGISTER quoted_text script_var_opt ")" + + MODULE shift, and go to state 36 + REGISTER shift, and go to state 37 + INVOKE shift, and go to state 38 + GET shift, and go to state 39 + ASSERT_MALFORMED shift, and go to state 40 + ASSERT_INVALID shift, and go to state 41 + ASSERT_UNLINKABLE shift, and go to state 42 + ASSERT_RETURN shift, and go to state 43 + ASSERT_RETURN_CANONICAL_NAN shift, and go to state 44 + ASSERT_RETURN_ARITHMETIC_NAN shift, and go to state 45 + ASSERT_TRAP shift, and go to state 46 + ASSERT_EXHAUSTION shift, and go to state 47 State 51 - 104 func: "(" FUNC bind_var_opt . func_fields ")" - - "(" shift, and go to state 89 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - type_use go to state 120 - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 128 - func_fields go to state 129 - func_fields_body go to state 130 - func_fields_body1 go to state 131 - func_result_body go to state 132 - func_body go to state 133 - func_body1 go to state 134 - inline_import go to state 135 - inline_export go to state 136 + 208 cmd_list: cmd_list cmd . + + $default reduce using rule 208 (cmd_list) State 52 - 31 bind_var_opt: bind_var . + 0 $accept: script_start "EOF" . - $default reduce using rule 31 (bind_var_opt) + $default accept State 53 - 22 nat: NAT . + 32 bind_var: VAR . - $default reduce using rule 22 (nat) + $default reduce using rule 32 (bind_var) State 54 - 27 var: VAR . - - $default reduce using rule 27 (var) + 110 func: "(" FUNC bind_var_opt . func_fields ")" + + "(" shift, and go to state 93 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + type_use go to state 124 + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 132 + func_fields go to state 133 + func_fields_body go to state 134 + func_fields_body1 go to state 135 + func_result_body go to state 136 + func_body go to state 137 + func_body1 go to state 138 + inline_import go to state 139 + inline_export go to state 140 State 55 - 26 var: nat . + 31 bind_var_opt: bind_var . - $default reduce using rule 26 (var) + $default reduce using rule 31 (bind_var_opt) State 56 - 161 start: "(" START var . ")" + 22 nat: NAT . - ")" shift, and go to state 137 + $default reduce using rule 22 (nat) State 57 - 11 func_type: "(" . FUNC func_sig ")" + 27 var: VAR . - FUNC shift, and go to state 138 + $default reduce using rule 27 (var) State 58 - 159 type_def: "(" TYPE func_type . ")" + 26 var: nat . - ")" shift, and go to state 139 + $default reduce using rule 26 (var) State 59 - 160 type_def: "(" TYPE bind_var . func_type ")" - - "(" shift, and go to state 57 + 169 start: "(" START var . ")" - func_type go to state 140 + ")" shift, and go to state 141 State 60 - 142 global: "(" GLOBAL bind_var_opt . global_fields ")" - - "(" shift, and go to state 141 - VALUE_TYPE shift, and go to state 142 + 11 func_type: "(" . FUNC func_sig ")" - global_type go to state 143 - global_fields go to state 144 - inline_import go to state 145 - inline_export go to state 146 + FUNC shift, and go to state 142 State 61 - 130 table: "(" TABLE bind_var_opt . table_fields ")" + 167 type_def: "(" TYPE func_type . ")" - "(" shift, and go to state 147 - NAT shift, and go to state 53 - ANYFUNC shift, and go to state 148 - - elem_type go to state 149 - table_sig go to state 150 - limits go to state 151 - nat go to state 152 - table_fields go to state 153 - inline_import go to state 154 - inline_export go to state 155 + ")" shift, and go to state 143 State 62 - 80 expr: "(" . expr1 ")" - 126 offset: "(" . OFFSET const_expr ")" - - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 156 - IF shift, and go to state 157 - LOOP shift, and go to state 158 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - OFFSET shift, and go to state 159 - - plain_instr go to state 160 - expr1 go to state 161 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 162 + 168 type_def: "(" TYPE bind_var . func_type ")" + + "(" shift, and go to state 60 + + func_type go to state 144 State 63 - 128 elem: "(" ELEM var . offset var_list ")" + 148 global: "(" GLOBAL bind_var_opt . global_fields ")" - "(" shift, and go to state 62 + "(" shift, and go to state 145 + VALUE_TYPE shift, and go to state 146 - expr go to state 64 - offset go to state 163 + global_type go to state 147 + global_fields go to state 148 + inline_import go to state 149 + inline_export go to state 150 State 64 - 127 offset: expr . + 136 table: "(" TABLE bind_var_opt . table_fields ")" - $default reduce using rule 127 (offset) + "(" shift, and go to state 151 + NAT shift, and go to state 56 + ANYFUNC shift, and go to state 152 + elem_type go to state 153 + table_sig go to state 154 + limits go to state 155 + nat go to state 156 + table_fields go to state 157 + inline_import go to state 158 + inline_export go to state 159 -State 65 - - 129 elem: "(" ELEM offset . var_list ")" - $default reduce using rule 28 (var_list) +State 65 - var_list go to state 164 + 80 expr: "(" . expr1 ")" + 132 offset: "(" . OFFSET const_expr ")" + + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 160 + IF shift, and go to state 161 + LOOP shift, and go to state 162 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + OFFSET shift, and go to state 163 + + plain_instr go to state 164 + expr1 go to state 165 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 166 State 66 - 137 memory: "(" MEMORY bind_var_opt . memory_fields ")" + 134 elem: "(" ELEM var . offset var_list ")" - "(" shift, and go to state 165 - NAT shift, and go to state 53 + "(" shift, and go to state 65 - memory_sig go to state 166 - limits go to state 167 - nat go to state 152 - memory_fields go to state 168 - inline_import go to state 169 - inline_export go to state 170 + expr go to state 67 + offset go to state 167 State 67 - 135 data: "(" DATA var . offset text_list_opt ")" - - "(" shift, and go to state 62 + 133 offset: expr . - expr go to state 64 - offset go to state 171 + $default reduce using rule 133 (offset) State 68 - 136 data: "(" DATA offset . text_list_opt ")" + 135 elem: "(" ELEM offset . var_list ")" - TEXT shift, and go to state 172 - - $default reduce using rule 3 (text_list_opt) + $default reduce using rule 28 (var_list) - text_list go to state 173 - text_list_opt go to state 174 + var_list go to state 168 State 69 - 5 quoted_text: TEXT . + 143 memory: "(" MEMORY bind_var_opt . memory_fields ")" - $default reduce using rule 5 (quoted_text) + "(" shift, and go to state 169 + NAT shift, and go to state 56 + + memory_sig go to state 170 + limits go to state 171 + nat go to state 156 + memory_fields go to state 172 + inline_import go to state 173 + inline_export go to state 174 State 70 - 151 import: "(" IMPORT quoted_text . quoted_text import_desc ")" + 141 data: "(" DATA var . offset text_list_opt ")" - TEXT shift, and go to state 69 + "(" shift, and go to state 65 - quoted_text go to state 175 + expr go to state 67 + offset go to state 175 State 71 - 157 export: "(" EXPORT quoted_text . export_desc ")" + 142 data: "(" DATA offset . text_list_opt ")" - "(" shift, and go to state 176 - - export_desc go to state 177 + TEXT shift, and go to state 176 + $default reduce using rule 3 (text_list_opt) -State 72 + text_list go to state 177 + text_list_opt go to state 178 - 180 script_module: "(" MODULE bind_var_opt . module_fields_opt ")" - 181 | "(" MODULE bind_var_opt . BIN text_list ")" - 182 | "(" MODULE bind_var_opt . QUOTE text_list ")" - "(" shift, and go to state 45 - BIN shift, and go to state 178 - QUOTE shift, and go to state 179 +State 72 - $default reduce using rule 172 (module_fields_opt) + 5 quoted_text: TEXT . - func go to state 2 - elem go to state 3 - table go to state 4 - data go to state 5 - memory go to state 6 - global go to state 7 - import go to state 8 - export go to state 9 - type_def go to state 10 - start go to state 11 - module_field go to state 12 - module_fields_opt go to state 180 - module_fields go to state 181 + $default reduce using rule 5 (quoted_text) State 73 - 197 cmd: "(" REGISTER quoted_text . script_var_opt ")" + 158 import: "(" IMPORT quoted_text . quoted_text import_desc ")" - VAR shift, and go to state 74 + TEXT shift, and go to state 72 - $default reduce using rule 178 (script_var_opt) - - script_var_opt go to state 182 + quoted_text go to state 179 State 74 - 179 script_var_opt: VAR . + 165 export: "(" EXPORT quoted_text . export_desc ")" + + "(" shift, and go to state 180 - $default reduce using rule 179 (script_var_opt) + export_desc go to state 181 State 75 - 183 action: "(" INVOKE script_var_opt . quoted_text const_list ")" + 108 exception: "(" EXCEPT bind_var_opt . value_type_list ")" - TEXT shift, and go to state 69 + $default reduce using rule 6 (value_type_list) - quoted_text go to state 183 + value_type_list go to state 182 State 76 - 184 action: "(" GET script_var_opt . quoted_text ")" + 189 script_module: "(" MODULE bind_var_opt . module_fields_opt ")" + 190 | "(" MODULE bind_var_opt . BIN text_list ")" + 191 | "(" MODULE bind_var_opt . QUOTE text_list ")" + + "(" shift, and go to state 48 + BIN shift, and go to state 183 + QUOTE shift, and go to state 184 + + $default reduce using rule 181 (module_fields_opt) + + exception go to state 2 + exception_field go to state 3 + func go to state 4 + elem go to state 5 + table go to state 6 + data go to state 7 + memory go to state 8 + global go to state 9 + import go to state 10 + export go to state 11 + type_def go to state 12 + start go to state 13 + module_field go to state 14 + module_fields_opt go to state 185 + module_fields go to state 186 - TEXT shift, and go to state 69 - quoted_text go to state 184 +State 77 + 206 cmd: "(" REGISTER quoted_text . script_var_opt ")" -State 77 + VAR shift, and go to state 78 - 180 script_module: "(" . MODULE bind_var_opt module_fields_opt ")" - 181 | "(" . MODULE bind_var_opt BIN text_list ")" - 182 | "(" . MODULE bind_var_opt QUOTE text_list ")" + $default reduce using rule 187 (script_var_opt) - MODULE shift, and go to state 33 + script_var_opt go to state 187 State 78 - 185 assertion: "(" ASSERT_MALFORMED script_module . quoted_text ")" - - TEXT shift, and go to state 69 + 188 script_var_opt: VAR . - quoted_text go to state 185 + $default reduce using rule 188 (script_var_opt) State 79 - 186 assertion: "(" ASSERT_INVALID script_module . quoted_text ")" + 192 action: "(" INVOKE script_var_opt . quoted_text const_list ")" - TEXT shift, and go to state 69 + TEXT shift, and go to state 72 - quoted_text go to state 186 + quoted_text go to state 188 State 80 - 187 assertion: "(" ASSERT_UNLINKABLE script_module . quoted_text ")" + 193 action: "(" GET script_var_opt . quoted_text ")" - TEXT shift, and go to state 69 + TEXT shift, and go to state 72 - quoted_text go to state 187 + quoted_text go to state 189 State 81 - 183 action: "(" . INVOKE script_var_opt quoted_text const_list ")" - 184 | "(" . GET script_var_opt quoted_text ")" + 189 script_module: "(" . MODULE bind_var_opt module_fields_opt ")" + 190 | "(" . MODULE bind_var_opt BIN text_list ")" + 191 | "(" . MODULE bind_var_opt QUOTE text_list ")" - INVOKE shift, and go to state 35 - GET shift, and go to state 36 + MODULE shift, and go to state 36 State 82 - 189 assertion: "(" ASSERT_RETURN action . const_list ")" + 194 assertion: "(" ASSERT_MALFORMED script_module . quoted_text ")" - $default reduce using rule 201 (const_list) + TEXT shift, and go to state 72 - const_list go to state 188 + quoted_text go to state 190 State 83 - 190 assertion: "(" ASSERT_RETURN_CANONICAL_NAN action . ")" + 195 assertion: "(" ASSERT_INVALID script_module . quoted_text ")" - ")" shift, and go to state 189 + TEXT shift, and go to state 72 + + quoted_text go to state 191 State 84 - 191 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN action . ")" + 196 assertion: "(" ASSERT_UNLINKABLE script_module . quoted_text ")" - ")" shift, and go to state 190 + TEXT shift, and go to state 72 + + quoted_text go to state 192 State 85 - 180 script_module: "(" . MODULE bind_var_opt module_fields_opt ")" - 181 | "(" . MODULE bind_var_opt BIN text_list ")" - 182 | "(" . MODULE bind_var_opt QUOTE text_list ")" - 183 action: "(" . INVOKE script_var_opt quoted_text const_list ")" - 184 | "(" . GET script_var_opt quoted_text ")" + 192 action: "(" . INVOKE script_var_opt quoted_text const_list ")" + 193 | "(" . GET script_var_opt quoted_text ")" - MODULE shift, and go to state 33 - INVOKE shift, and go to state 35 - GET shift, and go to state 36 + INVOKE shift, and go to state 38 + GET shift, and go to state 39 State 86 - 188 assertion: "(" ASSERT_TRAP script_module . quoted_text ")" + 198 assertion: "(" ASSERT_RETURN action . const_list ")" - TEXT shift, and go to state 69 + $default reduce using rule 210 (const_list) - quoted_text go to state 191 + const_list go to state 193 State 87 - 192 assertion: "(" ASSERT_TRAP action . quoted_text ")" - - TEXT shift, and go to state 69 + 199 assertion: "(" ASSERT_RETURN_CANONICAL_NAN action . ")" - quoted_text go to state 192 + ")" shift, and go to state 194 State 88 - 193 assertion: "(" ASSERT_EXHAUSTION action . quoted_text ")" - - TEXT shift, and go to state 69 + 200 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN action . ")" - quoted_text go to state 193 + ")" shift, and go to state 195 State 89 + 189 script_module: "(" . MODULE bind_var_opt module_fields_opt ")" + 190 | "(" . MODULE bind_var_opt BIN text_list ")" + 191 | "(" . MODULE bind_var_opt QUOTE text_list ")" + 192 action: "(" . INVOKE script_var_opt quoted_text const_list ")" + 193 | "(" . GET script_var_opt quoted_text ")" + + MODULE shift, and go to state 36 + INVOKE shift, and go to state 38 + GET shift, and go to state 39 + + +State 90 + + 197 assertion: "(" ASSERT_TRAP script_module . quoted_text ")" + + TEXT shift, and go to state 72 + + quoted_text go to state 196 + + +State 91 + + 201 assertion: "(" ASSERT_TRAP action . quoted_text ")" + + TEXT shift, and go to state 72 + + quoted_text go to state 197 + + +State 92 + + 202 assertion: "(" ASSERT_EXHAUSTION action . quoted_text ")" + + TEXT shift, and go to state 72 + + quoted_text go to state 198 + + +State 93 + 21 type_use: "(" . TYPE var ")" 80 expr: "(" . expr1 ")" - 118 func_fields_body1: "(" . PARAM value_type_list ")" func_fields_body1 - 119 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_body1 - 121 func_result_body: "(" . RESULT value_type_list ")" func_result_body - 124 func_body1: "(" . LOCAL value_type_list ")" func_body1 - 125 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body1 - 152 inline_import: "(" . IMPORT quoted_text quoted_text ")" - 158 inline_export: "(" . EXPORT quoted_text ")" - - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 156 - IF shift, and go to state 157 - LOOP shift, and go to state 158 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - TYPE shift, and go to state 194 - PARAM shift, and go to state 195 - RESULT shift, and go to state 196 - LOCAL shift, and go to state 197 - IMPORT shift, and go to state 198 - EXPORT shift, and go to state 199 - - plain_instr go to state 160 - expr1 go to state 161 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 162 + 124 func_fields_body1: "(" . PARAM value_type_list ")" func_fields_body1 + 125 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_body1 + 127 func_result_body: "(" . RESULT value_type_list ")" func_result_body + 130 func_body1: "(" . LOCAL value_type_list ")" func_body1 + 131 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body1 + 159 inline_import: "(" . IMPORT quoted_text quoted_text ")" + 166 inline_export: "(" . EXPORT quoted_text ")" + + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 160 + IF shift, and go to state 161 + LOOP shift, and go to state 162 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + TYPE shift, and go to state 199 + PARAM shift, and go to state 200 + RESULT shift, and go to state 201 + LOCAL shift, and go to state 202 + IMPORT shift, and go to state 203 + EXPORT shift, and go to state 204 + + plain_instr go to state 164 + expr1 go to state 165 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 166 -State 90 +State 94 43 plain_instr: NOP . $default reduce using rule 43 (plain_instr) -State 91 +State 95 44 plain_instr: DROP . $default reduce using rule 44 (plain_instr) -State 92 +State 96 68 block_instr: BLOCK . labeling_opt block END labeling_opt - VAR shift, and go to state 50 + VAR shift, and go to state 53 $default reduce using rule 33 (labeling_opt) - bind_var go to state 200 - labeling_opt go to state 201 + bind_var go to state 205 + labeling_opt go to state 206 -State 93 +State 97 70 block_instr: IF . labeling_opt block END labeling_opt 71 | IF . labeling_opt block ELSE labeling_opt instr_list END labeling_opt - VAR shift, and go to state 50 + VAR shift, and go to state 53 $default reduce using rule 33 (labeling_opt) - bind_var go to state 200 - labeling_opt go to state 202 + bind_var go to state 205 + labeling_opt go to state 207 -State 94 +State 98 69 block_instr: LOOP . labeling_opt block END labeling_opt - VAR shift, and go to state 50 + VAR shift, and go to state 53 $default reduce using rule 33 (labeling_opt) - bind_var go to state 200 - labeling_opt go to state 203 + bind_var go to state 205 + labeling_opt go to state 208 -State 95 +State 99 46 plain_instr: BR . var - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 204 + nat go to state 58 + var go to state 209 -State 96 +State 100 47 plain_instr: BR_IF . var - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 205 + nat go to state 58 + var go to state 210 -State 97 +State 101 48 plain_instr: BR_TABLE . var_list var $default reduce using rule 28 (var_list) - var_list go to state 206 + var_list go to state 211 -State 98 +State 102 - 98 try_check: TRY . + 102 try_check: TRY . - $default reduce using rule 98 (try_check) + $default reduce using rule 102 (try_check) -State 99 +State 103 - 97 throw_check: THROW . + 101 throw_check: THROW . - $default reduce using rule 97 (throw_check) + $default reduce using rule 101 (throw_check) -State 100 +State 104 - 96 rethrow_check: RETHROW . + 100 rethrow_check: RETHROW . - $default reduce using rule 96 (rethrow_check) + $default reduce using rule 100 (rethrow_check) -State 101 +State 105 50 plain_instr: CALL . var - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 207 + nat go to state 58 + var go to state 212 -State 102 +State 106 51 plain_instr: CALL_INDIRECT . var - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 208 + nat go to state 58 + var go to state 213 -State 103 +State 107 49 plain_instr: RETURN . $default reduce using rule 49 (plain_instr) -State 104 +State 108 52 plain_instr: GET_LOCAL . var - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 209 + nat go to state 58 + var go to state 214 -State 105 +State 109 53 plain_instr: SET_LOCAL . var - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 210 + nat go to state 58 + var go to state 215 -State 106 +State 110 54 plain_instr: TEE_LOCAL . var - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 211 + nat go to state 58 + var go to state 216 -State 107 +State 111 55 plain_instr: GET_GLOBAL . var - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 212 + nat go to state 58 + var go to state 217 -State 108 +State 112 56 plain_instr: SET_GLOBAL . var - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 213 + nat go to state 58 + var go to state 218 -State 109 +State 113 57 plain_instr: LOAD . offset_opt align_opt - OFFSET_EQ_NAT shift, and go to state 214 + OFFSET_EQ_NAT shift, and go to state 219 $default reduce using rule 35 (offset_opt) - offset_opt go to state 215 + offset_opt go to state 220 -State 110 +State 114 58 plain_instr: STORE . offset_opt align_opt - OFFSET_EQ_NAT shift, and go to state 214 + OFFSET_EQ_NAT shift, and go to state 219 $default reduce using rule 35 (offset_opt) - offset_opt go to state 216 + offset_opt go to state 221 -State 111 +State 115 59 plain_instr: CONST . literal - NAT shift, and go to state 217 - INT shift, and go to state 218 - FLOAT shift, and go to state 219 + NAT shift, and go to state 222 + INT shift, and go to state 223 + FLOAT shift, and go to state 224 - literal go to state 220 + literal go to state 225 -State 112 +State 116 60 plain_instr: UNARY . $default reduce using rule 60 (plain_instr) -State 113 +State 117 61 plain_instr: BINARY . $default reduce using rule 61 (plain_instr) -State 114 +State 118 62 plain_instr: COMPARE . $default reduce using rule 62 (plain_instr) -State 115 +State 119 63 plain_instr: CONVERT . $default reduce using rule 63 (plain_instr) -State 116 +State 120 45 plain_instr: SELECT . $default reduce using rule 45 (plain_instr) -State 117 +State 121 42 plain_instr: UNREACHABLE . $default reduce using rule 42 (plain_instr) -State 118 +State 122 64 plain_instr: CURRENT_MEMORY . $default reduce using rule 64 (plain_instr) -State 119 +State 123 65 plain_instr: GROW_MEMORY . $default reduce using rule 65 (plain_instr) -State 120 +State 124 - 105 func_fields: type_use . func_fields_body - - "(" shift, and go to state 221 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 128 - func_fields_body go to state 222 - func_fields_body1 go to state 131 - func_result_body go to state 132 - func_body go to state 133 - func_body1 go to state 134 + 111 func_fields: type_use . func_fields_body + + "(" shift, and go to state 226 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 132 + func_fields_body go to state 227 + func_fields_body1 go to state 135 + func_result_body go to state 136 + func_body go to state 137 + func_body1 go to state 138 -State 121 +State 125 - 100 instr_list: instr . instr_list - - "(" shift, and go to state 223 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 224 + 104 instr_list: instr . instr_list + + "(" shift, and go to state 228 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 229 -State 122 +State 126 39 instr: plain_instr . $default reduce using rule 39 (instr) -State 123 +State 127 40 instr: block_instr . $default reduce using rule 40 (instr) -State 124 +State 128 41 instr: expr . $default reduce using rule 41 (instr) -State 125 +State 129 67 plain_instr: rethrow_check . var - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 225 + nat go to state 58 + var go to state 230 -State 126 +State 130 66 plain_instr: throw_check . var - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 226 + nat go to state 58 + var go to state 231 -State 127 +State 131 72 block_instr: try_check . labeling_opt block catch_instr_list END labeling_opt - VAR shift, and go to state 50 + VAR shift, and go to state 53 $default reduce using rule 33 (labeling_opt) - bind_var go to state 200 - labeling_opt go to state 227 + bind_var go to state 205 + labeling_opt go to state 232 -State 128 +State 132 - 123 func_body1: instr_list . + 129 func_body1: instr_list . - $default reduce using rule 123 (func_body1) + $default reduce using rule 129 (func_body1) -State 129 +State 133 - 104 func: "(" FUNC bind_var_opt func_fields . ")" + 110 func: "(" FUNC bind_var_opt func_fields . ")" - ")" shift, and go to state 228 + ")" shift, and go to state 233 -State 130 +State 134 - 106 func_fields: func_fields_body . + 112 func_fields: func_fields_body . - $default reduce using rule 106 (func_fields) + $default reduce using rule 112 (func_fields) -State 131 +State 135 - 116 func_fields_body: func_fields_body1 . + 122 func_fields_body: func_fields_body1 . - $default reduce using rule 116 (func_fields_body) + $default reduce using rule 122 (func_fields_body) -State 132 +State 136 - 117 func_fields_body1: func_result_body . + 123 func_fields_body1: func_result_body . - $default reduce using rule 117 (func_fields_body1) + $default reduce using rule 123 (func_fields_body1) -State 133 +State 137 - 120 func_result_body: func_body . + 126 func_result_body: func_body . - $default reduce using rule 120 (func_result_body) + $default reduce using rule 126 (func_result_body) -State 134 +State 138 - 122 func_body: func_body1 . + 128 func_body: func_body1 . - $default reduce using rule 122 (func_body) + $default reduce using rule 128 (func_body) -State 135 +State 139 - 107 func_fields: inline_import . type_use func_fields_import - 108 | inline_import . func_fields_import + 113 func_fields: inline_import . type_use func_fields_import + 114 | inline_import . func_fields_import - "(" shift, and go to state 229 + "(" shift, and go to state 234 - $default reduce using rule 114 (func_fields_import_result) + $default reduce using rule 120 (func_fields_import_result) - type_use go to state 230 - func_fields_import go to state 231 - func_fields_import1 go to state 232 - func_fields_import_result go to state 233 + type_use go to state 235 + func_fields_import go to state 236 + func_fields_import1 go to state 237 + func_fields_import_result go to state 238 -State 136 +State 140 - 109 func_fields: inline_export . func_fields - - "(" shift, and go to state 89 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - type_use go to state 120 - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 128 - func_fields go to state 234 - func_fields_body go to state 130 - func_fields_body1 go to state 131 - func_result_body go to state 132 - func_body go to state 133 - func_body1 go to state 134 - inline_import go to state 135 - inline_export go to state 136 + 115 func_fields: inline_export . func_fields + + "(" shift, and go to state 93 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + type_use go to state 124 + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 132 + func_fields go to state 239 + func_fields_body go to state 134 + func_fields_body1 go to state 135 + func_result_body go to state 136 + func_body go to state 137 + func_body1 go to state 138 + inline_import go to state 139 + inline_export go to state 140 -State 137 +State 141 - 161 start: "(" START var ")" . + 169 start: "(" START var ")" . - $default reduce using rule 161 (start) + $default reduce using rule 169 (start) -State 138 +State 142 11 func_type: "(" FUNC . func_sig ")" - "(" shift, and go to state 235 + "(" shift, and go to state 240 $default reduce using rule 15 (func_sig_result) - func_sig go to state 236 - func_sig_result go to state 237 + func_sig go to state 241 + func_sig_result go to state 242 -State 139 +State 143 - 159 type_def: "(" TYPE func_type ")" . + 167 type_def: "(" TYPE func_type ")" . - $default reduce using rule 159 (type_def) + $default reduce using rule 167 (type_def) -State 140 +State 144 - 160 type_def: "(" TYPE bind_var func_type . ")" + 168 type_def: "(" TYPE bind_var func_type . ")" - ")" shift, and go to state 238 + ")" shift, and go to state 243 -State 141 +State 145 10 global_type: "(" . MUT VALUE_TYPE ")" - 152 inline_import: "(" . IMPORT quoted_text quoted_text ")" - 158 inline_export: "(" . EXPORT quoted_text ")" + 159 inline_import: "(" . IMPORT quoted_text quoted_text ")" + 166 inline_export: "(" . EXPORT quoted_text ")" - MUT shift, and go to state 239 - IMPORT shift, and go to state 198 - EXPORT shift, and go to state 199 + MUT shift, and go to state 244 + IMPORT shift, and go to state 203 + EXPORT shift, and go to state 204 -State 142 +State 146 9 global_type: VALUE_TYPE . $default reduce using rule 9 (global_type) -State 143 +State 147 - 143 global_fields: global_type . const_expr - - "(" shift, and go to state 223 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 240 - const_expr go to state 241 + 149 global_fields: global_type . const_expr + + "(" shift, and go to state 228 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 245 + const_expr go to state 246 -State 144 +State 148 - 142 global: "(" GLOBAL bind_var_opt global_fields . ")" + 148 global: "(" GLOBAL bind_var_opt global_fields . ")" - ")" shift, and go to state 242 + ")" shift, and go to state 247 -State 145 +State 149 - 144 global_fields: inline_import . global_type + 150 global_fields: inline_import . global_type - "(" shift, and go to state 243 - VALUE_TYPE shift, and go to state 142 + "(" shift, and go to state 248 + VALUE_TYPE shift, and go to state 146 - global_type go to state 244 + global_type go to state 249 -State 146 +State 150 - 145 global_fields: inline_export . global_fields + 151 global_fields: inline_export . global_fields - "(" shift, and go to state 141 - VALUE_TYPE shift, and go to state 142 + "(" shift, and go to state 145 + VALUE_TYPE shift, and go to state 146 - global_type go to state 143 - global_fields go to state 245 - inline_import go to state 145 - inline_export go to state 146 + global_type go to state 147 + global_fields go to state 250 + inline_import go to state 149 + inline_export go to state 150 -State 147 +State 151 - 152 inline_import: "(" . IMPORT quoted_text quoted_text ")" - 158 inline_export: "(" . EXPORT quoted_text ")" + 159 inline_import: "(" . IMPORT quoted_text quoted_text ")" + 166 inline_export: "(" . EXPORT quoted_text ")" - IMPORT shift, and go to state 198 - EXPORT shift, and go to state 199 + IMPORT shift, and go to state 203 + EXPORT shift, and go to state 204 -State 148 +State 152 8 elem_type: ANYFUNC . $default reduce using rule 8 (elem_type) -State 149 +State 153 - 134 table_fields: elem_type . "(" ELEM var_list ")" + 140 table_fields: elem_type . "(" ELEM var_list ")" - "(" shift, and go to state 246 + "(" shift, and go to state 251 -State 150 +State 154 - 131 table_fields: table_sig . + 137 table_fields: table_sig . - $default reduce using rule 131 (table_fields) + $default reduce using rule 137 (table_fields) -State 151 +State 155 17 table_sig: limits . elem_type - ANYFUNC shift, and go to state 148 + ANYFUNC shift, and go to state 152 - elem_type go to state 247 + elem_type go to state 252 -State 152 +State 156 19 limits: nat . 20 | nat . nat - NAT shift, and go to state 53 + NAT shift, and go to state 56 $default reduce using rule 19 (limits) - nat go to state 248 + nat go to state 253 -State 153 +State 157 - 130 table: "(" TABLE bind_var_opt table_fields . ")" + 136 table: "(" TABLE bind_var_opt table_fields . ")" - ")" shift, and go to state 249 + ")" shift, and go to state 254 -State 154 +State 158 - 132 table_fields: inline_import . table_sig + 138 table_fields: inline_import . table_sig - NAT shift, and go to state 53 + NAT shift, and go to state 56 - table_sig go to state 250 - limits go to state 151 - nat go to state 152 + table_sig go to state 255 + limits go to state 155 + nat go to state 156 -State 155 +State 159 - 133 table_fields: inline_export . table_fields + 139 table_fields: inline_export . table_fields - "(" shift, and go to state 147 - NAT shift, and go to state 53 - ANYFUNC shift, and go to state 148 + "(" shift, and go to state 151 + NAT shift, and go to state 56 + ANYFUNC shift, and go to state 152 - elem_type go to state 149 - table_sig go to state 150 - limits go to state 151 - nat go to state 152 - table_fields go to state 251 - inline_import go to state 154 - inline_export go to state 155 + elem_type go to state 153 + table_sig go to state 154 + limits go to state 155 + nat go to state 156 + table_fields go to state 256 + inline_import go to state 158 + inline_export go to state 159 -State 156 +State 160 82 expr1: BLOCK . labeling_opt block - VAR shift, and go to state 50 + VAR shift, and go to state 53 $default reduce using rule 33 (labeling_opt) - bind_var go to state 200 - labeling_opt go to state 252 + bind_var go to state 205 + labeling_opt go to state 257 -State 157 +State 161 84 expr1: IF . labeling_opt if_block - VAR shift, and go to state 50 + VAR shift, and go to state 53 $default reduce using rule 33 (labeling_opt) - bind_var go to state 200 - labeling_opt go to state 253 + bind_var go to state 205 + labeling_opt go to state 258 -State 158 +State 162 83 expr1: LOOP . labeling_opt block - VAR shift, and go to state 50 + VAR shift, and go to state 53 $default reduce using rule 33 (labeling_opt) - bind_var go to state 200 - labeling_opt go to state 254 + bind_var go to state 205 + labeling_opt go to state 259 -State 159 +State 163 - 126 offset: "(" OFFSET . const_expr ")" - - "(" shift, and go to state 223 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 240 - const_expr go to state 255 + 132 offset: "(" OFFSET . const_expr ")" + + "(" shift, and go to state 228 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 245 + const_expr go to state 260 -State 160 +State 164 81 expr1: plain_instr . expr_list - "(" shift, and go to state 223 + "(" shift, and go to state 228 - $default reduce using rule 101 (expr_list) + $default reduce using rule 105 (expr_list) - expr go to state 256 - expr_list go to state 257 + expr go to state 261 + expr_list go to state 262 -State 161 +State 165 80 expr: "(" expr1 . ")" - ")" shift, and go to state 258 + ")" shift, and go to state 263 -State 162 +State 166 - 85 expr1: try_check . "(" BLOCK labeling_opt block ")" catch_list + 85 expr1: try_check . labeling_opt try_ - "(" shift, and go to state 259 + VAR shift, and go to state 53 + $default reduce using rule 33 (labeling_opt) -State 163 + bind_var go to state 205 + labeling_opt go to state 264 + + +State 167 - 128 elem: "(" ELEM var offset . var_list ")" + 134 elem: "(" ELEM var offset . var_list ")" $default reduce using rule 28 (var_list) - var_list go to state 260 + var_list go to state 265 -State 164 +State 168 29 var_list: var_list . var - 129 elem: "(" ELEM offset var_list . ")" + 135 elem: "(" ELEM offset var_list . ")" - ")" shift, and go to state 261 - NAT shift, and go to state 53 - VAR shift, and go to state 54 + ")" shift, and go to state 266 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 262 + nat go to state 58 + var go to state 267 -State 165 +State 169 - 141 memory_fields: "(" . DATA text_list_opt ")" - 152 inline_import: "(" . IMPORT quoted_text quoted_text ")" - 158 inline_export: "(" . EXPORT quoted_text ")" + 147 memory_fields: "(" . DATA text_list_opt ")" + 159 inline_import: "(" . IMPORT quoted_text quoted_text ")" + 166 inline_export: "(" . EXPORT quoted_text ")" - DATA shift, and go to state 263 - IMPORT shift, and go to state 198 - EXPORT shift, and go to state 199 + DATA shift, and go to state 268 + IMPORT shift, and go to state 203 + EXPORT shift, and go to state 204 -State 166 +State 170 - 138 memory_fields: memory_sig . + 144 memory_fields: memory_sig . - $default reduce using rule 138 (memory_fields) + $default reduce using rule 144 (memory_fields) -State 167 +State 171 18 memory_sig: limits . $default reduce using rule 18 (memory_sig) -State 168 +State 172 - 137 memory: "(" MEMORY bind_var_opt memory_fields . ")" + 143 memory: "(" MEMORY bind_var_opt memory_fields . ")" - ")" shift, and go to state 264 + ")" shift, and go to state 269 -State 169 +State 173 - 139 memory_fields: inline_import . memory_sig + 145 memory_fields: inline_import . memory_sig - NAT shift, and go to state 53 + NAT shift, and go to state 56 - memory_sig go to state 265 - limits go to state 167 - nat go to state 152 + memory_sig go to state 270 + limits go to state 171 + nat go to state 156 -State 170 +State 174 - 140 memory_fields: inline_export . memory_fields + 146 memory_fields: inline_export . memory_fields - "(" shift, and go to state 165 - NAT shift, and go to state 53 + "(" shift, and go to state 169 + NAT shift, and go to state 56 - memory_sig go to state 166 - limits go to state 167 - nat go to state 152 - memory_fields go to state 266 - inline_import go to state 169 - inline_export go to state 170 + memory_sig go to state 170 + limits go to state 171 + nat go to state 156 + memory_fields go to state 271 + inline_import go to state 173 + inline_export go to state 174 -State 171 +State 175 - 135 data: "(" DATA var offset . text_list_opt ")" + 141 data: "(" DATA var offset . text_list_opt ")" - TEXT shift, and go to state 172 + TEXT shift, and go to state 176 $default reduce using rule 3 (text_list_opt) - text_list go to state 173 - text_list_opt go to state 267 + text_list go to state 177 + text_list_opt go to state 272 -State 172 +State 176 1 text_list: TEXT . $default reduce using rule 1 (text_list) -State 173 +State 177 2 text_list: text_list . TEXT 4 text_list_opt: text_list . - TEXT shift, and go to state 268 + TEXT shift, and go to state 273 $default reduce using rule 4 (text_list_opt) -State 174 +State 178 - 136 data: "(" DATA offset text_list_opt . ")" + 142 data: "(" DATA offset text_list_opt . ")" - ")" shift, and go to state 269 + ")" shift, and go to state 274 -State 175 +State 179 - 151 import: "(" IMPORT quoted_text quoted_text . import_desc ")" + 158 import: "(" IMPORT quoted_text quoted_text . import_desc ")" - "(" shift, and go to state 270 + "(" shift, and go to state 275 - import_desc go to state 271 + exception go to state 276 + import_desc go to state 277 -State 176 +State 180 - 153 export_desc: "(" . FUNC var ")" - 154 | "(" . TABLE var ")" - 155 | "(" . MEMORY var ")" - 156 | "(" . GLOBAL var ")" + 160 export_desc: "(" . FUNC var ")" + 161 | "(" . TABLE var ")" + 162 | "(" . MEMORY var ")" + 163 | "(" . GLOBAL var ")" + 164 | "(" . EXCEPT var ")" - FUNC shift, and go to state 272 - GLOBAL shift, and go to state 273 - TABLE shift, and go to state 274 - MEMORY shift, and go to state 275 + FUNC shift, and go to state 278 + GLOBAL shift, and go to state 279 + TABLE shift, and go to state 280 + MEMORY shift, and go to state 281 + EXCEPT shift, and go to state 282 -State 177 +State 181 - 157 export: "(" EXPORT quoted_text export_desc . ")" + 165 export: "(" EXPORT quoted_text export_desc . ")" - ")" shift, and go to state 276 + ")" shift, and go to state 283 -State 178 +State 182 - 181 script_module: "(" MODULE bind_var_opt BIN . text_list ")" + 7 value_type_list: value_type_list . VALUE_TYPE + 108 exception: "(" EXCEPT bind_var_opt value_type_list . ")" - TEXT shift, and go to state 172 + ")" shift, and go to state 284 + VALUE_TYPE shift, and go to state 285 - text_list go to state 277 +State 183 -State 179 + 190 script_module: "(" MODULE bind_var_opt BIN . text_list ")" - 182 script_module: "(" MODULE bind_var_opt QUOTE . text_list ")" + TEXT shift, and go to state 176 - TEXT shift, and go to state 172 + text_list go to state 286 - text_list go to state 278 +State 184 -State 180 + 191 script_module: "(" MODULE bind_var_opt QUOTE . text_list ")" - 180 script_module: "(" MODULE bind_var_opt module_fields_opt . ")" + TEXT shift, and go to state 176 - ")" shift, and go to state 279 + text_list go to state 287 -State 181 +State 185 - 173 module_fields_opt: module_fields . - 175 module_fields: module_fields . module_field + 189 script_module: "(" MODULE bind_var_opt module_fields_opt . ")" - "(" shift, and go to state 45 + ")" shift, and go to state 288 - $default reduce using rule 173 (module_fields_opt) - func go to state 2 - elem go to state 3 - table go to state 4 - data go to state 5 - memory go to state 6 - global go to state 7 - import go to state 8 - export go to state 9 - type_def go to state 10 - start go to state 11 - module_field go to state 46 +State 186 + 182 module_fields_opt: module_fields . + 184 module_fields: module_fields . module_field -State 182 + "(" shift, and go to state 48 - 197 cmd: "(" REGISTER quoted_text script_var_opt . ")" + $default reduce using rule 182 (module_fields_opt) - ")" shift, and go to state 280 + exception go to state 2 + exception_field go to state 3 + func go to state 4 + elem go to state 5 + table go to state 6 + data go to state 7 + memory go to state 8 + global go to state 9 + import go to state 10 + export go to state 11 + type_def go to state 12 + start go to state 13 + module_field go to state 49 -State 183 +State 187 - 183 action: "(" INVOKE script_var_opt quoted_text . const_list ")" + 206 cmd: "(" REGISTER quoted_text script_var_opt . ")" - $default reduce using rule 201 (const_list) + ")" shift, and go to state 289 - const_list go to state 281 +State 188 -State 184 + 192 action: "(" INVOKE script_var_opt quoted_text . const_list ")" - 184 action: "(" GET script_var_opt quoted_text . ")" + $default reduce using rule 210 (const_list) - ")" shift, and go to state 282 + const_list go to state 290 -State 185 +State 189 - 185 assertion: "(" ASSERT_MALFORMED script_module quoted_text . ")" + 193 action: "(" GET script_var_opt quoted_text . ")" - ")" shift, and go to state 283 + ")" shift, and go to state 291 -State 186 +State 190 - 186 assertion: "(" ASSERT_INVALID script_module quoted_text . ")" + 194 assertion: "(" ASSERT_MALFORMED script_module quoted_text . ")" - ")" shift, and go to state 284 + ")" shift, and go to state 292 -State 187 +State 191 - 187 assertion: "(" ASSERT_UNLINKABLE script_module quoted_text . ")" + 195 assertion: "(" ASSERT_INVALID script_module quoted_text . ")" - ")" shift, and go to state 285 + ")" shift, and go to state 293 -State 188 +State 192 - 189 assertion: "(" ASSERT_RETURN action const_list . ")" - 202 const_list: const_list . const + 196 assertion: "(" ASSERT_UNLINKABLE script_module quoted_text . ")" - "(" shift, and go to state 286 - ")" shift, and go to state 287 + ")" shift, and go to state 294 - const go to state 288 +State 193 -State 189 + 198 assertion: "(" ASSERT_RETURN action const_list . ")" + 211 const_list: const_list . const - 190 assertion: "(" ASSERT_RETURN_CANONICAL_NAN action ")" . + "(" shift, and go to state 295 + ")" shift, and go to state 296 - $default reduce using rule 190 (assertion) + const go to state 297 -State 190 +State 194 - 191 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN action ")" . + 199 assertion: "(" ASSERT_RETURN_CANONICAL_NAN action ")" . - $default reduce using rule 191 (assertion) + $default reduce using rule 199 (assertion) -State 191 +State 195 - 188 assertion: "(" ASSERT_TRAP script_module quoted_text . ")" + 200 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN action ")" . - ")" shift, and go to state 289 + $default reduce using rule 200 (assertion) -State 192 +State 196 - 192 assertion: "(" ASSERT_TRAP action quoted_text . ")" + 197 assertion: "(" ASSERT_TRAP script_module quoted_text . ")" - ")" shift, and go to state 290 + ")" shift, and go to state 298 -State 193 +State 197 - 193 assertion: "(" ASSERT_EXHAUSTION action quoted_text . ")" + 201 assertion: "(" ASSERT_TRAP action quoted_text . ")" - ")" shift, and go to state 291 + ")" shift, and go to state 299 -State 194 +State 198 + + 202 assertion: "(" ASSERT_EXHAUSTION action quoted_text . ")" + + ")" shift, and go to state 300 + + +State 199 21 type_use: "(" TYPE . var ")" - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 292 + nat go to state 58 + var go to state 301 -State 195 +State 200 - 118 func_fields_body1: "(" PARAM . value_type_list ")" func_fields_body1 - 119 | "(" PARAM . bind_var VALUE_TYPE ")" func_fields_body1 + 124 func_fields_body1: "(" PARAM . value_type_list ")" func_fields_body1 + 125 | "(" PARAM . bind_var VALUE_TYPE ")" func_fields_body1 - VAR shift, and go to state 50 + VAR shift, and go to state 53 $default reduce using rule 6 (value_type_list) - value_type_list go to state 293 - bind_var go to state 294 + value_type_list go to state 302 + bind_var go to state 303 -State 196 +State 201 - 121 func_result_body: "(" RESULT . value_type_list ")" func_result_body + 127 func_result_body: "(" RESULT . value_type_list ")" func_result_body $default reduce using rule 6 (value_type_list) - value_type_list go to state 295 + value_type_list go to state 304 -State 197 +State 202 - 124 func_body1: "(" LOCAL . value_type_list ")" func_body1 - 125 | "(" LOCAL . bind_var VALUE_TYPE ")" func_body1 + 130 func_body1: "(" LOCAL . value_type_list ")" func_body1 + 131 | "(" LOCAL . bind_var VALUE_TYPE ")" func_body1 - VAR shift, and go to state 50 + VAR shift, and go to state 53 $default reduce using rule 6 (value_type_list) - value_type_list go to state 296 - bind_var go to state 297 + value_type_list go to state 305 + bind_var go to state 306 -State 198 +State 203 - 152 inline_import: "(" IMPORT . quoted_text quoted_text ")" + 159 inline_import: "(" IMPORT . quoted_text quoted_text ")" - TEXT shift, and go to state 69 + TEXT shift, and go to state 72 - quoted_text go to state 298 + quoted_text go to state 307 -State 199 +State 204 - 158 inline_export: "(" EXPORT . quoted_text ")" + 166 inline_export: "(" EXPORT . quoted_text ")" - TEXT shift, and go to state 69 + TEXT shift, and go to state 72 - quoted_text go to state 299 + quoted_text go to state 308 -State 200 +State 205 34 labeling_opt: bind_var . $default reduce using rule 34 (labeling_opt) -State 201 +State 206 68 block_instr: BLOCK labeling_opt . block END labeling_opt - "(" shift, and go to state 300 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - block_sig go to state 301 - block go to state 302 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 303 + "(" shift, and go to state 309 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + block_sig go to state 310 + block go to state 311 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 312 -State 202 +State 207 70 block_instr: IF labeling_opt . block END labeling_opt 71 | IF labeling_opt . block ELSE labeling_opt instr_list END labeling_opt - "(" shift, and go to state 300 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - block_sig go to state 301 - block go to state 304 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 303 + "(" shift, and go to state 309 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + block_sig go to state 310 + block go to state 313 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 312 -State 203 +State 208 69 block_instr: LOOP labeling_opt . block END labeling_opt - "(" shift, and go to state 300 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - block_sig go to state 301 - block go to state 305 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 303 + "(" shift, and go to state 309 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + block_sig go to state 310 + block go to state 314 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 312 -State 204 +State 209 46 plain_instr: BR var . $default reduce using rule 46 (plain_instr) -State 205 +State 210 47 plain_instr: BR_IF var . $default reduce using rule 47 (plain_instr) -State 206 +State 211 29 var_list: var_list . var 48 plain_instr: BR_TABLE var_list . var - NAT shift, and go to state 53 - VAR shift, and go to state 54 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - nat go to state 55 - var go to state 306 + nat go to state 58 + var go to state 315 -State 207 +State 212 50 plain_instr: CALL var . $default reduce using rule 50 (plain_instr) -State 208 +State 213 51 plain_instr: CALL_INDIRECT var . $default reduce using rule 51 (plain_instr) -State 209 +State 214 52 plain_instr: GET_LOCAL var . $default reduce using rule 52 (plain_instr) -State 210 +State 215 53 plain_instr: SET_LOCAL var . $default reduce using rule 53 (plain_instr) -State 211 +State 216 54 plain_instr: TEE_LOCAL var . $default reduce using rule 54 (plain_instr) -State 212 +State 217 55 plain_instr: GET_GLOBAL var . $default reduce using rule 55 (plain_instr) -State 213 +State 218 56 plain_instr: SET_GLOBAL var . $default reduce using rule 56 (plain_instr) -State 214 +State 219 36 offset_opt: OFFSET_EQ_NAT . $default reduce using rule 36 (offset_opt) -State 215 +State 220 57 plain_instr: LOAD offset_opt . align_opt - ALIGN_EQ_NAT shift, and go to state 307 + ALIGN_EQ_NAT shift, and go to state 316 $default reduce using rule 37 (align_opt) - align_opt go to state 308 + align_opt go to state 317 -State 216 +State 221 58 plain_instr: STORE offset_opt . align_opt - ALIGN_EQ_NAT shift, and go to state 307 + ALIGN_EQ_NAT shift, and go to state 316 $default reduce using rule 37 (align_opt) - align_opt go to state 309 + align_opt go to state 318 -State 217 +State 222 23 literal: NAT . $default reduce using rule 23 (literal) -State 218 +State 223 24 literal: INT . $default reduce using rule 24 (literal) -State 219 +State 224 25 literal: FLOAT . $default reduce using rule 25 (literal) -State 220 +State 225 59 plain_instr: CONST literal . $default reduce using rule 59 (plain_instr) -State 221 - - 80 expr: "(" . expr1 ")" - 118 func_fields_body1: "(" . PARAM value_type_list ")" func_fields_body1 - 119 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_body1 - 121 func_result_body: "(" . RESULT value_type_list ")" func_result_body - 124 func_body1: "(" . LOCAL value_type_list ")" func_body1 - 125 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body1 - - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 156 - IF shift, and go to state 157 - LOOP shift, and go to state 158 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - PARAM shift, and go to state 195 - RESULT shift, and go to state 196 - LOCAL shift, and go to state 197 - - plain_instr go to state 160 - expr1 go to state 161 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 162 - - -State 222 - - 105 func_fields: type_use func_fields_body . - - $default reduce using rule 105 (func_fields) - - -State 223 - - 80 expr: "(" . expr1 ")" - - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 156 - IF shift, and go to state 157 - LOOP shift, and go to state 158 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - plain_instr go to state 160 - expr1 go to state 161 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 162 - - -State 224 - - 100 instr_list: instr instr_list . - - $default reduce using rule 100 (instr_list) - - -State 225 - - 67 plain_instr: rethrow_check var . - - $default reduce using rule 67 (plain_instr) - - State 226 - 66 plain_instr: throw_check var . - - $default reduce using rule 66 (plain_instr) + 80 expr: "(" . expr1 ")" + 124 func_fields_body1: "(" . PARAM value_type_list ")" func_fields_body1 + 125 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_body1 + 127 func_result_body: "(" . RESULT value_type_list ")" func_result_body + 130 func_body1: "(" . LOCAL value_type_list ")" func_body1 + 131 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body1 + + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 160 + IF shift, and go to state 161 + LOOP shift, and go to state 162 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + PARAM shift, and go to state 200 + RESULT shift, and go to state 201 + LOCAL shift, and go to state 202 + + plain_instr go to state 164 + expr1 go to state 165 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 166 State 227 - 72 block_instr: try_check labeling_opt . block catch_instr_list END labeling_opt + 111 func_fields: type_use func_fields_body . - "(" shift, and go to state 300 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - block_sig go to state 301 - block go to state 310 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 303 + $default reduce using rule 111 (func_fields) State 228 - 104 func: "(" FUNC bind_var_opt func_fields ")" . + 80 expr: "(" . expr1 ")" - $default reduce using rule 104 (func) + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 160 + IF shift, and go to state 161 + LOOP shift, and go to state 162 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + plain_instr go to state 164 + expr1 go to state 165 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 166 State 229 - 21 type_use: "(" . TYPE var ")" - 112 func_fields_import1: "(" . PARAM value_type_list ")" func_fields_import1 - 113 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_import1 - 115 func_fields_import_result: "(" . RESULT value_type_list ")" func_fields_import_result + 104 instr_list: instr instr_list . - TYPE shift, and go to state 194 - PARAM shift, and go to state 311 - RESULT shift, and go to state 312 + $default reduce using rule 104 (instr_list) State 230 - 107 func_fields: inline_import type_use . func_fields_import - - "(" shift, and go to state 313 - - $default reduce using rule 114 (func_fields_import_result) + 67 plain_instr: rethrow_check var . - func_fields_import go to state 314 - func_fields_import1 go to state 232 - func_fields_import_result go to state 233 + $default reduce using rule 67 (plain_instr) State 231 - 108 func_fields: inline_import func_fields_import . + 66 plain_instr: throw_check var . - $default reduce using rule 108 (func_fields) + $default reduce using rule 66 (plain_instr) State 232 - 110 func_fields_import: func_fields_import1 . + 72 block_instr: try_check labeling_opt . block catch_instr_list END labeling_opt - $default reduce using rule 110 (func_fields_import) + "(" shift, and go to state 309 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + block_sig go to state 310 + block go to state 319 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 312 State 233 - 111 func_fields_import1: func_fields_import_result . + 110 func: "(" FUNC bind_var_opt func_fields ")" . - $default reduce using rule 111 (func_fields_import1) + $default reduce using rule 110 (func) State 234 - 109 func_fields: inline_export func_fields . + 21 type_use: "(" . TYPE var ")" + 118 func_fields_import1: "(" . PARAM value_type_list ")" func_fields_import1 + 119 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_import1 + 121 func_fields_import_result: "(" . RESULT value_type_list ")" func_fields_import_result - $default reduce using rule 109 (func_fields) + TYPE shift, and go to state 199 + PARAM shift, and go to state 320 + RESULT shift, and go to state 321 State 235 - 13 func_sig: "(" . PARAM value_type_list ")" func_sig - 14 | "(" . PARAM bind_var VALUE_TYPE ")" func_sig - 16 func_sig_result: "(" . RESULT value_type_list ")" func_sig_result + 113 func_fields: inline_import type_use . func_fields_import + + "(" shift, and go to state 322 + + $default reduce using rule 120 (func_fields_import_result) - PARAM shift, and go to state 315 - RESULT shift, and go to state 316 + func_fields_import go to state 323 + func_fields_import1 go to state 237 + func_fields_import_result go to state 238 State 236 - 11 func_type: "(" FUNC func_sig . ")" + 114 func_fields: inline_import func_fields_import . - ")" shift, and go to state 317 + $default reduce using rule 114 (func_fields) State 237 - 12 func_sig: func_sig_result . + 116 func_fields_import: func_fields_import1 . - $default reduce using rule 12 (func_sig) + $default reduce using rule 116 (func_fields_import) State 238 - 160 type_def: "(" TYPE bind_var func_type ")" . + 117 func_fields_import1: func_fields_import_result . - $default reduce using rule 160 (type_def) + $default reduce using rule 117 (func_fields_import1) State 239 - 10 global_type: "(" MUT . VALUE_TYPE ")" + 115 func_fields: inline_export func_fields . - VALUE_TYPE shift, and go to state 318 + $default reduce using rule 115 (func_fields) State 240 - 103 const_expr: instr_list . + 13 func_sig: "(" . PARAM value_type_list ")" func_sig + 14 | "(" . PARAM bind_var VALUE_TYPE ")" func_sig + 16 func_sig_result: "(" . RESULT value_type_list ")" func_sig_result - $default reduce using rule 103 (const_expr) + PARAM shift, and go to state 324 + RESULT shift, and go to state 325 State 241 - 143 global_fields: global_type const_expr . + 11 func_type: "(" FUNC func_sig . ")" - $default reduce using rule 143 (global_fields) + ")" shift, and go to state 326 State 242 - 142 global: "(" GLOBAL bind_var_opt global_fields ")" . + 12 func_sig: func_sig_result . - $default reduce using rule 142 (global) + $default reduce using rule 12 (func_sig) State 243 - 10 global_type: "(" . MUT VALUE_TYPE ")" + 168 type_def: "(" TYPE bind_var func_type ")" . - MUT shift, and go to state 239 + $default reduce using rule 168 (type_def) State 244 - 144 global_fields: inline_import global_type . + 10 global_type: "(" MUT . VALUE_TYPE ")" - $default reduce using rule 144 (global_fields) + VALUE_TYPE shift, and go to state 327 State 245 - 145 global_fields: inline_export global_fields . + 107 const_expr: instr_list . - $default reduce using rule 145 (global_fields) + $default reduce using rule 107 (const_expr) State 246 - 134 table_fields: elem_type "(" . ELEM var_list ")" + 149 global_fields: global_type const_expr . - ELEM shift, and go to state 319 + $default reduce using rule 149 (global_fields) State 247 - 17 table_sig: limits elem_type . + 148 global: "(" GLOBAL bind_var_opt global_fields ")" . - $default reduce using rule 17 (table_sig) + $default reduce using rule 148 (global) State 248 - 20 limits: nat nat . + 10 global_type: "(" . MUT VALUE_TYPE ")" - $default reduce using rule 20 (limits) + MUT shift, and go to state 244 State 249 - 130 table: "(" TABLE bind_var_opt table_fields ")" . + 150 global_fields: inline_import global_type . - $default reduce using rule 130 (table) + $default reduce using rule 150 (global_fields) State 250 - 132 table_fields: inline_import table_sig . + 151 global_fields: inline_export global_fields . - $default reduce using rule 132 (table_fields) + $default reduce using rule 151 (global_fields) State 251 - 133 table_fields: inline_export table_fields . + 140 table_fields: elem_type "(" . ELEM var_list ")" - $default reduce using rule 133 (table_fields) + ELEM shift, and go to state 328 State 252 - 82 expr1: BLOCK labeling_opt . block + 17 table_sig: limits elem_type . - "(" shift, and go to state 300 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - block_sig go to state 301 - block go to state 320 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 303 + $default reduce using rule 17 (table_sig) State 253 - 84 expr1: IF labeling_opt . if_block - - "(" shift, and go to state 321 + 20 limits: nat nat . - block_sig go to state 322 - expr go to state 323 - if_block go to state 324 - if_ go to state 325 + $default reduce using rule 20 (limits) State 254 - 83 expr1: LOOP labeling_opt . block + 136 table: "(" TABLE bind_var_opt table_fields ")" . - "(" shift, and go to state 300 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - block_sig go to state 301 - block go to state 326 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 303 + $default reduce using rule 136 (table) State 255 - 126 offset: "(" OFFSET const_expr . ")" + 138 table_fields: inline_import table_sig . - ")" shift, and go to state 327 + $default reduce using rule 138 (table_fields) State 256 - 102 expr_list: expr . expr_list - - "(" shift, and go to state 223 + 139 table_fields: inline_export table_fields . - $default reduce using rule 101 (expr_list) - - expr go to state 256 - expr_list go to state 328 + $default reduce using rule 139 (table_fields) State 257 - 81 expr1: plain_instr expr_list . + 82 expr1: BLOCK labeling_opt . block - $default reduce using rule 81 (expr1) + "(" shift, and go to state 309 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + block_sig go to state 310 + block go to state 329 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 312 State 258 - 80 expr: "(" expr1 ")" . + 84 expr1: IF labeling_opt . if_block - $default reduce using rule 80 (expr) + "(" shift, and go to state 330 + + block_sig go to state 331 + expr go to state 332 + if_block go to state 333 + if_ go to state 334 State 259 - 85 expr1: try_check "(" . BLOCK labeling_opt block ")" catch_list + 83 expr1: LOOP labeling_opt . block - BLOCK shift, and go to state 329 + "(" shift, and go to state 309 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + block_sig go to state 310 + block go to state 335 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 312 State 260 - 29 var_list: var_list . var - 128 elem: "(" ELEM var offset var_list . ")" - - ")" shift, and go to state 330 - NAT shift, and go to state 53 - VAR shift, and go to state 54 + 132 offset: "(" OFFSET const_expr . ")" - nat go to state 55 - var go to state 262 + ")" shift, and go to state 336 State 261 - 129 elem: "(" ELEM offset var_list ")" . + 106 expr_list: expr . expr_list - $default reduce using rule 129 (elem) + "(" shift, and go to state 228 + $default reduce using rule 105 (expr_list) -State 262 + expr go to state 261 + expr_list go to state 337 - 29 var_list: var_list var . - $default reduce using rule 29 (var_list) +State 262 + 81 expr1: plain_instr expr_list . -State 263 + $default reduce using rule 81 (expr1) - 141 memory_fields: "(" DATA . text_list_opt ")" - TEXT shift, and go to state 172 +State 263 - $default reduce using rule 3 (text_list_opt) + 80 expr: "(" expr1 ")" . - text_list go to state 173 - text_list_opt go to state 331 + $default reduce using rule 80 (expr) State 264 - 137 memory: "(" MEMORY bind_var_opt memory_fields ")" . - - $default reduce using rule 137 (memory) + 85 expr1: try_check labeling_opt . try_ + + "(" shift, and go to state 338 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + instr go to state 339 + plain_instr go to state 126 + block_instr go to state 127 + block_sig go to state 340 + expr go to state 128 + try_ go to state 341 + try_instr_list go to state 342 + catch_list go to state 343 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 State 265 - 139 memory_fields: inline_import memory_sig . + 29 var_list: var_list . var + 134 elem: "(" ELEM var offset var_list . ")" + + ")" shift, and go to state 344 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - $default reduce using rule 139 (memory_fields) + nat go to state 58 + var go to state 267 State 266 - 140 memory_fields: inline_export memory_fields . + 135 elem: "(" ELEM offset var_list ")" . - $default reduce using rule 140 (memory_fields) + $default reduce using rule 135 (elem) State 267 - 135 data: "(" DATA var offset text_list_opt . ")" + 29 var_list: var_list var . - ")" shift, and go to state 332 + $default reduce using rule 29 (var_list) State 268 - 2 text_list: text_list TEXT . + 147 memory_fields: "(" DATA . text_list_opt ")" - $default reduce using rule 2 (text_list) + TEXT shift, and go to state 176 + + $default reduce using rule 3 (text_list_opt) + + text_list go to state 177 + text_list_opt go to state 345 State 269 - 136 data: "(" DATA offset text_list_opt ")" . + 143 memory: "(" MEMORY bind_var_opt memory_fields ")" . - $default reduce using rule 136 (data) + $default reduce using rule 143 (memory) State 270 - 146 import_desc: "(" . FUNC bind_var_opt type_use ")" - 147 | "(" . FUNC bind_var_opt func_sig ")" - 148 | "(" . TABLE bind_var_opt table_sig ")" - 149 | "(" . MEMORY bind_var_opt memory_sig ")" - 150 | "(" . GLOBAL bind_var_opt global_type ")" + 145 memory_fields: inline_import memory_sig . - FUNC shift, and go to state 333 - GLOBAL shift, and go to state 334 - TABLE shift, and go to state 335 - MEMORY shift, and go to state 336 + $default reduce using rule 145 (memory_fields) State 271 - 151 import: "(" IMPORT quoted_text quoted_text import_desc . ")" + 146 memory_fields: inline_export memory_fields . - ")" shift, and go to state 337 + $default reduce using rule 146 (memory_fields) State 272 - 153 export_desc: "(" FUNC . var ")" + 141 data: "(" DATA var offset text_list_opt . ")" - NAT shift, and go to state 53 - VAR shift, and go to state 54 - - nat go to state 55 - var go to state 338 + ")" shift, and go to state 346 State 273 - 156 export_desc: "(" GLOBAL . var ")" - - NAT shift, and go to state 53 - VAR shift, and go to state 54 + 2 text_list: text_list TEXT . - nat go to state 55 - var go to state 339 + $default reduce using rule 2 (text_list) State 274 - 154 export_desc: "(" TABLE . var ")" - - NAT shift, and go to state 53 - VAR shift, and go to state 54 + 142 data: "(" DATA offset text_list_opt ")" . - nat go to state 55 - var go to state 340 + $default reduce using rule 142 (data) State 275 - 155 export_desc: "(" MEMORY . var ")" + 108 exception: "(" . EXCEPT bind_var_opt value_type_list ")" + 152 import_desc: "(" . FUNC bind_var_opt type_use ")" + 153 | "(" . FUNC bind_var_opt func_sig ")" + 154 | "(" . TABLE bind_var_opt table_sig ")" + 155 | "(" . MEMORY bind_var_opt memory_sig ")" + 156 | "(" . GLOBAL bind_var_opt global_type ")" - NAT shift, and go to state 53 - VAR shift, and go to state 54 - - nat go to state 55 - var go to state 341 + FUNC shift, and go to state 347 + GLOBAL shift, and go to state 348 + TABLE shift, and go to state 349 + MEMORY shift, and go to state 350 + EXCEPT shift, and go to state 35 State 276 - 157 export: "(" EXPORT quoted_text export_desc ")" . + 157 import_desc: exception . - $default reduce using rule 157 (export) + $default reduce using rule 157 (import_desc) State 277 - 2 text_list: text_list . TEXT - 181 script_module: "(" MODULE bind_var_opt BIN text_list . ")" + 158 import: "(" IMPORT quoted_text quoted_text import_desc . ")" - ")" shift, and go to state 342 - TEXT shift, and go to state 268 + ")" shift, and go to state 351 State 278 - 2 text_list: text_list . TEXT - 182 script_module: "(" MODULE bind_var_opt QUOTE text_list . ")" + 160 export_desc: "(" FUNC . var ")" + + NAT shift, and go to state 56 + VAR shift, and go to state 57 - ")" shift, and go to state 343 - TEXT shift, and go to state 268 + nat go to state 58 + var go to state 352 State 279 - 180 script_module: "(" MODULE bind_var_opt module_fields_opt ")" . + 163 export_desc: "(" GLOBAL . var ")" - $default reduce using rule 180 (script_module) + NAT shift, and go to state 56 + VAR shift, and go to state 57 + + nat go to state 58 + var go to state 353 State 280 - 197 cmd: "(" REGISTER quoted_text script_var_opt ")" . + 161 export_desc: "(" TABLE . var ")" + + NAT shift, and go to state 56 + VAR shift, and go to state 57 - $default reduce using rule 197 (cmd) + nat go to state 58 + var go to state 354 State 281 - 183 action: "(" INVOKE script_var_opt quoted_text const_list . ")" - 202 const_list: const_list . const + 162 export_desc: "(" MEMORY . var ")" - "(" shift, and go to state 286 - ")" shift, and go to state 344 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - const go to state 288 + nat go to state 58 + var go to state 355 State 282 - 184 action: "(" GET script_var_opt quoted_text ")" . + 164 export_desc: "(" EXCEPT . var ")" + + NAT shift, and go to state 56 + VAR shift, and go to state 57 - $default reduce using rule 184 (action) + nat go to state 58 + var go to state 356 State 283 - 185 assertion: "(" ASSERT_MALFORMED script_module quoted_text ")" . + 165 export: "(" EXPORT quoted_text export_desc ")" . - $default reduce using rule 185 (assertion) + $default reduce using rule 165 (export) State 284 - 186 assertion: "(" ASSERT_INVALID script_module quoted_text ")" . + 108 exception: "(" EXCEPT bind_var_opt value_type_list ")" . - $default reduce using rule 186 (assertion) + $default reduce using rule 108 (exception) State 285 - 187 assertion: "(" ASSERT_UNLINKABLE script_module quoted_text ")" . + 7 value_type_list: value_type_list VALUE_TYPE . - $default reduce using rule 187 (assertion) + $default reduce using rule 7 (value_type_list) State 286 - 200 const: "(" . CONST literal ")" + 2 text_list: text_list . TEXT + 190 script_module: "(" MODULE bind_var_opt BIN text_list . ")" - CONST shift, and go to state 345 + ")" shift, and go to state 357 + TEXT shift, and go to state 273 State 287 - 189 assertion: "(" ASSERT_RETURN action const_list ")" . + 2 text_list: text_list . TEXT + 191 script_module: "(" MODULE bind_var_opt QUOTE text_list . ")" - $default reduce using rule 189 (assertion) + ")" shift, and go to state 358 + TEXT shift, and go to state 273 State 288 - 202 const_list: const_list const . + 189 script_module: "(" MODULE bind_var_opt module_fields_opt ")" . - $default reduce using rule 202 (const_list) + $default reduce using rule 189 (script_module) State 289 - 188 assertion: "(" ASSERT_TRAP script_module quoted_text ")" . + 206 cmd: "(" REGISTER quoted_text script_var_opt ")" . - $default reduce using rule 188 (assertion) + $default reduce using rule 206 (cmd) State 290 - 192 assertion: "(" ASSERT_TRAP action quoted_text ")" . + 192 action: "(" INVOKE script_var_opt quoted_text const_list . ")" + 211 const_list: const_list . const - $default reduce using rule 192 (assertion) + "(" shift, and go to state 295 + ")" shift, and go to state 359 + + const go to state 297 State 291 - 193 assertion: "(" ASSERT_EXHAUSTION action quoted_text ")" . + 193 action: "(" GET script_var_opt quoted_text ")" . - $default reduce using rule 193 (assertion) + $default reduce using rule 193 (action) State 292 - 21 type_use: "(" TYPE var . ")" + 194 assertion: "(" ASSERT_MALFORMED script_module quoted_text ")" . - ")" shift, and go to state 346 + $default reduce using rule 194 (assertion) State 293 - 7 value_type_list: value_type_list . VALUE_TYPE - 118 func_fields_body1: "(" PARAM value_type_list . ")" func_fields_body1 + 195 assertion: "(" ASSERT_INVALID script_module quoted_text ")" . - ")" shift, and go to state 347 - VALUE_TYPE shift, and go to state 348 + $default reduce using rule 195 (assertion) State 294 - 119 func_fields_body1: "(" PARAM bind_var . VALUE_TYPE ")" func_fields_body1 + 196 assertion: "(" ASSERT_UNLINKABLE script_module quoted_text ")" . - VALUE_TYPE shift, and go to state 349 + $default reduce using rule 196 (assertion) State 295 - 7 value_type_list: value_type_list . VALUE_TYPE - 121 func_result_body: "(" RESULT value_type_list . ")" func_result_body + 209 const: "(" . CONST literal ")" - ")" shift, and go to state 350 - VALUE_TYPE shift, and go to state 348 + CONST shift, and go to state 360 State 296 - 7 value_type_list: value_type_list . VALUE_TYPE - 124 func_body1: "(" LOCAL value_type_list . ")" func_body1 + 198 assertion: "(" ASSERT_RETURN action const_list ")" . - ")" shift, and go to state 351 - VALUE_TYPE shift, and go to state 348 + $default reduce using rule 198 (assertion) State 297 - 125 func_body1: "(" LOCAL bind_var . VALUE_TYPE ")" func_body1 + 211 const_list: const_list const . - VALUE_TYPE shift, and go to state 352 + $default reduce using rule 211 (const_list) State 298 - 152 inline_import: "(" IMPORT quoted_text . quoted_text ")" + 197 assertion: "(" ASSERT_TRAP script_module quoted_text ")" . - TEXT shift, and go to state 69 - - quoted_text go to state 353 + $default reduce using rule 197 (assertion) State 299 - 158 inline_export: "(" EXPORT quoted_text . ")" + 201 assertion: "(" ASSERT_TRAP action quoted_text ")" . - ")" shift, and go to state 354 + $default reduce using rule 201 (assertion) State 300 - 73 block_sig: "(" . RESULT value_type_list ")" - 80 expr: "(" . expr1 ")" + 202 assertion: "(" ASSERT_EXHAUSTION action quoted_text ")" . - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 156 - IF shift, and go to state 157 - LOOP shift, and go to state 158 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - RESULT shift, and go to state 355 - - plain_instr go to state 160 - expr1 go to state 161 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 162 + $default reduce using rule 202 (assertion) State 301 - 74 block: block_sig . block + 21 type_use: "(" TYPE var . ")" - "(" shift, and go to state 300 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - block_sig go to state 301 - block go to state 356 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 303 + ")" shift, and go to state 361 State 302 - 68 block_instr: BLOCK labeling_opt block . END labeling_opt + 7 value_type_list: value_type_list . VALUE_TYPE + 124 func_fields_body1: "(" PARAM value_type_list . ")" func_fields_body1 - END shift, and go to state 357 + ")" shift, and go to state 362 + VALUE_TYPE shift, and go to state 285 State 303 - 75 block: instr_list . + 125 func_fields_body1: "(" PARAM bind_var . VALUE_TYPE ")" func_fields_body1 - $default reduce using rule 75 (block) + VALUE_TYPE shift, and go to state 363 State 304 - 70 block_instr: IF labeling_opt block . END labeling_opt - 71 | IF labeling_opt block . ELSE labeling_opt instr_list END labeling_opt + 7 value_type_list: value_type_list . VALUE_TYPE + 127 func_result_body: "(" RESULT value_type_list . ")" func_result_body - END shift, and go to state 358 - ELSE shift, and go to state 359 + ")" shift, and go to state 364 + VALUE_TYPE shift, and go to state 285 State 305 - 69 block_instr: LOOP labeling_opt block . END labeling_opt + 7 value_type_list: value_type_list . VALUE_TYPE + 130 func_body1: "(" LOCAL value_type_list . ")" func_body1 - END shift, and go to state 360 + ")" shift, and go to state 365 + VALUE_TYPE shift, and go to state 285 State 306 - 29 var_list: var_list var . - 48 plain_instr: BR_TABLE var_list var . + 131 func_body1: "(" LOCAL bind_var . VALUE_TYPE ")" func_body1 - NAT reduce using rule 29 (var_list) - VAR reduce using rule 29 (var_list) - $default reduce using rule 48 (plain_instr) + VALUE_TYPE shift, and go to state 366 State 307 - 38 align_opt: ALIGN_EQ_NAT . + 159 inline_import: "(" IMPORT quoted_text . quoted_text ")" - $default reduce using rule 38 (align_opt) + TEXT shift, and go to state 72 + + quoted_text go to state 367 State 308 - 57 plain_instr: LOAD offset_opt align_opt . + 166 inline_export: "(" EXPORT quoted_text . ")" - $default reduce using rule 57 (plain_instr) + ")" shift, and go to state 368 State 309 - 58 plain_instr: STORE offset_opt align_opt . + 73 block_sig: "(" . RESULT value_type_list ")" + 80 expr: "(" . expr1 ")" - $default reduce using rule 58 (plain_instr) + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 160 + IF shift, and go to state 161 + LOOP shift, and go to state 162 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + RESULT shift, and go to state 369 + + plain_instr go to state 164 + expr1 go to state 165 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 166 State 310 - 72 block_instr: try_check labeling_opt block . catch_instr_list END labeling_opt - - CATCH shift, and go to state 361 - CATCH_ALL shift, and go to state 362 + 74 block: block_sig . block - catch_instr go to state 363 - catch_instr_list go to state 364 + "(" shift, and go to state 309 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + block_sig go to state 310 + block go to state 370 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 312 State 311 - 112 func_fields_import1: "(" PARAM . value_type_list ")" func_fields_import1 - 113 | "(" PARAM . bind_var VALUE_TYPE ")" func_fields_import1 - - VAR shift, and go to state 50 - - $default reduce using rule 6 (value_type_list) + 68 block_instr: BLOCK labeling_opt block . END labeling_opt - value_type_list go to state 365 - bind_var go to state 366 + END shift, and go to state 371 State 312 - 115 func_fields_import_result: "(" RESULT . value_type_list ")" func_fields_import_result - - $default reduce using rule 6 (value_type_list) + 75 block: instr_list . - value_type_list go to state 367 + $default reduce using rule 75 (block) State 313 - 112 func_fields_import1: "(" . PARAM value_type_list ")" func_fields_import1 - 113 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_import1 - 115 func_fields_import_result: "(" . RESULT value_type_list ")" func_fields_import_result + 70 block_instr: IF labeling_opt block . END labeling_opt + 71 | IF labeling_opt block . ELSE labeling_opt instr_list END labeling_opt - PARAM shift, and go to state 311 - RESULT shift, and go to state 312 + END shift, and go to state 372 + ELSE shift, and go to state 373 State 314 - 107 func_fields: inline_import type_use func_fields_import . + 69 block_instr: LOOP labeling_opt block . END labeling_opt - $default reduce using rule 107 (func_fields) + END shift, and go to state 374 State 315 - 13 func_sig: "(" PARAM . value_type_list ")" func_sig - 14 | "(" PARAM . bind_var VALUE_TYPE ")" func_sig - - VAR shift, and go to state 50 - - $default reduce using rule 6 (value_type_list) + 29 var_list: var_list var . + 48 plain_instr: BR_TABLE var_list var . - value_type_list go to state 368 - bind_var go to state 369 + NAT reduce using rule 29 (var_list) + VAR reduce using rule 29 (var_list) + $default reduce using rule 48 (plain_instr) State 316 - 16 func_sig_result: "(" RESULT . value_type_list ")" func_sig_result - - $default reduce using rule 6 (value_type_list) + 38 align_opt: ALIGN_EQ_NAT . - value_type_list go to state 370 + $default reduce using rule 38 (align_opt) State 317 - 11 func_type: "(" FUNC func_sig ")" . + 57 plain_instr: LOAD offset_opt align_opt . - $default reduce using rule 11 (func_type) + $default reduce using rule 57 (plain_instr) State 318 - 10 global_type: "(" MUT VALUE_TYPE . ")" + 58 plain_instr: STORE offset_opt align_opt . - ")" shift, and go to state 371 + $default reduce using rule 58 (plain_instr) State 319 - 134 table_fields: elem_type "(" ELEM . var_list ")" + 72 block_instr: try_check labeling_opt block . catch_instr_list END labeling_opt - $default reduce using rule 28 (var_list) + CATCH shift, and go to state 375 + CATCH_ALL shift, and go to state 376 - var_list go to state 372 + catch_instr go to state 377 + catch_instr_list go to state 378 State 320 - 82 expr1: BLOCK labeling_opt block . + 118 func_fields_import1: "(" PARAM . value_type_list ")" func_fields_import1 + 119 | "(" PARAM . bind_var VALUE_TYPE ")" func_fields_import1 - $default reduce using rule 82 (expr1) + VAR shift, and go to state 53 + + $default reduce using rule 6 (value_type_list) + + value_type_list go to state 379 + bind_var go to state 380 State 321 - 73 block_sig: "(" . RESULT value_type_list ")" - 80 expr: "(" . expr1 ")" - 90 if_: "(" . THEN instr_list ")" "(" ELSE instr_list ")" - 91 | "(" . THEN instr_list ")" - - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 156 - IF shift, and go to state 157 - THEN shift, and go to state 373 - LOOP shift, and go to state 158 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - RESULT shift, and go to state 355 - - plain_instr go to state 160 - expr1 go to state 161 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 162 + 121 func_fields_import_result: "(" RESULT . value_type_list ")" func_fields_import_result + + $default reduce using rule 6 (value_type_list) + value_type_list go to state 381 -State 322 - 88 if_block: block_sig . if_block +State 322 - "(" shift, and go to state 321 + 118 func_fields_import1: "(" . PARAM value_type_list ")" func_fields_import1 + 119 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_import1 + 121 func_fields_import_result: "(" . RESULT value_type_list ")" func_fields_import_result - block_sig go to state 322 - expr go to state 323 - if_block go to state 374 - if_ go to state 325 + PARAM shift, and go to state 320 + RESULT shift, and go to state 321 State 323 - 92 if_: expr . "(" THEN instr_list ")" "(" ELSE instr_list ")" - 93 | expr . "(" THEN instr_list ")" - 94 | expr . expr expr - 95 | expr . expr - - "(" shift, and go to state 375 + 113 func_fields: inline_import type_use func_fields_import . - expr go to state 376 + $default reduce using rule 113 (func_fields) State 324 - 84 expr1: IF labeling_opt if_block . + 13 func_sig: "(" PARAM . value_type_list ")" func_sig + 14 | "(" PARAM . bind_var VALUE_TYPE ")" func_sig - $default reduce using rule 84 (expr1) + VAR shift, and go to state 53 + + $default reduce using rule 6 (value_type_list) + + value_type_list go to state 382 + bind_var go to state 383 State 325 - 89 if_block: if_ . + 16 func_sig_result: "(" RESULT . value_type_list ")" func_sig_result + + $default reduce using rule 6 (value_type_list) - $default reduce using rule 89 (if_block) + value_type_list go to state 384 State 326 - 83 expr1: LOOP labeling_opt block . + 11 func_type: "(" FUNC func_sig ")" . - $default reduce using rule 83 (expr1) + $default reduce using rule 11 (func_type) State 327 - 126 offset: "(" OFFSET const_expr ")" . + 10 global_type: "(" MUT VALUE_TYPE . ")" - $default reduce using rule 126 (offset) + ")" shift, and go to state 385 State 328 - 102 expr_list: expr expr_list . - - $default reduce using rule 102 (expr_list) + 140 table_fields: elem_type "(" ELEM . var_list ")" + $default reduce using rule 28 (var_list) -State 329 + var_list go to state 386 - 85 expr1: try_check "(" BLOCK . labeling_opt block ")" catch_list - VAR shift, and go to state 50 +State 329 - $default reduce using rule 33 (labeling_opt) + 82 expr1: BLOCK labeling_opt block . - bind_var go to state 200 - labeling_opt go to state 377 + $default reduce using rule 82 (expr1) State 330 - 128 elem: "(" ELEM var offset var_list ")" . - - $default reduce using rule 128 (elem) + 73 block_sig: "(" . RESULT value_type_list ")" + 80 expr: "(" . expr1 ")" + 94 if_: "(" . THEN instr_list ")" "(" ELSE instr_list ")" + 95 | "(" . THEN instr_list ")" + + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 160 + IF shift, and go to state 161 + THEN shift, and go to state 387 + LOOP shift, and go to state 162 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + RESULT shift, and go to state 369 + + plain_instr go to state 164 + expr1 go to state 165 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 166 State 331 - 141 memory_fields: "(" DATA text_list_opt . ")" + 92 if_block: block_sig . if_block - ")" shift, and go to state 378 + "(" shift, and go to state 330 + + block_sig go to state 331 + expr go to state 332 + if_block go to state 388 + if_ go to state 334 State 332 - 135 data: "(" DATA var offset text_list_opt ")" . + 96 if_: expr . "(" THEN instr_list ")" "(" ELSE instr_list ")" + 97 | expr . "(" THEN instr_list ")" + 98 | expr . expr expr + 99 | expr . expr - $default reduce using rule 135 (data) + "(" shift, and go to state 389 + expr go to state 390 -State 333 - 146 import_desc: "(" FUNC . bind_var_opt type_use ")" - 147 | "(" FUNC . bind_var_opt func_sig ")" - - VAR shift, and go to state 50 +State 333 - $default reduce using rule 30 (bind_var_opt) + 84 expr1: IF labeling_opt if_block . - bind_var_opt go to state 379 - bind_var go to state 52 + $default reduce using rule 84 (expr1) State 334 - 150 import_desc: "(" GLOBAL . bind_var_opt global_type ")" - - VAR shift, and go to state 50 - - $default reduce using rule 30 (bind_var_opt) + 93 if_block: if_ . - bind_var_opt go to state 380 - bind_var go to state 52 + $default reduce using rule 93 (if_block) State 335 - 148 import_desc: "(" TABLE . bind_var_opt table_sig ")" - - VAR shift, and go to state 50 - - $default reduce using rule 30 (bind_var_opt) + 83 expr1: LOOP labeling_opt block . - bind_var_opt go to state 381 - bind_var go to state 52 + $default reduce using rule 83 (expr1) State 336 - 149 import_desc: "(" MEMORY . bind_var_opt memory_sig ")" - - VAR shift, and go to state 50 - - $default reduce using rule 30 (bind_var_opt) + 132 offset: "(" OFFSET const_expr ")" . - bind_var_opt go to state 382 - bind_var go to state 52 + $default reduce using rule 132 (offset) State 337 - 151 import: "(" IMPORT quoted_text quoted_text import_desc ")" . + 106 expr_list: expr expr_list . - $default reduce using rule 151 (import) + $default reduce using rule 106 (expr_list) State 338 - 153 export_desc: "(" FUNC var . ")" - - ")" shift, and go to state 383 + 73 block_sig: "(" . RESULT value_type_list ")" + 80 expr: "(" . expr1 ")" + 90 catch_list: "(" . catch_instr ")" + 91 | "(" . catch_instr ")" catch_list + + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 160 + IF shift, and go to state 161 + LOOP shift, and go to state 162 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + CATCH shift, and go to state 375 + CATCH_ALL shift, and go to state 376 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + RESULT shift, and go to state 369 + + plain_instr go to state 164 + catch_instr go to state 391 + expr1 go to state 165 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 166 State 339 - 156 export_desc: "(" GLOBAL var . ")" + 89 try_instr_list: instr . try_instr_list - ")" shift, and go to state 384 + "(" shift, and go to state 392 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + instr go to state 339 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + try_instr_list go to state 393 + catch_list go to state 343 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 State 340 - 154 export_desc: "(" TABLE var . ")" - - ")" shift, and go to state 385 + 86 try_: block_sig . try_ + + "(" shift, and go to state 338 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + instr go to state 339 + plain_instr go to state 126 + block_instr go to state 127 + block_sig go to state 340 + expr go to state 128 + try_ go to state 394 + try_instr_list go to state 342 + catch_list go to state 343 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 State 341 - 155 export_desc: "(" MEMORY var . ")" + 85 expr1: try_check labeling_opt try_ . - ")" shift, and go to state 386 + $default reduce using rule 85 (expr1) State 342 - 181 script_module: "(" MODULE bind_var_opt BIN text_list ")" . + 87 try_: try_instr_list . - $default reduce using rule 181 (script_module) + $default reduce using rule 87 (try_) State 343 - 182 script_module: "(" MODULE bind_var_opt QUOTE text_list ")" . + 88 try_instr_list: catch_list . - $default reduce using rule 182 (script_module) + $default reduce using rule 88 (try_instr_list) State 344 - 183 action: "(" INVOKE script_var_opt quoted_text const_list ")" . + 134 elem: "(" ELEM var offset var_list ")" . - $default reduce using rule 183 (action) + $default reduce using rule 134 (elem) State 345 - 200 const: "(" CONST . literal ")" - - NAT shift, and go to state 217 - INT shift, and go to state 218 - FLOAT shift, and go to state 219 + 147 memory_fields: "(" DATA text_list_opt . ")" - literal go to state 387 + ")" shift, and go to state 395 State 346 - 21 type_use: "(" TYPE var ")" . + 141 data: "(" DATA var offset text_list_opt ")" . - $default reduce using rule 21 (type_use) + $default reduce using rule 141 (data) State 347 - 118 func_fields_body1: "(" PARAM value_type_list ")" . func_fields_body1 - - "(" shift, and go to state 221 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 128 - func_fields_body1 go to state 388 - func_result_body go to state 132 - func_body go to state 133 - func_body1 go to state 134 + 152 import_desc: "(" FUNC . bind_var_opt type_use ")" + 153 | "(" FUNC . bind_var_opt func_sig ")" + + VAR shift, and go to state 53 + + $default reduce using rule 30 (bind_var_opt) + + bind_var_opt go to state 396 + bind_var go to state 55 State 348 - 7 value_type_list: value_type_list VALUE_TYPE . + 156 import_desc: "(" GLOBAL . bind_var_opt global_type ")" - $default reduce using rule 7 (value_type_list) + VAR shift, and go to state 53 + + $default reduce using rule 30 (bind_var_opt) + + bind_var_opt go to state 397 + bind_var go to state 55 State 349 - 119 func_fields_body1: "(" PARAM bind_var VALUE_TYPE . ")" func_fields_body1 + 154 import_desc: "(" TABLE . bind_var_opt table_sig ")" + + VAR shift, and go to state 53 + + $default reduce using rule 30 (bind_var_opt) - ")" shift, and go to state 389 + bind_var_opt go to state 398 + bind_var go to state 55 State 350 - 121 func_result_body: "(" RESULT value_type_list ")" . func_result_body - - "(" shift, and go to state 390 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 128 - func_result_body go to state 391 - func_body go to state 133 - func_body1 go to state 134 + 155 import_desc: "(" MEMORY . bind_var_opt memory_sig ")" + + VAR shift, and go to state 53 + + $default reduce using rule 30 (bind_var_opt) + + bind_var_opt go to state 399 + bind_var go to state 55 State 351 - 124 func_body1: "(" LOCAL value_type_list ")" . func_body1 + 158 import: "(" IMPORT quoted_text quoted_text import_desc ")" . - "(" shift, and go to state 392 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 128 - func_body1 go to state 393 + $default reduce using rule 158 (import) State 352 - 125 func_body1: "(" LOCAL bind_var VALUE_TYPE . ")" func_body1 + 160 export_desc: "(" FUNC var . ")" - ")" shift, and go to state 394 + ")" shift, and go to state 400 State 353 - 152 inline_import: "(" IMPORT quoted_text quoted_text . ")" + 163 export_desc: "(" GLOBAL var . ")" - ")" shift, and go to state 395 + ")" shift, and go to state 401 State 354 - 158 inline_export: "(" EXPORT quoted_text ")" . + 161 export_desc: "(" TABLE var . ")" - $default reduce using rule 158 (inline_export) + ")" shift, and go to state 402 State 355 - 73 block_sig: "(" RESULT . value_type_list ")" - - $default reduce using rule 6 (value_type_list) + 162 export_desc: "(" MEMORY var . ")" - value_type_list go to state 396 + ")" shift, and go to state 403 State 356 - 74 block: block_sig block . + 164 export_desc: "(" EXCEPT var . ")" - $default reduce using rule 74 (block) + ")" shift, and go to state 404 State 357 - 68 block_instr: BLOCK labeling_opt block END . labeling_opt - - VAR shift, and go to state 50 - - $default reduce using rule 33 (labeling_opt) + 190 script_module: "(" MODULE bind_var_opt BIN text_list ")" . - bind_var go to state 200 - labeling_opt go to state 397 + $default reduce using rule 190 (script_module) State 358 - 70 block_instr: IF labeling_opt block END . labeling_opt - - VAR shift, and go to state 50 - - $default reduce using rule 33 (labeling_opt) + 191 script_module: "(" MODULE bind_var_opt QUOTE text_list ")" . - bind_var go to state 200 - labeling_opt go to state 398 + $default reduce using rule 191 (script_module) State 359 - 71 block_instr: IF labeling_opt block ELSE . labeling_opt instr_list END labeling_opt - - VAR shift, and go to state 50 - - $default reduce using rule 33 (labeling_opt) + 192 action: "(" INVOKE script_var_opt quoted_text const_list ")" . - bind_var go to state 200 - labeling_opt go to state 399 + $default reduce using rule 192 (action) State 360 - 69 block_instr: LOOP labeling_opt block END . labeling_opt + 209 const: "(" CONST . literal ")" - VAR shift, and go to state 50 + NAT shift, and go to state 222 + INT shift, and go to state 223 + FLOAT shift, and go to state 224 - $default reduce using rule 33 (labeling_opt) - - bind_var go to state 200 - labeling_opt go to state 400 + literal go to state 405 State 361 - 76 catch_instr: CATCH . var instr_list - - NAT shift, and go to state 53 - VAR shift, and go to state 54 + 21 type_use: "(" TYPE var ")" . - nat go to state 55 - var go to state 401 + $default reduce using rule 21 (type_use) State 362 - 77 catch_instr: CATCH_ALL . var instr_list - - NAT shift, and go to state 53 - VAR shift, and go to state 54 - - nat go to state 55 - var go to state 402 + 124 func_fields_body1: "(" PARAM value_type_list ")" . func_fields_body1 + + "(" shift, and go to state 226 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 132 + func_fields_body1 go to state 406 + func_result_body go to state 136 + func_body go to state 137 + func_body1 go to state 138 State 363 - 78 catch_instr_list: catch_instr . - 79 | catch_instr . catch_instr_list - - CATCH shift, and go to state 361 - CATCH_ALL shift, and go to state 362 - - $default reduce using rule 78 (catch_instr_list) + 125 func_fields_body1: "(" PARAM bind_var VALUE_TYPE . ")" func_fields_body1 - catch_instr go to state 363 - catch_instr_list go to state 403 + ")" shift, and go to state 407 State 364 - 72 block_instr: try_check labeling_opt block catch_instr_list . END labeling_opt - - END shift, and go to state 404 + 127 func_result_body: "(" RESULT value_type_list ")" . func_result_body + + "(" shift, and go to state 408 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 132 + func_result_body go to state 409 + func_body go to state 137 + func_body1 go to state 138 State 365 - 7 value_type_list: value_type_list . VALUE_TYPE - 112 func_fields_import1: "(" PARAM value_type_list . ")" func_fields_import1 - - ")" shift, and go to state 405 - VALUE_TYPE shift, and go to state 348 + 130 func_body1: "(" LOCAL value_type_list ")" . func_body1 + + "(" shift, and go to state 410 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 132 + func_body1 go to state 411 State 366 - 113 func_fields_import1: "(" PARAM bind_var . VALUE_TYPE ")" func_fields_import1 + 131 func_body1: "(" LOCAL bind_var VALUE_TYPE . ")" func_body1 - VALUE_TYPE shift, and go to state 406 + ")" shift, and go to state 412 State 367 - 7 value_type_list: value_type_list . VALUE_TYPE - 115 func_fields_import_result: "(" RESULT value_type_list . ")" func_fields_import_result + 159 inline_import: "(" IMPORT quoted_text quoted_text . ")" - ")" shift, and go to state 407 - VALUE_TYPE shift, and go to state 348 + ")" shift, and go to state 413 State 368 - 7 value_type_list: value_type_list . VALUE_TYPE - 13 func_sig: "(" PARAM value_type_list . ")" func_sig + 166 inline_export: "(" EXPORT quoted_text ")" . - ")" shift, and go to state 408 - VALUE_TYPE shift, and go to state 348 + $default reduce using rule 166 (inline_export) State 369 - 14 func_sig: "(" PARAM bind_var . VALUE_TYPE ")" func_sig + 73 block_sig: "(" RESULT . value_type_list ")" + + $default reduce using rule 6 (value_type_list) - VALUE_TYPE shift, and go to state 409 + value_type_list go to state 414 State 370 - 7 value_type_list: value_type_list . VALUE_TYPE - 16 func_sig_result: "(" RESULT value_type_list . ")" func_sig_result + 74 block: block_sig block . - ")" shift, and go to state 410 - VALUE_TYPE shift, and go to state 348 + $default reduce using rule 74 (block) State 371 - 10 global_type: "(" MUT VALUE_TYPE ")" . + 68 block_instr: BLOCK labeling_opt block END . labeling_opt - $default reduce using rule 10 (global_type) + VAR shift, and go to state 53 + + $default reduce using rule 33 (labeling_opt) + + bind_var go to state 205 + labeling_opt go to state 415 State 372 - 29 var_list: var_list . var - 134 table_fields: elem_type "(" ELEM var_list . ")" + 70 block_instr: IF labeling_opt block END . labeling_opt + + VAR shift, and go to state 53 - ")" shift, and go to state 411 - NAT shift, and go to state 53 - VAR shift, and go to state 54 + $default reduce using rule 33 (labeling_opt) - nat go to state 55 - var go to state 262 + bind_var go to state 205 + labeling_opt go to state 416 State 373 - 90 if_: "(" THEN . instr_list ")" "(" ELSE instr_list ")" - 91 | "(" THEN . instr_list ")" - - "(" shift, and go to state 223 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 412 + 71 block_instr: IF labeling_opt block ELSE . labeling_opt instr_list END labeling_opt + + VAR shift, and go to state 53 + + $default reduce using rule 33 (labeling_opt) + + bind_var go to state 205 + labeling_opt go to state 417 State 374 - 88 if_block: block_sig if_block . + 69 block_instr: LOOP labeling_opt block END . labeling_opt + + VAR shift, and go to state 53 + + $default reduce using rule 33 (labeling_opt) - $default reduce using rule 88 (if_block) + bind_var go to state 205 + labeling_opt go to state 418 State 375 - 80 expr: "(" . expr1 ")" - 92 if_: expr "(" . THEN instr_list ")" "(" ELSE instr_list ")" - 93 | expr "(" . THEN instr_list ")" - - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 156 - IF shift, and go to state 157 - THEN shift, and go to state 413 - LOOP shift, and go to state 158 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - plain_instr go to state 160 - expr1 go to state 161 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 162 + 76 catch_instr: CATCH . var instr_list + + NAT shift, and go to state 56 + VAR shift, and go to state 57 + + nat go to state 58 + var go to state 419 State 376 - 94 if_: expr expr . expr - 95 | expr expr . + 77 catch_instr: CATCH_ALL . instr_list + + "(" shift, and go to state 228 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 420 - "(" shift, and go to state 223 - $default reduce using rule 95 (if_) +State 377 - expr go to state 414 + 78 catch_instr_list: catch_instr . + 79 | catch_instr . catch_instr_list + CATCH shift, and go to state 375 + CATCH_ALL shift, and go to state 376 -State 377 + $default reduce using rule 78 (catch_instr_list) - 85 expr1: try_check "(" BLOCK labeling_opt . block ")" catch_list - - "(" shift, and go to state 300 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - block_sig go to state 301 - block go to state 415 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 303 + catch_instr go to state 377 + catch_instr_list go to state 421 State 378 - 141 memory_fields: "(" DATA text_list_opt ")" . + 72 block_instr: try_check labeling_opt block catch_instr_list . END labeling_opt - $default reduce using rule 141 (memory_fields) + END shift, and go to state 422 State 379 - 146 import_desc: "(" FUNC bind_var_opt . type_use ")" - 147 | "(" FUNC bind_var_opt . func_sig ")" - - "(" shift, and go to state 416 - - $default reduce using rule 15 (func_sig_result) + 7 value_type_list: value_type_list . VALUE_TYPE + 118 func_fields_import1: "(" PARAM value_type_list . ")" func_fields_import1 - func_sig go to state 417 - func_sig_result go to state 237 - type_use go to state 418 + ")" shift, and go to state 423 + VALUE_TYPE shift, and go to state 285 State 380 - 150 import_desc: "(" GLOBAL bind_var_opt . global_type ")" - - "(" shift, and go to state 243 - VALUE_TYPE shift, and go to state 142 + 119 func_fields_import1: "(" PARAM bind_var . VALUE_TYPE ")" func_fields_import1 - global_type go to state 419 + VALUE_TYPE shift, and go to state 424 State 381 - 148 import_desc: "(" TABLE bind_var_opt . table_sig ")" - - NAT shift, and go to state 53 + 7 value_type_list: value_type_list . VALUE_TYPE + 121 func_fields_import_result: "(" RESULT value_type_list . ")" func_fields_import_result - table_sig go to state 420 - limits go to state 151 - nat go to state 152 + ")" shift, and go to state 425 + VALUE_TYPE shift, and go to state 285 State 382 - 149 import_desc: "(" MEMORY bind_var_opt . memory_sig ")" - - NAT shift, and go to state 53 + 7 value_type_list: value_type_list . VALUE_TYPE + 13 func_sig: "(" PARAM value_type_list . ")" func_sig - memory_sig go to state 421 - limits go to state 167 - nat go to state 152 + ")" shift, and go to state 426 + VALUE_TYPE shift, and go to state 285 State 383 - 153 export_desc: "(" FUNC var ")" . + 14 func_sig: "(" PARAM bind_var . VALUE_TYPE ")" func_sig - $default reduce using rule 153 (export_desc) + VALUE_TYPE shift, and go to state 427 State 384 - 156 export_desc: "(" GLOBAL var ")" . + 7 value_type_list: value_type_list . VALUE_TYPE + 16 func_sig_result: "(" RESULT value_type_list . ")" func_sig_result - $default reduce using rule 156 (export_desc) + ")" shift, and go to state 428 + VALUE_TYPE shift, and go to state 285 State 385 - 154 export_desc: "(" TABLE var ")" . + 10 global_type: "(" MUT VALUE_TYPE ")" . - $default reduce using rule 154 (export_desc) + $default reduce using rule 10 (global_type) State 386 - 155 export_desc: "(" MEMORY var ")" . + 29 var_list: var_list . var + 140 table_fields: elem_type "(" ELEM var_list . ")" + + ")" shift, and go to state 429 + NAT shift, and go to state 56 + VAR shift, and go to state 57 - $default reduce using rule 155 (export_desc) + nat go to state 58 + var go to state 267 State 387 - 200 const: "(" CONST literal . ")" - - ")" shift, and go to state 422 + 94 if_: "(" THEN . instr_list ")" "(" ELSE instr_list ")" + 95 | "(" THEN . instr_list ")" + + "(" shift, and go to state 228 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 430 State 388 - 118 func_fields_body1: "(" PARAM value_type_list ")" func_fields_body1 . + 92 if_block: block_sig if_block . - $default reduce using rule 118 (func_fields_body1) + $default reduce using rule 92 (if_block) State 389 - 119 func_fields_body1: "(" PARAM bind_var VALUE_TYPE ")" . func_fields_body1 - - "(" shift, and go to state 221 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 128 - func_fields_body1 go to state 423 - func_result_body go to state 132 - func_body go to state 133 - func_body1 go to state 134 + 80 expr: "(" . expr1 ")" + 96 if_: expr "(" . THEN instr_list ")" "(" ELSE instr_list ")" + 97 | expr "(" . THEN instr_list ")" + + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 160 + IF shift, and go to state 161 + THEN shift, and go to state 431 + LOOP shift, and go to state 162 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + plain_instr go to state 164 + expr1 go to state 165 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 166 State 390 - 80 expr: "(" . expr1 ")" - 121 func_result_body: "(" . RESULT value_type_list ")" func_result_body - 124 func_body1: "(" . LOCAL value_type_list ")" func_body1 - 125 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body1 - - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 156 - IF shift, and go to state 157 - LOOP shift, and go to state 158 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - RESULT shift, and go to state 196 - LOCAL shift, and go to state 197 - - plain_instr go to state 160 - expr1 go to state 161 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 162 + 98 if_: expr expr . expr + 99 | expr expr . + + "(" shift, and go to state 228 + + $default reduce using rule 99 (if_) + + expr go to state 432 State 391 - 121 func_result_body: "(" RESULT value_type_list ")" func_result_body . + 90 catch_list: "(" catch_instr . ")" + 91 | "(" catch_instr . ")" catch_list - $default reduce using rule 121 (func_result_body) + ")" shift, and go to state 433 State 392 80 expr: "(" . expr1 ")" - 124 func_body1: "(" . LOCAL value_type_list ")" func_body1 - 125 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body1 - - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 156 - IF shift, and go to state 157 - LOOP shift, and go to state 158 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - LOCAL shift, and go to state 197 - - plain_instr go to state 160 - expr1 go to state 161 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 162 + 90 catch_list: "(" . catch_instr ")" + 91 | "(" . catch_instr ")" catch_list + + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 160 + IF shift, and go to state 161 + LOOP shift, and go to state 162 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + CATCH shift, and go to state 375 + CATCH_ALL shift, and go to state 376 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + plain_instr go to state 164 + catch_instr go to state 391 + expr1 go to state 165 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 166 State 393 - 124 func_body1: "(" LOCAL value_type_list ")" func_body1 . + 89 try_instr_list: instr try_instr_list . - $default reduce using rule 124 (func_body1) + $default reduce using rule 89 (try_instr_list) State 394 - 125 func_body1: "(" LOCAL bind_var VALUE_TYPE ")" . func_body1 + 86 try_: block_sig try_ . - "(" shift, and go to state 392 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 128 - func_body1 go to state 424 + $default reduce using rule 86 (try_) State 395 - 152 inline_import: "(" IMPORT quoted_text quoted_text ")" . + 147 memory_fields: "(" DATA text_list_opt ")" . - $default reduce using rule 152 (inline_import) + $default reduce using rule 147 (memory_fields) State 396 - 7 value_type_list: value_type_list . VALUE_TYPE - 73 block_sig: "(" RESULT value_type_list . ")" + 152 import_desc: "(" FUNC bind_var_opt . type_use ")" + 153 | "(" FUNC bind_var_opt . func_sig ")" - ")" shift, and go to state 425 - VALUE_TYPE shift, and go to state 348 + "(" shift, and go to state 434 + + $default reduce using rule 15 (func_sig_result) + + func_sig go to state 435 + func_sig_result go to state 242 + type_use go to state 436 State 397 - 68 block_instr: BLOCK labeling_opt block END labeling_opt . + 156 import_desc: "(" GLOBAL bind_var_opt . global_type ")" - $default reduce using rule 68 (block_instr) + "(" shift, and go to state 248 + VALUE_TYPE shift, and go to state 146 + + global_type go to state 437 State 398 - 70 block_instr: IF labeling_opt block END labeling_opt . + 154 import_desc: "(" TABLE bind_var_opt . table_sig ")" - $default reduce using rule 70 (block_instr) + NAT shift, and go to state 56 + + table_sig go to state 438 + limits go to state 155 + nat go to state 156 State 399 - 71 block_instr: IF labeling_opt block ELSE labeling_opt . instr_list END labeling_opt + 155 import_desc: "(" MEMORY bind_var_opt . memory_sig ")" - "(" shift, and go to state 223 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 426 + NAT shift, and go to state 56 + + memory_sig go to state 439 + limits go to state 171 + nat go to state 156 State 400 - 69 block_instr: LOOP labeling_opt block END labeling_opt . + 160 export_desc: "(" FUNC var ")" . - $default reduce using rule 69 (block_instr) + $default reduce using rule 160 (export_desc) State 401 - 76 catch_instr: CATCH var . instr_list + 163 export_desc: "(" GLOBAL var ")" . - "(" shift, and go to state 223 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 427 + $default reduce using rule 163 (export_desc) State 402 - 77 catch_instr: CATCH_ALL var . instr_list - - "(" shift, and go to state 223 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 428 + 161 export_desc: "(" TABLE var ")" . + + $default reduce using rule 161 (export_desc) State 403 - 79 catch_instr_list: catch_instr catch_instr_list . + 162 export_desc: "(" MEMORY var ")" . - $default reduce using rule 79 (catch_instr_list) + $default reduce using rule 162 (export_desc) State 404 - 72 block_instr: try_check labeling_opt block catch_instr_list END . labeling_opt - - VAR shift, and go to state 50 - - $default reduce using rule 33 (labeling_opt) + 164 export_desc: "(" EXCEPT var ")" . - bind_var go to state 200 - labeling_opt go to state 429 + $default reduce using rule 164 (export_desc) State 405 - 112 func_fields_import1: "(" PARAM value_type_list ")" . func_fields_import1 - - "(" shift, and go to state 313 + 209 const: "(" CONST literal . ")" - $default reduce using rule 114 (func_fields_import_result) - - func_fields_import1 go to state 430 - func_fields_import_result go to state 233 + ")" shift, and go to state 440 State 406 - 113 func_fields_import1: "(" PARAM bind_var VALUE_TYPE . ")" func_fields_import1 + 124 func_fields_body1: "(" PARAM value_type_list ")" func_fields_body1 . - ")" shift, and go to state 431 + $default reduce using rule 124 (func_fields_body1) State 407 - 115 func_fields_import_result: "(" RESULT value_type_list ")" . func_fields_import_result - - "(" shift, and go to state 432 - - $default reduce using rule 114 (func_fields_import_result) - - func_fields_import_result go to state 433 + 125 func_fields_body1: "(" PARAM bind_var VALUE_TYPE ")" . func_fields_body1 + + "(" shift, and go to state 226 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 132 + func_fields_body1 go to state 441 + func_result_body go to state 136 + func_body go to state 137 + func_body1 go to state 138 State 408 - 13 func_sig: "(" PARAM value_type_list ")" . func_sig - - "(" shift, and go to state 235 - - $default reduce using rule 15 (func_sig_result) - - func_sig go to state 434 - func_sig_result go to state 237 + 80 expr: "(" . expr1 ")" + 127 func_result_body: "(" . RESULT value_type_list ")" func_result_body + 130 func_body1: "(" . LOCAL value_type_list ")" func_body1 + 131 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body1 + + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 160 + IF shift, and go to state 161 + LOOP shift, and go to state 162 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + RESULT shift, and go to state 201 + LOCAL shift, and go to state 202 + + plain_instr go to state 164 + expr1 go to state 165 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 166 State 409 - 14 func_sig: "(" PARAM bind_var VALUE_TYPE . ")" func_sig + 127 func_result_body: "(" RESULT value_type_list ")" func_result_body . - ")" shift, and go to state 435 + $default reduce using rule 127 (func_result_body) State 410 - 16 func_sig_result: "(" RESULT value_type_list ")" . func_sig_result - - "(" shift, and go to state 436 - - $default reduce using rule 15 (func_sig_result) - - func_sig_result go to state 437 + 80 expr: "(" . expr1 ")" + 130 func_body1: "(" . LOCAL value_type_list ")" func_body1 + 131 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body1 + + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 160 + IF shift, and go to state 161 + LOOP shift, and go to state 162 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + LOCAL shift, and go to state 202 + + plain_instr go to state 164 + expr1 go to state 165 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 166 State 411 - 134 table_fields: elem_type "(" ELEM var_list ")" . + 130 func_body1: "(" LOCAL value_type_list ")" func_body1 . - $default reduce using rule 134 (table_fields) + $default reduce using rule 130 (func_body1) State 412 - 90 if_: "(" THEN instr_list . ")" "(" ELSE instr_list ")" - 91 | "(" THEN instr_list . ")" - - ")" shift, and go to state 438 + 131 func_body1: "(" LOCAL bind_var VALUE_TYPE ")" . func_body1 + + "(" shift, and go to state 410 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 132 + func_body1 go to state 442 State 413 - 92 if_: expr "(" THEN . instr_list ")" "(" ELSE instr_list ")" - 93 | expr "(" THEN . instr_list ")" - - "(" shift, and go to state 223 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 439 + 159 inline_import: "(" IMPORT quoted_text quoted_text ")" . + + $default reduce using rule 159 (inline_import) State 414 - 94 if_: expr expr expr . + 7 value_type_list: value_type_list . VALUE_TYPE + 73 block_sig: "(" RESULT value_type_list . ")" - $default reduce using rule 94 (if_) + ")" shift, and go to state 443 + VALUE_TYPE shift, and go to state 285 State 415 - 85 expr1: try_check "(" BLOCK labeling_opt block . ")" catch_list + 68 block_instr: BLOCK labeling_opt block END labeling_opt . - ")" shift, and go to state 440 + $default reduce using rule 68 (block_instr) State 416 - 13 func_sig: "(" . PARAM value_type_list ")" func_sig - 14 | "(" . PARAM bind_var VALUE_TYPE ")" func_sig - 16 func_sig_result: "(" . RESULT value_type_list ")" func_sig_result - 21 type_use: "(" . TYPE var ")" + 70 block_instr: IF labeling_opt block END labeling_opt . - TYPE shift, and go to state 194 - PARAM shift, and go to state 315 - RESULT shift, and go to state 316 + $default reduce using rule 70 (block_instr) State 417 - 147 import_desc: "(" FUNC bind_var_opt func_sig . ")" + 71 block_instr: IF labeling_opt block ELSE labeling_opt . instr_list END labeling_opt - ")" shift, and go to state 441 + "(" shift, and go to state 228 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 444 State 418 - 146 import_desc: "(" FUNC bind_var_opt type_use . ")" + 69 block_instr: LOOP labeling_opt block END labeling_opt . - ")" shift, and go to state 442 + $default reduce using rule 69 (block_instr) State 419 - 150 import_desc: "(" GLOBAL bind_var_opt global_type . ")" + 76 catch_instr: CATCH var . instr_list - ")" shift, and go to state 443 + "(" shift, and go to state 228 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 445 State 420 - 148 import_desc: "(" TABLE bind_var_opt table_sig . ")" + 77 catch_instr: CATCH_ALL instr_list . - ")" shift, and go to state 444 + $default reduce using rule 77 (catch_instr) State 421 - 149 import_desc: "(" MEMORY bind_var_opt memory_sig . ")" + 79 catch_instr_list: catch_instr catch_instr_list . - ")" shift, and go to state 445 + $default reduce using rule 79 (catch_instr_list) State 422 - 200 const: "(" CONST literal ")" . + 72 block_instr: try_check labeling_opt block catch_instr_list END . labeling_opt + + VAR shift, and go to state 53 - $default reduce using rule 200 (const) + $default reduce using rule 33 (labeling_opt) + + bind_var go to state 205 + labeling_opt go to state 446 State 423 - 119 func_fields_body1: "(" PARAM bind_var VALUE_TYPE ")" func_fields_body1 . + 118 func_fields_import1: "(" PARAM value_type_list ")" . func_fields_import1 + + "(" shift, and go to state 322 - $default reduce using rule 119 (func_fields_body1) + $default reduce using rule 120 (func_fields_import_result) + + func_fields_import1 go to state 447 + func_fields_import_result go to state 238 State 424 - 125 func_body1: "(" LOCAL bind_var VALUE_TYPE ")" func_body1 . + 119 func_fields_import1: "(" PARAM bind_var VALUE_TYPE . ")" func_fields_import1 - $default reduce using rule 125 (func_body1) + ")" shift, and go to state 448 State 425 - 73 block_sig: "(" RESULT value_type_list ")" . + 121 func_fields_import_result: "(" RESULT value_type_list ")" . func_fields_import_result - $default reduce using rule 73 (block_sig) + "(" shift, and go to state 449 + + $default reduce using rule 120 (func_fields_import_result) + + func_fields_import_result go to state 450 State 426 - 71 block_instr: IF labeling_opt block ELSE labeling_opt instr_list . END labeling_opt + 13 func_sig: "(" PARAM value_type_list ")" . func_sig - END shift, and go to state 446 + "(" shift, and go to state 240 + + $default reduce using rule 15 (func_sig_result) + + func_sig go to state 451 + func_sig_result go to state 242 State 427 - 76 catch_instr: CATCH var instr_list . + 14 func_sig: "(" PARAM bind_var VALUE_TYPE . ")" func_sig - $default reduce using rule 76 (catch_instr) + ")" shift, and go to state 452 State 428 - 77 catch_instr: CATCH_ALL var instr_list . + 16 func_sig_result: "(" RESULT value_type_list ")" . func_sig_result - $default reduce using rule 77 (catch_instr) + "(" shift, and go to state 453 + + $default reduce using rule 15 (func_sig_result) + + func_sig_result go to state 454 State 429 - 72 block_instr: try_check labeling_opt block catch_instr_list END labeling_opt . + 140 table_fields: elem_type "(" ELEM var_list ")" . - $default reduce using rule 72 (block_instr) + $default reduce using rule 140 (table_fields) State 430 - 112 func_fields_import1: "(" PARAM value_type_list ")" func_fields_import1 . + 94 if_: "(" THEN instr_list . ")" "(" ELSE instr_list ")" + 95 | "(" THEN instr_list . ")" - $default reduce using rule 112 (func_fields_import1) + ")" shift, and go to state 455 State 431 - 113 func_fields_import1: "(" PARAM bind_var VALUE_TYPE ")" . func_fields_import1 - - "(" shift, and go to state 313 - - $default reduce using rule 114 (func_fields_import_result) - - func_fields_import1 go to state 447 - func_fields_import_result go to state 233 + 96 if_: expr "(" THEN . instr_list ")" "(" ELSE instr_list ")" + 97 | expr "(" THEN . instr_list ")" + + "(" shift, and go to state 228 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 456 State 432 - 115 func_fields_import_result: "(" . RESULT value_type_list ")" func_fields_import_result + 98 if_: expr expr expr . - RESULT shift, and go to state 312 + $default reduce using rule 98 (if_) State 433 - 115 func_fields_import_result: "(" RESULT value_type_list ")" func_fields_import_result . + 90 catch_list: "(" catch_instr ")" . + 91 | "(" catch_instr ")" . catch_list + + "(" shift, and go to state 457 - $default reduce using rule 115 (func_fields_import_result) + $default reduce using rule 90 (catch_list) + + catch_list go to state 458 State 434 - 13 func_sig: "(" PARAM value_type_list ")" func_sig . + 13 func_sig: "(" . PARAM value_type_list ")" func_sig + 14 | "(" . PARAM bind_var VALUE_TYPE ")" func_sig + 16 func_sig_result: "(" . RESULT value_type_list ")" func_sig_result + 21 type_use: "(" . TYPE var ")" - $default reduce using rule 13 (func_sig) + TYPE shift, and go to state 199 + PARAM shift, and go to state 324 + RESULT shift, and go to state 325 State 435 - 14 func_sig: "(" PARAM bind_var VALUE_TYPE ")" . func_sig - - "(" shift, and go to state 235 + 153 import_desc: "(" FUNC bind_var_opt func_sig . ")" - $default reduce using rule 15 (func_sig_result) - - func_sig go to state 448 - func_sig_result go to state 237 + ")" shift, and go to state 459 State 436 - 16 func_sig_result: "(" . RESULT value_type_list ")" func_sig_result + 152 import_desc: "(" FUNC bind_var_opt type_use . ")" - RESULT shift, and go to state 316 + ")" shift, and go to state 460 State 437 - 16 func_sig_result: "(" RESULT value_type_list ")" func_sig_result . + 156 import_desc: "(" GLOBAL bind_var_opt global_type . ")" - $default reduce using rule 16 (func_sig_result) + ")" shift, and go to state 461 State 438 - 90 if_: "(" THEN instr_list ")" . "(" ELSE instr_list ")" - 91 | "(" THEN instr_list ")" . - - "(" shift, and go to state 449 + 154 import_desc: "(" TABLE bind_var_opt table_sig . ")" - $default reduce using rule 91 (if_) + ")" shift, and go to state 462 State 439 - 92 if_: expr "(" THEN instr_list . ")" "(" ELSE instr_list ")" - 93 | expr "(" THEN instr_list . ")" + 155 import_desc: "(" MEMORY bind_var_opt memory_sig . ")" - ")" shift, and go to state 450 + ")" shift, and go to state 463 State 440 - 85 expr1: try_check "(" BLOCK labeling_opt block ")" . catch_list - - "(" shift, and go to state 451 + 209 const: "(" CONST literal ")" . - catch_list go to state 452 + $default reduce using rule 209 (const) State 441 - 147 import_desc: "(" FUNC bind_var_opt func_sig ")" . + 125 func_fields_body1: "(" PARAM bind_var VALUE_TYPE ")" func_fields_body1 . - $default reduce using rule 147 (import_desc) + $default reduce using rule 125 (func_fields_body1) State 442 - 146 import_desc: "(" FUNC bind_var_opt type_use ")" . + 131 func_body1: "(" LOCAL bind_var VALUE_TYPE ")" func_body1 . - $default reduce using rule 146 (import_desc) + $default reduce using rule 131 (func_body1) State 443 - 150 import_desc: "(" GLOBAL bind_var_opt global_type ")" . + 73 block_sig: "(" RESULT value_type_list ")" . - $default reduce using rule 150 (import_desc) + $default reduce using rule 73 (block_sig) State 444 - 148 import_desc: "(" TABLE bind_var_opt table_sig ")" . + 71 block_instr: IF labeling_opt block ELSE labeling_opt instr_list . END labeling_opt - $default reduce using rule 148 (import_desc) + END shift, and go to state 464 State 445 - 149 import_desc: "(" MEMORY bind_var_opt memory_sig ")" . + 76 catch_instr: CATCH var instr_list . - $default reduce using rule 149 (import_desc) + $default reduce using rule 76 (catch_instr) State 446 - 71 block_instr: IF labeling_opt block ELSE labeling_opt instr_list END . labeling_opt - - VAR shift, and go to state 50 - - $default reduce using rule 33 (labeling_opt) + 72 block_instr: try_check labeling_opt block catch_instr_list END labeling_opt . - bind_var go to state 200 - labeling_opt go to state 453 + $default reduce using rule 72 (block_instr) State 447 - 113 func_fields_import1: "(" PARAM bind_var VALUE_TYPE ")" func_fields_import1 . + 118 func_fields_import1: "(" PARAM value_type_list ")" func_fields_import1 . - $default reduce using rule 113 (func_fields_import1) + $default reduce using rule 118 (func_fields_import1) State 448 - 14 func_sig: "(" PARAM bind_var VALUE_TYPE ")" func_sig . + 119 func_fields_import1: "(" PARAM bind_var VALUE_TYPE ")" . func_fields_import1 - $default reduce using rule 14 (func_sig) + "(" shift, and go to state 322 + + $default reduce using rule 120 (func_fields_import_result) + + func_fields_import1 go to state 465 + func_fields_import_result go to state 238 State 449 - 90 if_: "(" THEN instr_list ")" "(" . ELSE instr_list ")" + 121 func_fields_import_result: "(" . RESULT value_type_list ")" func_fields_import_result - ELSE shift, and go to state 454 + RESULT shift, and go to state 321 State 450 - 92 if_: expr "(" THEN instr_list ")" . "(" ELSE instr_list ")" - 93 | expr "(" THEN instr_list ")" . - - "(" shift, and go to state 455 + 121 func_fields_import_result: "(" RESULT value_type_list ")" func_fields_import_result . - $default reduce using rule 93 (if_) + $default reduce using rule 121 (func_fields_import_result) State 451 - 86 catch_list: "(" . catch_instr ")" - 87 | "(" . catch_instr ")" catch_list - - CATCH shift, and go to state 361 - CATCH_ALL shift, and go to state 362 + 13 func_sig: "(" PARAM value_type_list ")" func_sig . - catch_instr go to state 456 + $default reduce using rule 13 (func_sig) State 452 - 85 expr1: try_check "(" BLOCK labeling_opt block ")" catch_list . + 14 func_sig: "(" PARAM bind_var VALUE_TYPE ")" . func_sig - $default reduce using rule 85 (expr1) + "(" shift, and go to state 240 + + $default reduce using rule 15 (func_sig_result) + + func_sig go to state 466 + func_sig_result go to state 242 State 453 - 71 block_instr: IF labeling_opt block ELSE labeling_opt instr_list END labeling_opt . + 16 func_sig_result: "(" . RESULT value_type_list ")" func_sig_result - $default reduce using rule 71 (block_instr) + RESULT shift, and go to state 325 State 454 - 90 if_: "(" THEN instr_list ")" "(" ELSE . instr_list ")" - - "(" shift, and go to state 223 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 457 + 16 func_sig_result: "(" RESULT value_type_list ")" func_sig_result . + + $default reduce using rule 16 (func_sig_result) State 455 - 92 if_: expr "(" THEN instr_list ")" "(" . ELSE instr_list ")" + 94 if_: "(" THEN instr_list ")" . "(" ELSE instr_list ")" + 95 | "(" THEN instr_list ")" . + + "(" shift, and go to state 467 - ELSE shift, and go to state 458 + $default reduce using rule 95 (if_) State 456 - 86 catch_list: "(" catch_instr . ")" - 87 | "(" catch_instr . ")" catch_list + 96 if_: expr "(" THEN instr_list . ")" "(" ELSE instr_list ")" + 97 | expr "(" THEN instr_list . ")" - ")" shift, and go to state 459 + ")" shift, and go to state 468 State 457 - 90 if_: "(" THEN instr_list ")" "(" ELSE instr_list . ")" + 90 catch_list: "(" . catch_instr ")" + 91 | "(" . catch_instr ")" catch_list - ")" shift, and go to state 460 + CATCH shift, and go to state 375 + CATCH_ALL shift, and go to state 376 + catch_instr go to state 391 -State 458 - 92 if_: expr "(" THEN instr_list ")" "(" ELSE . instr_list ")" - - "(" shift, and go to state 223 - NOP shift, and go to state 90 - DROP shift, and go to state 91 - BLOCK shift, and go to state 92 - IF shift, and go to state 93 - LOOP shift, and go to state 94 - BR shift, and go to state 95 - BR_IF shift, and go to state 96 - BR_TABLE shift, and go to state 97 - TRY shift, and go to state 98 - THROW shift, and go to state 99 - RETHROW shift, and go to state 100 - CALL shift, and go to state 101 - CALL_INDIRECT shift, and go to state 102 - RETURN shift, and go to state 103 - GET_LOCAL shift, and go to state 104 - SET_LOCAL shift, and go to state 105 - TEE_LOCAL shift, and go to state 106 - GET_GLOBAL shift, and go to state 107 - SET_GLOBAL shift, and go to state 108 - LOAD shift, and go to state 109 - STORE shift, and go to state 110 - CONST shift, and go to state 111 - UNARY shift, and go to state 112 - BINARY shift, and go to state 113 - COMPARE shift, and go to state 114 - CONVERT shift, and go to state 115 - SELECT shift, and go to state 116 - UNREACHABLE shift, and go to state 117 - CURRENT_MEMORY shift, and go to state 118 - GROW_MEMORY shift, and go to state 119 - - $default reduce using rule 99 (instr_list) - - instr go to state 121 - plain_instr go to state 122 - block_instr go to state 123 - expr go to state 124 - rethrow_check go to state 125 - throw_check go to state 126 - try_check go to state 127 - instr_list go to state 461 +State 458 + 91 catch_list: "(" catch_instr ")" catch_list . -State 459 + $default reduce using rule 91 (catch_list) - 86 catch_list: "(" catch_instr ")" . - 87 | "(" catch_instr ")" . catch_list - "(" shift, and go to state 451 +State 459 - $default reduce using rule 86 (catch_list) + 153 import_desc: "(" FUNC bind_var_opt func_sig ")" . - catch_list go to state 462 + $default reduce using rule 153 (import_desc) State 460 - 90 if_: "(" THEN instr_list ")" "(" ELSE instr_list ")" . + 152 import_desc: "(" FUNC bind_var_opt type_use ")" . - $default reduce using rule 90 (if_) + $default reduce using rule 152 (import_desc) State 461 - 92 if_: expr "(" THEN instr_list ")" "(" ELSE instr_list . ")" + 156 import_desc: "(" GLOBAL bind_var_opt global_type ")" . - ")" shift, and go to state 463 + $default reduce using rule 156 (import_desc) State 462 - 87 catch_list: "(" catch_instr ")" catch_list . + 154 import_desc: "(" TABLE bind_var_opt table_sig ")" . - $default reduce using rule 87 (catch_list) + $default reduce using rule 154 (import_desc) State 463 - 92 if_: expr "(" THEN instr_list ")" "(" ELSE instr_list ")" . + 155 import_desc: "(" MEMORY bind_var_opt memory_sig ")" . + + $default reduce using rule 155 (import_desc) + + +State 464 + + 71 block_instr: IF labeling_opt block ELSE labeling_opt instr_list END . labeling_opt + + VAR shift, and go to state 53 + + $default reduce using rule 33 (labeling_opt) + + bind_var go to state 205 + labeling_opt go to state 469 + + +State 465 + + 119 func_fields_import1: "(" PARAM bind_var VALUE_TYPE ")" func_fields_import1 . + + $default reduce using rule 119 (func_fields_import1) + + +State 466 + + 14 func_sig: "(" PARAM bind_var VALUE_TYPE ")" func_sig . + + $default reduce using rule 14 (func_sig) + + +State 467 + + 94 if_: "(" THEN instr_list ")" "(" . ELSE instr_list ")" + + ELSE shift, and go to state 470 + + +State 468 + + 96 if_: expr "(" THEN instr_list ")" . "(" ELSE instr_list ")" + 97 | expr "(" THEN instr_list ")" . + + "(" shift, and go to state 471 + + $default reduce using rule 97 (if_) + + +State 469 + + 71 block_instr: IF labeling_opt block ELSE labeling_opt instr_list END labeling_opt . + + $default reduce using rule 71 (block_instr) + + +State 470 + + 94 if_: "(" THEN instr_list ")" "(" ELSE . instr_list ")" + + "(" shift, and go to state 228 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 472 + + +State 471 + + 96 if_: expr "(" THEN instr_list ")" "(" . ELSE instr_list ")" + + ELSE shift, and go to state 473 + + +State 472 + + 94 if_: "(" THEN instr_list ")" "(" ELSE instr_list . ")" + + ")" shift, and go to state 474 + + +State 473 + + 96 if_: expr "(" THEN instr_list ")" "(" ELSE . instr_list ")" + + "(" shift, and go to state 228 + NOP shift, and go to state 94 + DROP shift, and go to state 95 + BLOCK shift, and go to state 96 + IF shift, and go to state 97 + LOOP shift, and go to state 98 + BR shift, and go to state 99 + BR_IF shift, and go to state 100 + BR_TABLE shift, and go to state 101 + TRY shift, and go to state 102 + THROW shift, and go to state 103 + RETHROW shift, and go to state 104 + CALL shift, and go to state 105 + CALL_INDIRECT shift, and go to state 106 + RETURN shift, and go to state 107 + GET_LOCAL shift, and go to state 108 + SET_LOCAL shift, and go to state 109 + TEE_LOCAL shift, and go to state 110 + GET_GLOBAL shift, and go to state 111 + SET_GLOBAL shift, and go to state 112 + LOAD shift, and go to state 113 + STORE shift, and go to state 114 + CONST shift, and go to state 115 + UNARY shift, and go to state 116 + BINARY shift, and go to state 117 + COMPARE shift, and go to state 118 + CONVERT shift, and go to state 119 + SELECT shift, and go to state 120 + UNREACHABLE shift, and go to state 121 + CURRENT_MEMORY shift, and go to state 122 + GROW_MEMORY shift, and go to state 123 + + $default reduce using rule 103 (instr_list) + + instr go to state 125 + plain_instr go to state 126 + block_instr go to state 127 + expr go to state 128 + rethrow_check go to state 129 + throw_check go to state 130 + try_check go to state 131 + instr_list go to state 475 + + +State 474 + + 94 if_: "(" THEN instr_list ")" "(" ELSE instr_list ")" . + + $default reduce using rule 94 (if_) + + +State 475 + + 96 if_: expr "(" THEN instr_list ")" "(" ELSE instr_list . ")" + + ")" shift, and go to state 476 + + +State 476 + + 96 if_: expr "(" THEN instr_list ")" "(" ELSE instr_list ")" . - $default reduce using rule 92 (if_) + $default reduce using rule 96 (if_) diff --git a/src/resolve-names.cc b/src/resolve-names.cc index 5e2959ea..a55ec3c9 100644 --- a/src/resolve-names.cc +++ b/src/resolve-names.cc @@ -310,6 +310,10 @@ void NameResolver::VisitExport(Export* export_) { case ExternalKind::Global: ResolveGlobalVar(&export_->var); break; + + case ExternalKind::Except: + WABT_FATAL("NameResolver::VisitExport(except) not defined\n"); + break; } } diff --git a/src/validator.cc b/src/validator.cc index 690d3943..b652bf3e 100644 --- a/src/validator.cc +++ b/src/validator.cc @@ -123,7 +123,7 @@ class Validator { void CheckMemory(const Location* loc, const Memory* memory); void CheckDataSegments(const Module* module); void CheckImport(const Location* loc, const Import* import); - void CheckExport(const Export* export_); + void CheckExport(const Location* loc, const Export* export_); void CheckDuplicateExportBindings(const Module* module); void CheckModule(const Module* module); @@ -749,6 +749,10 @@ void Validator::CheckDataSegments(const Module* module) { void Validator::CheckImport(const Location* loc, const Import* import) { switch (import->kind) { + case ExternalKind::Except: + // TODO(karlschimpf) Define. + PrintError(loc, "import except: don't know how to validate"); + break; case ExternalKind::Func: if (import->func->decl.has_func_type) CheckFuncTypeVar(&import->func->decl.type_var, nullptr); @@ -771,8 +775,12 @@ void Validator::CheckImport(const Location* loc, const Import* import) { } } -void Validator::CheckExport(const Export* export_) { +void Validator::CheckExport(const Location* loc, const Export* export_) { switch (export_->kind) { + case ExternalKind::Except: + // TODO(karlschimpf) Define. + PrintError(loc, "except: don't know how to validate export"); + break; case ExternalKind::Func: CheckFuncVar(&export_->var, nullptr); break; @@ -816,6 +824,10 @@ void Validator::CheckModule(const Module* module) { for (ModuleField* field = module->first_field; field; field = field->next) { switch (field->type) { + case ModuleFieldType::Except: + // TODO(karlschimpf) Define. + PrintError(&field->loc, "except clause: don't know how to validate"); + break; case ModuleFieldType::Func: CheckFunc(&field->loc, field->func); break; @@ -830,7 +842,7 @@ void Validator::CheckModule(const Module* module) { break; case ModuleFieldType::Export: - CheckExport(field->export_); + CheckExport(&field->loc, field->export_); break; case ModuleFieldType::Table: diff --git a/src/wast-lexer.cc b/src/wast-lexer.cc index 1b4a81ef..bf1bb138 100644 --- a/src/wast-lexer.cc +++ b/src/wast-lexer.cc @@ -449,6 +449,7 @@ int WastLexer::GetToken(Token* lval, Location* loc, WastParser* parser) { <i> "offset" { RETURN(OFFSET); } <i> "import" { RETURN(IMPORT); } <i> "export" { RETURN(EXPORT); } + <i> "except" { RETURN(EXCEPT); } <i> "register" { RETURN(REGISTER); } <i> "invoke" { RETURN(INVOKE); } <i> "get" { RETURN(GET); } diff --git a/src/wast-parser-lexer-shared.h b/src/wast-parser-lexer-shared.h index 69ef6530..76be8f31 100644 --- a/src/wast-parser-lexer-shared.h +++ b/src/wast-parser-lexer-shared.h @@ -71,6 +71,7 @@ union Token { ConstVector* consts; DataSegment* data_segment; ElemSegment* elem_segment; + Exception* exception; Export* export_; Expr* expr; ExprList expr_list; diff --git a/src/wast-parser.y b/src/wast-parser.y index 277942ec..91dd633c 100644 --- a/src/wast-parser.y +++ b/src/wast-parser.y @@ -95,12 +95,12 @@ } \ } while (0) -#define CHECK_ALLOW_EXCEPTIONS(loc, opcode_name) \ - do { \ - if (!parser->options->allow_exceptions) { \ - wast_parser_error(loc, lexer, parser, "opcode not allowed: %s", \ - opcode_name); \ - } \ +#define CHECK_ALLOW_EXCEPTIONS(loc, opcode_name) \ + do { \ + if (!parser->options->allow_exceptions) { \ + wast_parser_error(loc, lexer, parser, "opcode not allowed: %s", \ + opcode_name); \ + } \ } while (0) #define YYMALLOC(size) new char [size] @@ -173,7 +173,7 @@ class BinaryErrorHandlerModule : public BinaryErrorHandler { %token CONST UNARY BINARY COMPARE CONVERT SELECT %token UNREACHABLE CURRENT_MEMORY GROW_MEMORY %token FUNC START TYPE PARAM RESULT LOCAL GLOBAL -%token TABLE ELEM MEMORY DATA OFFSET IMPORT EXPORT +%token TABLE ELEM MEMORY DATA OFFSET IMPORT EXPORT EXCEPT %token MODULE BIN QUOTE %token REGISTER INVOKE GET %token ASSERT_MALFORMED ASSERT_INVALID ASSERT_UNLINKABLE @@ -193,8 +193,10 @@ class BinaryErrorHandlerModule : public BinaryErrorHandler { %type<commands> cmd_list %type<const_> const %type<consts> const_list +%type<exception> exception %type<export_> export_desc inline_export %type<expr> plain_instr block_instr +%type<expr> try_ try_instr_list %type<expr_list> catch_instr catch_list catch_instr_list %type<expr_list> instr instr_list expr expr1 expr_list if_ if_block const_expr offset %type<func> func_fields_body func_fields_body1 func_result_body func_body func_body1 @@ -205,7 +207,7 @@ class BinaryErrorHandlerModule : public BinaryErrorHandler { %type<limits> limits %type<memory> memory_sig %type<module> module module_fields_opt module_fields inline_module -%type<module_field> type_def start data elem import export +%type<module_field> type_def start data elem import export exception_field %type<module_fields> func func_fields table table_fields memory memory_fields global global_fields module_field %type<script_module> script_module %type<literal> literal @@ -627,9 +629,8 @@ catch_instr : delete $2; $$ = join_exprs1(&@1, expr); } - | CATCH_ALL var instr_list { - Expr* expr = Expr::CreateCatchAll(std::move(*$2), $3.first); - delete $2; + | CATCH_ALL instr_list { + Expr* expr = Expr::CreateCatchAll($2.first); $$ = join_exprs1(&@1, expr); } ; @@ -665,13 +666,40 @@ expr1 : assert(if_->type == ExprType::If); if_->if_.true_->label = $2; } - | try_check LPAR BLOCK labeling_opt block RPAR catch_list { - $5->label = $4; - Expr* try_ = Expr::CreateTry($5, $7.first); - $$ = join_exprs1(&@1, try_); + | try_check labeling_opt try_ { + Block* block = $3->try_block.block; + block->label = $2; + $$ = join_exprs1(&@1, $3); + } + ; + +try_ : + block_sig try_ { + $$ = $2; + Block* block = $$->try_block.block; + block->sig.insert(block->sig.end(), $1->begin(), $1->end()); + delete $1; } + | try_instr_list ; +try_instr_list : + catch_list { + Block* block = new Block(); + $$ = Expr::CreateTry(block, $1.first); + } + | instr try_instr_list { + $$ = $2; + Block* block = $$->try_block.block; + if ($1.last) { + $1.last->next = block->first; + } else { + $1.first->next = block->first; + } + block->first = $1.first; + } + ; + catch_list : LPAR catch_instr RPAR { $$ = $2; @@ -758,6 +786,23 @@ const_expr : instr_list ; +/* Exceptions */ +exception : + LPAR EXCEPT bind_var_opt value_type_list RPAR { + $$ = new Exception(); + $$->name = $3; + $$->sig = std::move(*$4); + delete $4; + } + ; +exception_field : + exception { + $$ = new ModuleField(ModuleFieldType::Except); + $$->loc = @1; + $$->except = $1; + } + ; + /* Functions */ func : LPAR FUNC bind_var_opt func_fields RPAR { @@ -1159,6 +1204,11 @@ import_desc : $$->global = $4; $$->global->name = $3; } + | exception { + $$ = new Import(); + $$->kind = ExternalKind::Except; + $$->except = $1; + } ; import : @@ -1204,6 +1254,12 @@ export_desc : $$->var = std::move(*$3); delete $3; } + | LPAR EXCEPT var RPAR { + $$ = new Export(); + $$->kind = ExternalKind::Except; + $$->var = std::move(*$3); + delete $3; + } ; export : LPAR EXPORT quoted_text export_desc RPAR { @@ -1262,6 +1318,7 @@ module_field : | start { $$.first = $$.last = $1; } | import { $$.first = $$.last = $1; } | export { $$.first = $$.last = $1; } + | exception_field { $$.first = $$.last = $1; } ; module_fields_opt : @@ -1739,7 +1796,8 @@ void check_import_ordering(Location* loc, WastLexer* lexer, WastParser* parser, if (module->funcs.size() != module->num_func_imports || module->tables.size() != module->num_table_imports || module->memories.size() != module->num_memory_imports || - module->globals.size() != module->num_global_imports) { + module->globals.size() != module->num_global_imports || + module->excepts.size() != module->num_except_imports) { wast_parser_error( loc, lexer, parser, "imports must occur before all non-import definitions"); @@ -1806,6 +1864,13 @@ void append_module_fields(Module* module, ModuleField* first) { module->globals.push_back(field->import->global); ++module->num_global_imports; break; + case ExternalKind::Except: + name = &field->import->except->name; + bindings = &module->except_bindings; + index = module->excepts.size(); + module->excepts.push_back(field->except); + ++module->num_except_imports; + break; } module->imports.push_back(field->import); break; @@ -1861,6 +1926,13 @@ void append_module_fields(Module* module, ModuleField* first) { module->data_segments.push_back(field->data_segment); break; + case ModuleFieldType::Except: + name = &field->except->name; + bindings = &module->except_bindings; + index = module->excepts.size(); + module->excepts.push_back(field->except); + break; + case ModuleFieldType::Start: module->start = &field->start; break; diff --git a/src/wat-writer.cc b/src/wat-writer.cc index 6e1e1954..d3832065 100644 --- a/src/wat-writer.cc +++ b/src/wat-writer.cc @@ -987,6 +987,11 @@ void WatWriter::WriteImport(const Import* import) { WriteBeginGlobal(import->global); WriteCloseSpace(); break; + + case ExternalKind::Except: + // TODO(karlschimpf) Define + WABT_FATAL("WriteImport(except) not implemented"); + break; } WriteCloseNewline(); } @@ -994,12 +999,9 @@ void WatWriter::WriteImport(const Import* import) { void WatWriter::WriteExport(const Export* export_) { if (options_->inline_export) return; - static const char* s_kind_names[] = {"func", "table", "memory", "global"}; - WABT_STATIC_ASSERT(WABT_ARRAY_SIZE(s_kind_names) == kExternalKindCount); WriteOpenSpace("export"); WriteQuotedStringSlice(&export_->name, NextChar::Space); - assert(static_cast<size_t>(export_->kind) < WABT_ARRAY_SIZE(s_kind_names)); - WriteOpenSpace(s_kind_names[static_cast<size_t>(export_->kind)]); + WriteOpenSpace(get_kind_name(export_->kind)); WriteVar(&export_->var, NextChar::Space); WriteCloseSpace(); WriteCloseNewline(); @@ -1036,6 +1038,10 @@ Result WatWriter::WriteModule(const Module* module) { case ModuleFieldType::Import: WriteImport(field->import); break; + case ModuleFieldType::Except: + // TODO(karlschimpf) Define + WABT_FATAL("WriteModule(except) not implemented"); + break; case ModuleFieldType::Export: WriteExport(field->export_); break; @@ -1100,6 +1106,10 @@ void WatWriter::BuildExportMaps() { global_to_export_map_[global_index] = export_; break; } + + case ExternalKind::Except: + WABT_FATAL("BuildExportMaps(except) not implemented"); + break; } } } |